Estamos buscando un/a Ingeniero/a de Software Backend motivado/a y entusiasta para unirse a nuestra empresa fintech de rápido crecimiento en América Latina. Como Backend Engineer, desempeñarás un papel clave en la entrega de proyectos de software resilientes y sostenibles, desde el diseño hasta la implementación y despliegue. Contribuirás al desarrollo y mantenimiento de productos de software escalables y apoyarás su integración con servicios en la nube. Tendrás exposición a sistemas distribuidos, arquitecturas orientadas a eventos (EDA), bases de datos NoSQL y principios de diseño guiado por dominio (DDD).
Este rol individual ofrece la oportunidad de aprender y aplicar mejores prácticas en desarrollo de software, pruebas unitarias, despliegue y monitoreo en un entorno productivo. Trabajarás bajo la guía de ingenieros senior, pero se espera que tomes iniciativa, actúes con urgencia y entregues trabajo de alta calidad que agregue valor al negocio y a los clientes.
Responsabilidades clave:
Entrega de software resiliente y sostenible: Diseñar, desarrollar e implementar soluciones backend de alta calidad y escalables desde la concepción hasta el despliegue.
Ejecución de proyectos definidos: Trabajar en proyectos establecidos para lograr los objetivos del equipo, definiendo soluciones adecuadas de forma independiente o utilizando enfoques existentes para resolver problemas.
Sentido de responsabilidad (ownership): Cumplir compromisos, asumir responsabilidad por tu trabajo y entregar a tiempo. Identificar proactivamente oportunidades de mejora en proyectos y procesos del equipo.
Colaboración en equipo: Trabajar principalmente dentro del equipo, participando en revisiones de código y discusiones para mejorar la calidad del código. Adoptar las mejores prácticas establecidas por el equipo.
Pruebas unitarias y mejores prácticas: Escribir pruebas unitarias para nuevas funcionalidades, asegurando confiabilidad y mantenibilidad. Aplicar mejores prácticas de desarrollo.
Participación en procesos ágiles: Participar en sesiones de planificación, reuniones diarias (stand-ups) y retrospectivas con el equipo de desarrollo, el engineering manager y el product manager.
Desarrollo y soporte de APIs: Diseñar e implementar APIs que serán consumidas por otros equipos, asegurando que sean robustas y escalables.
Integración en la nube: Implementar e integrar soluciones en la nube, preferiblemente en AWS, utilizando arquitecturas serverless.
Trabajo con sistemas distribuidos y EDA: Apoyar en la construcción de sistemas distribuidos escalables y resilientes utilizando patrones de arquitectura orientada a eventos.
Uso de bases de datos NoSQL: Diseñar, implementar y gestionar soluciones de almacenamiento de datos utilizando bases de datos NoSQL como DynamoDB.
Aplicación de DDD: Aplicar principios de diseño guiado por dominio para modelar dominios de negocio complejos de manera efectiva.
Mentoría: Posiblemente brindar mentoría a nuevos ingresos, pasantes o ingenieros más junior.
Mejora continua: Buscar retroalimentación de forma proactiva, enfocarse en el crecimiento personal y contribuir al desarrollo del equipo. Innovar aportando nuevas ideas y enfoques.
Requisitos:
Formación académica: Licenciatura en Ciencias de la Computación, Ingeniería o campo relacionado, o experiencia práctica equivalente.
Experiencia: Más de 3 años de experiencia en desarrollo de software.
Habilidades técnicas:
Sistemas distribuidos: Comprensión de principios de computación distribuida y experiencia construyendo sistemas escalables.
Arquitectura orientada a eventos: Experiencia con modelos de programación orientados a eventos y herramientas como AWS SNS/SQS, EventBridge, Kafka o similares.
Bases de datos NoSQL: Dominio de bases de datos NoSQL como DynamoDB o MongoDB.
Domain-Driven Design: Experiencia aplicando conceptos de DDD en proyectos.
Metodologías ágiles: Familiaridad con Scrum o Kanban y capacidad de trabajar en procesos ágiles.
Requisitos:
Formación académica: Licenciatura en Ciencias de la Computación, Ingeniería o campo relacionado, o experiencia práctica equivalente.
Experiencia: Más de 3 años de experiencia en desarrollo de software.
Habilidades técnicas:
Sistemas distribuidos: Comprensión de principios de computación distribuida y experiencia construyendo sistemas escalables.
Arquitectura orientada a eventos: Experiencia con modelos de programación orientados a eventos y herramientas como AWS SNS/SQS, EventBridge, Kafka o similares.
Bases de datos NoSQL: Dominio de bases de datos NoSQL como DynamoDB o MongoDB.
Domain-Driven Design: Experiencia aplicando conceptos de DDD en proyectos.
Metodologías ágiles: Familiaridad con Scrum o Kanban y capacidad de trabajar en procesos ágiles.
Calificaciones deseables: