Este es un viaje, no un destino. Esa frase nunca resonó tanto conmigo como en mi carrera como desarrollador. Mirando hacia atrás, desde mis primeros "Hola Mundo" hasta los proyectos que he desarrollado hasta el día de hoy, el crecimiento ha sido constante y, a menudo, sorprendente.
Mis inicios en el desarrollo se entrelazan fuertemente con Java. Fue uno de los primeros
lenguajes que me cautivó por su robustez, su filosofía "escribe una vez, ejecuta en cualquier lugar"
y la inmensa comunidad que lo respalda. Recuerdo con cariño las horas dedicadas a entender los
conceptos de POO, la JVM, y cómo un simple for
loop podía transformar una idea en algo
funcional. Java no solo me enseñó a programar; me enseñó a pensar como un ingeniero, a estructurar
el código, a depurar con paciencia y a apreciar la importancia del rendimiento.
A medida que avanzaba, me di cuenta de la importancia de la persistencia de datos y me sumergí en bases de datos relacionales como PostgreSQL, a menudo interactuando con ellas a través de JDBC y luego con ORMs como TypeORM (aunque este último lo he usado más recientemente en entornos TypeScript, la base de conceptos relacionales la afiancé con Java). Aprendí a diseñar esquemas, a escribir consultas eficientes y a entender cómo los datos fluyen a través de una aplicación.
La transición hacia el desarrollo web me llevó a explorar el Front-end, donde HTML, CSS y JavaScript se convirtieron en mis herramientas principales. Si bien Java sentó una base sólida en lógica de programación, el Front-end abrió un mundo de posibilidades visuales y de interacción con el usuario que me fascinó. Aquí, la curva de aprendizaje fue diferente, enfocada en el diseño responsivo, la experiencia de usuario y la optimización del rendimiento del lado del cliente. Recientemente, con TypeScript, he encontrado un puente robusto entre la tipificación fuerte de Java y la flexibilidad de JavaScript, lo que me ha permitido escribir código Front-end más mantenible y escalable.
Mi incursión en el Back-end con tecnologías como NestJS ha sido un regreso gratificante a los patrones y la estructura que tanto valoro, reminiscentes de mis días con frameworks Java como Spring. La experiencia de trabajar con TypeScript en el backend, construyendo APIs robustas y eficientes, me ha permitido aplicar los principios de arquitectura que aprendí con Java en un ecosistema moderno y de alto rendimiento. Proyectos como NutriFlow, donde integré servicios de AWS S3 y pasarelas de pago con Stripe, me han desafiado a ir más allá del código, comprendiendo la infraestructura y la seguridad de una aplicación completa.
Áreas de Mejora y Metas:
A pesar de los logros, sé que el aprendizaje nunca termina. Mis principales áreas de mejora en este momento son:
- Profundización en Arquitecturas de Microservicios: Aunque he trabajado con APIs, quiero entender a fondo patrones de diseño de microservicios, orquestación y herramientas como Kubernetes. Esto me permitirá construir sistemas aún más resilientes y escalables.
- DevOps y CI/CD: Si bien tengo experiencia básica con Git/GitHub, deseo afianzar mis conocimientos en integración y despliegue continuo, automatización de tests y monitoreo de aplicaciones.
- Rendimiento y Optimización Avanzada del Front-end: Busco dominar técnicas avanzadas de optimización de carga, renderizado y gestión de estado en grandes aplicaciones Front-end.
Metas a Corto Plazo (Próximos 6-12 meses):
- Completar un curso avanzado sobre Kubernetes y Docker para producción.
- Contribuir a un proyecto open-source que utilice una arquitectura de microservicios.
- Implementar pipelines de CI/CD para un proyecto personal, utilizando GitHub Actions o GitLab CI.
Metas a Largo Plazo (1-3 años):
- Convertirme en un referente en arquitecturas de microservicios y serverless.
- Asumir un rol de liderazgo técnico donde pueda guiar a otros desarrolladores en la implementación de mejores prácticas.
- Escribir un artículo o dar una charla sobre optimización de rendimiento Front-end.
Mi camino como desarrollador ha sido una increíble aventura de descubrimiento y crecimiento continuo. Cada desafío ha sido una oportunidad para aprender, y cada línea de código escrita me ha acercado más a la visión de construir el futuro de la web. ¡Estoy emocionado/a por lo que el próximo capítulo me depara!