Mi Midpoint de Carrera, Parte II

28-09-2026 – por Gustavo Aquino · 11 min de lectura

#carrera

Prólogo: Peritos y corsarios

En mi último año de universidad, conversando con una compañera de clase, ella me contó que había estado trabajando en una startup de tecnología de seguridad biométrica, y que estaban buscando un programador .NET para desarrollar software usando esa tecnología en totems de atención, sign-in de sistemas web y aplicaciones mobile.

En ese momento, yo ya estaba trabajando en la Policía Tecnocientífica de São Paulo como programador web, en un sistema de GED (Gestión Electrónica de Documentos) construido en CakePHP y MongoDB, aunque ya tenía mis dudas de que fuera a durar mucho ahí. Me explico: había dejado una consultora que tenía un framework propio para ahora trabajar con una tecnología tampoco muy atractiva para el mercado, como PHP.

Como la oficina en Faria Lima quedaba cerca de la Superintendencia, negocié con el gerente de la empresa de biometría trabajar part-time, en el turno de tarde/noche, conciliando así con la Superintendencia por la mañana y principio de la tarde.

Mi negociación fue positiva, y seguí en ese ritmo de doble jornada durante seis meses, hasta que, cierto día, viví en la Superintendencia un momento bastante peculiar del sector público: el proceso licitatorio. El contrato de la consultora de software tercerizada estaba por vencer, y se abriría una nueva licitación para elegir quién asumiría el servicio de ahí en adelante. Esa incertidumbre sobre quién ganaría la licitación llevaba semanas pesando sobre todos los tercerizados, generando toda clase de expectativas y temores, sobre todo el miedo a la falta de continuidad en el proyecto. Una nueva empresa ganó la licitación que se había abierto. La ganadora podía optar o no por recontratar a los tercerizados que ya estaban ahí, pero no fue lo que ocurrió. Ante eso, la empresa a la que yo estaba vinculado me dio dos opciones: enviarme a un proyecto en Alphaville, en Barueri, o mi despido. Opté por la segunda.

Por fin, el Tío Bill pagando las cuentas

Una vez liberado, pasé a trabajar fulltime en la startup, a inicios de 2016, mi primera experiencia también como autónomo (Persona Jurídica). Después de una mudanza de oficina a Vila Olímpia, estuve en el centro del boom de las startups e hice un gran networking con diversas empresas, de los sectores farmacéutico, hospitalario, fintech y de otros productos digitales en auge en la época, como criptomonedas, brokers de activos en el exterior y toda clase de plataformas de sharing economy, a la estela de Uber, en busca de convertirse en unicornios, con mucha inyección de capital de private equity.

Las empresas unicornio "son start-ups (empresas incipientes con un modelo de negocio repetible y escalable por medio de la tecnología) que alcanzaron un valor de mercado de US$ 1.000 millones, como mínimo" [1].

En ese período, también comencé un MBA (Master of Business Administration) en Ingeniería de Software en la Universidad de São Paulo, en la Escuela Politécnica, pero no entraré en más detalles para no abrir un enorme paréntesis en este prólogo; solo vale mencionar que el objetivo del MBA era obtener el título de posgrado lato sensu.

Durante mi tiempo en la startup, me encontré con desafíos mucho más interesantes que los anteriores: empecé a adoptar de verdad el uso de Git en mi workflow de trabajo y por fin pude trabajar con todo, y solamente, el stack Microsoft .NET: Windows Forms, en esa época en las versiones 4.6.x, C#, APIs REST (Application Programming Interfaces / Representational State Transfer) en ASP.NET MVC Web API, y WPF (Windows Presentation Foundation). Vayamos por partes:

wpf designer visual studio
Figura 1. El diseñador visual de WPF en Visual Studio, con el XAML de la MainWindow a la izquierda y la vista previa de la interfaz a la derecha.

  • .NET Framework: framework de desarrollo de Microsoft, exclusivo para Windows, base de las tecnologías de abajo.
  • Windows Forms: framework para la construcción de interfaces gráficas para aplicaciones Windows, estilo drag-and-drop.
  • C#: lenguaje de programación orientado a objetos de tipado fuerte desarrollado por Microsoft.
  • ASP.NET MVC: framework web para la construcción de páginas web mediante la sintaxis de marcado Razor; APIs SOAP (Simple Object Access Protocol), con la extensión WCF (Windows Communication Foundation), o REST, con la extensión Web API.
  • WPF: framework para la construcción de interfaces gráficas que vendría a sustituir a Windows Forms, también con estilo drag-and-drop, pero con una sintaxis de marcado mediante el lenguaje XAML (Extensible Application Markup Language), basado en XML.

net framework 45
Figura 2. La evolución del .NET Framework: cada versión fue apilando nuevas bibliotecas sobre el Common Language Runtime.

Fue exactamente ahí donde me encontré, trabajando con las herramientas por las que sentía verdadero interés, en un período de intenso aprendizaje en tecnología, tanto por trabajar en lo que me gustaba como por estar en un entorno donde, con prácticamente ningún equipo, solo estaba yo como programador backend y un colega responsable del desarrollo de las aplicaciones Android. Tenía total libertad creativa para decidir cómo aplicar técnicas de ingeniería nuevas para mí, como pruebas automatizadas (unitarias, de stress e integradas) y principios de diseño, como SOLID y proyectos con separación en capas. También fue en esos años que empecé a tener contacto con una mayor riqueza de lecturas, como la serie The Pragmatic Programmer, de Andy Hunt y Dave Thomas, y los libros de Robert C. Martin, The Clean Coder y Clean Code. También fue en ese período que participé en muchos eventos de tecnología, como el TDC (The Developers Conference) y varios meetups.

Pasados algunos meses, tras enfrentar ciertos obstáculos personales, de común acuerdo con la gestión de la empresa, optamos por rescindir el contrato de prestación de servicios que yo ofrecía, y volví una vez más a sondear el mercado 🌼. Con una experiencia y un bagaje considerablemente mayores, ahora con fluidez en el stack Microsoft, me reubiqué rápidamente, esta vez en una consultora cuya área principal de actuación era el sector de seguros, y así fui asignado a uno de sus mayores clientes.

Orquestando la sopa de letras

El cambio, a partir del segundo semestre de 2016, fue grande: salir del mundo de las startups para mi primera experiencia en el mundo corporativo, con burocracia, procesos, integraciones de sistemas con décadas de existencia, decenas de equipos solo en TI, y tecnología restringida a un selecto grupo de empresas, con un conocimiento igualmente secreto, como una secta. Aunque había desarrollado el conocimiento técnico de la experiencia anterior, la falta de equipo me dejó débil en habilidades políticas y de trabajo en equipo. Ahora tendría que trabajar con desarrolladores mucho más experimentados que yo y con un conocimiento ya consolidado en el área de negocio, especialmente en lo que respecta a las reglas de siniestros.

Por tener un buen dominio de .NET y aprender rápido, fui elegido para participar en un proyecto de gran visibilidad en la compañía: la implementación de la plataforma Oracle SOA Suite (Service-Oriented Architecture), gestionando y orquestando las integraciones entre los diversos módulos de siniestros, y la creación de una interfaz de workflows para que los analistas y la cadena de aprobaciones pudieran analizar, evaluar y resolver sobre procesos de siniestros e indemnizaciones.

Fue un proyecto bastante complejo, ya que implicaba migrar reglas de negocio de un sistema in-company monolítico, construido en parte en VB.NET y en parte en ASP (Active Server Pages, algo que ya pensaba que no volvería a ver, cosa de finales de los años 90), hacia los componentes de la plataforma Java J2EE (Java 2 Platform, Enterprise Edition), como servlets y EJB (Enterprise JavaBeans), y hacia el propio middleware: las interfaces ADF (Application Development Framework) para las Human Tasks (una versión de Oracle de las JSF, JavaServer Faces), los Mediators, para el enrutamiento, filtrado y transformación de datos entre diferentes componentes, los BPEL (Business Process Execution Language) y BPMN (Business Process Model and Notation) para la orquestación de servicios y tareas, y las Business Rules, para la elaboración de un conjunto de reglas ejecutadas en runtime, por separado del código de la aplicación. Sin hablar de la integración con sistemas heredados vía SOAP (Simple Object Access Protocol), el WCF de nuevo, y toda su especificación en XML: XSD, XSLT y XPath. Lo confieso: es una ensalada de letras y términos. Pero va más allá: todo esto interconectado a bases de datos on-premises Oracle 11c o 12c y versionado en parte en SVN (Apache Subversion) y en parte en Microsoft TFS (Team Foundation Server), ambos modelos centralizados de control de versiones.

oracle bpel exemplo
Figura 3. Un proceso BPEL en Oracle JDeveloper, orquestando las llamadas entre servicios.

El salto de calidad

Me fue bien, y dominar rápido ese stack enterprise de Oracle me trajo reconocimiento. Mi situación mejoró: recibí una propuesta para pasar a planilla de la compañía, a mediados de 2017, dejando de ser tercerizado y pasando a disfrutar de un plan de carrera y mejores beneficios. Aprovechando esa mejora, llegó por fin el momento de dejar mi pequeño apartamento y alquilar mi primer apartamento de verdad. También terminé mi MBA y, cuando me sorprendía reflexionando sobre todo lo que había pasado, me daba cuenta de que, en ese momento, la vida realmente había dado un gran salto de calidad.

livro oracle soa suite 12c
Figura 4. Una de mis fuentes de estudio teórico sobre las herramientas de Oracle Suite fue este pequeño manual de 900 páginas.

Pasé los dos años siguientes en una rutina continua de mucho trabajo en la aseguradora, en mi equipo de Workflows. Curiosamente, esa habilidad con la orquestación de APIs (Application Programming Interfaces) sería de gran valor en proyectos futuros. Las nuevas fases del proyecto SOA se fueron expandiendo hacia nuevas áreas: creé paneles gerenciales y actualicé algunas tecnologías de la compañía, a pedido de la casa matriz estadounidense.

Pero el trabajo no bastaba. Seguí firme en mi rutina de estudio, leyendo sobre Agile, Microservicios, Enterprise Integration Patterns y otros temas de arquitectura de software, hasta sentirme desafiado a sacar certificaciones de Microsoft. Para eso, armé una rutina de estudio basada en los libros de Exam Ref de la propia Microsoft y en materiales complementarios de Packtpub. En un año y medio, obtuve tres: la MCP (Microsoft Certified Professional), la MCSA (Microsoft Certified Solutions Associate) y la MCSD (Microsoft Certified Solutions Developer), en las áreas de C#, ASP.NET MVC y Windows Azure.

mcsd badge
Figura 5. Mi insignia de Microsoft Certified Solutions Developer, obtenida en 2019.

Hoy en día tal vez esas insignias tengan poca utilidad práctica, pero el desafío de estudiar y profundizar en temas muchas veces descuidados es una forma riquísima de aprendizaje. Sin contar que, para mí personalmente, fue mi punto de partida para consumir material en inglés. Antes no recuerdo haber tenido la experiencia de leer y estudiar libros de 500 páginas en otro idioma. Estoy agradecido por haber tomado esa decisión.

De vuelta al principio y nuevas incertidumbres

Con todo ese conocimiento en desarrollo .NET, cloud de Azure y también en herramientas de SDLC (Software Development Life Cycle), como VSTS (Visual Studio Team Services), más tarde renombrado como Azure DevOps, me llamó, a inicios de 2018, mi primera empresa, para prestar una consultoría externa en una nueva solución que estaban desarrollando: un sistema de ventas omnichannel, desarrollado totalmente desde cero con tecnología Microsoft. Acepté el desafío y los impulsé en la creación de la arquitectura de esta nueva solución, basada en microservicios, ya en .NET Core 2.0.

Seguí manteniendo esos dos frentes de trabajo en paralelo, y en 2019 abrí uno nuevo: comencé una Maestría en TI en la PUC-SP (Pontifícia Universidade Católica de São Paulo, Pontificia Universidad Católica de São Paulo), presentando un proyecto de investigación de Internet de las Cosas aplicado al Saneamiento Básico de São Paulo, motivado por el deseo de, en el futuro, tener la oportunidad de dar clases en alguna universidad.

Ya llevaba 3 años y algunos meses en la aseguradora, y sentía cierta desconexión entre mi expectativa de carrera y mi valoración profesional. Decidí que en ese momento haría un nuevo cambio y, algunos meses después, cambiaría por completo de contexto una vez más, y, quién lo diría, volvería a una empresa con ambiente de startup, pero ahora en otra área: la de salud. Podría decir que ya era prácticamente un programador senior, al menos en la actitud, con mucho más bagaje y transmitiendo confianza en mis habilidades técnicas y de gestión del tiempo como colaborador individual, gracias a la extensa rutina de trabajo en dos proyectos completamente diferentes en tecnología, escala y desafíos.

Todavía no lo sabía, pero una vez más el tiro erraría el blanco. Y en un momento sumamente delicado, porque el año era 2020, pocos meses después del primer caso registrado de SARS-CoV-2, en China [2]. De ahí en adelante, nada volvería a ser como antes.

Lista de referencias

  1. Época Negócios: Inovação não é bagunça! A incrível trajetória dos 10 primeiros unicórnios brasileiros
  2. CNN Brasil: 5 anos da Covid-19: lembre o histórico desde 1º caso até fim da emergência

Profile picture

Escrito por Gustavo Aquino, Máster en Ciencias, Ingeniero de Software y fundador de Decodifique.com. Puedes encontrarme en LinkedIn.