Vocación

Hubo dos veces en mi vida donde durante la noche no me pude dormir simplemente por la emoción de lo que había sucedido ese día. Mi mente corría de uno a otro lado con infinitas posibilidades y planes.

Si alguna vez te encuentras teniendo una noche como esta, quizás tengas una revelación sobre cuál es tu vocación.

Mi Segunda Noche Desvelado

La segunda vez que esto ocurrió, se trataba de una chica. Yo tenía 18, ella 17, y fue como si hubiera aparecido la última pieza de un rompecabezas incompleto. La emoción del enamoramiento adolescente eventualmente se convirtió en amor, y con ese amor compartido ahora estamos criando una hija.

Hacer esto bien es la misión más importante de mi vida, y por lejos la más difícil.

Aurelia

Programación

Pero estoy acá para hablar de la primera vez que esto sucedió. Yo tenía 11 años y las chicas estaban a varios años de convertirse en una preocupación.

Estaba visitando la casa de un compañero del secundario que tenía una computadora. En sí esto no era tan especial ya que había algunas computadoras pero en su caso la tenía en su habitación y podía disponer de ella a gusto.

Mi amigo, en vez de pasarse las tardes jugando jueguitos, se había instalado el Turbo Pascal de Borland y estaba ocupado jugando con "eso".

Si el asombro pudiese tener una cara, estoy seguro que la mía sería una buena representación. Mi amigo escribía comandos, dando instrucciones al programa y la computadora obedecía. Cambias una pequeña condición acá, y el programa actualiza su comportamiento.

Las computadoras no eran simplemente artefactos a ser usados, no solamente herramientas. Dentro, las computadores tenían los materiales con los cuáles podías cambiar su comportamiento.

Eran el fuego, hierro, y el caldero. Tu mente, la fragua.

Esa noche todavía estaba procesando cómo funcionaba todo, qué iba dónde, qué había pasado. Realmente creo que en esa noche insomne aprendí a programar.

El resto de la historia no es tan mágica, mi amor por la programación siguió creciendo y ocupó gran parte de mi tiempo en la secundaria. Por alguna razón sin embargo en mi graduación dije que iba a estudiar arquitectura (en algún sentido lo logré cuando tuve un rol de Arquitecto de Software mas adelante).

Por suerte, sin embargo, elegí Ciencias de la Computación como mi carrera. Realmente quiero decir que hubo suerte involucrada, uno es tan joven cuando toma estas decisiones de vida que solamente la suerte y quizás un poco de intuición pueden llevarte al lugar correcto.

En la Universidad aprendí lo que pude de verdaderos maestros, tanto dentro de la facultad como aquellos en el firmamento de la disciplina.

Eventualmente comencé una carrera en la industria del software y a través de la práctica desarrollé un sentido estético para el trabajo. Las piezas pueden encajar de varias formas, pero generalmente la solución más elegante es también la mejor.

Y la elegancia necesita dedicación.

Me convertí en una especie de experto, no en el sentido de ser reconocido como tal en la industria pero al menos en mi formación.

Estaba dedicado al desarrollo de aplicaciones de iOS y fuí afortunado de liderar equipos que llegarían a millones de individuos (aplicaciones de Disney para los parques en Orlando) y aplicaciones que pueden potencialmente cambiar el curso del desarrollo de vacunas (aplicaciones de ensayos clínicos en Medable).

Estoy muy orgulloso del trabajo que realicé allí, pero algo me faltaba: alcance.

Rompiendo las barreras de la especialización

Iconico

Mi rango profesional tenía deficiencias, era decente a la hora de desarrollar aplicaciones de iOS, coordinar equipos de programadores y diseñadores y guiarlos a la entrega de un producto.

Pero algo me afectó hacia el final de mi último trabajo, coordiné el trabajo de una empresa que prestaba servicios a la nuestra y completamos un panel para reportes para uno de nuestros clientes. En varias formas este proyecto fue un éxito, un proyecto pensado para la necesidad de un cliente eventualmente se convirtió en un panel reusable para cualquier cliente.

Sin embargo al terminarlo, internamente este producto tuvo resistencia. Me dijeron que no estaba calificado para la tarea ya que mi experiencia era en software para iOS y no web. Mi participación había sido lo que se puede considerar Dueño de Producto y Administración, pero definitivamente no estaba calificado para una revisión técnica del código.

Como suele suceder con las devoluciones profesionales que molestan, había bastante verdad en el comentario. Necesitaba corregir esto.

Hay muchas formas de aprender, desde mirar por sobre los hombros de otro niño usando Pascal a los 11, estudiar Dijkstra y Knuth en la Universidad, a simplemente jugando con nuevas herramientas o frameworks.

Mi plan era aprender tanto me sea posible, en tantos aspectos como pueda, al asociarme con amigos y traer a la vida una nueva empresa: Iconico.

En Iconico estamos construyendo la nueva generación de soluciones de software para monitoreo de redes. Nuestra arquitectura usa un backend flexible, una API extensible. Las primeras herramientas son un panel de administración, una solución de monitoreo llamada Sentinel cuya lista de funcionalidades sería mas larga que este artículo y que te puede notificar de eventos  en la red mediante Email, SMS, Slack, y Telegram. También tenemos una aplicación para PPP Accounting llamada Scribe y otra para administración de backups de configuraciones de estos equipos llamada Clerk.

En el camino he aprendido Javascript, Node, Express, Mongo y Redis para el backend. He visto VueJS y Bootstrap para las herramientas de front-end. Implementé integraciones de WebSockets y he actualizado mi formación en iOS para incluir algo de SwiftUI y Combine (me encantan).

Hasta aprendí Go y Docker para empaquetar la aplicación sonda que es lo único que nuestros clientes tienen que correr en sus redes internas. Hasta tener que integrar una solución para hacer análisis de performance (profiling) de esta aplicación corriendo en las máquinas de cliente para descubrir un problema.

Y por supuesto, hemos tenido que aprender algunas de las legalidades de crear una empresa SaaS, integraciones con Stripe y lo básico de configurar la infraestructura para correr todo (por ahora en Google Cloud Platform).

No me voy a proclamar Senior en nada de todo esto, para nada. Sigo aprendiendo y sé que voy a continuar haciéndolo por el futuro previsible.

Pero una cosa es cierta: estoy tan entusiasmado ahora de estar haciendo todo esto como estaba cuando aprendía Pascal a los 11. Todavía estoy sorprendido por la tecnología y sus capacidades.

Voy a tratar de mantener la gente informada del progreso que estamos haciendo y publicar algunos artículos de interés técnico cada tanto. Tengo que escribir sobre las funcionalidades que hemos creado y los planes que tenemos para el futuro de estas herramientas.

Este es otro aspecto del que necesito aprender: Marketing.

Bueno!

Acá vamos!