Descripción de la oferta
# ; Tu misión
Diseñar, desarrollar y evolucionar componentes en C con foco en calidad, rendimiento y mantenibilidad , participando activamente en decisiones técnicas y liderando mejoras de arquitectura, refactorizaciones y estándares de desarrollo.
✅ Responsabilidades
Desarrollar y mantener software en C (C99/C11 según aplique), asegurando robustez y rendimiento.
Diseñar soluciones con enfoque de arquitectura : modularidad, separación de responsabilidades, interfaces claras y mantenibles.
Aplicar buenas prácticas: gestión de memoria , manejo de errores, concurrencia si aplica, y estándares de código.
Depurar problemas complejos (crashes, memory leaks, race conditions, issues de rendimiento) usando herramientas de diagnóstico.
Participar y liderar code reviews , definición de guidelines, refactorizaciones y reducción de deuda técnica.
Colaborar con otros equipos (QA, producto, DevOps/Infra) para asegurar entregas consistentes.
Mentoring y acompañamiento técnico a perfiles mid/junior cuando sea necesario.
Requisitos imprescindibles (Must-have)
~+5 años de experiencia profesional programando en C (C “real”, nivel senior).
~ Dominio de fundamentos: punteros , estructuras, memoria dinámica/estática, ownership, alignment, etc.
~ Experiencia diseñando software mantenible en C: diseño modular, APIs internas, abstracciones razonables, reutilización.
~ Conocimientos sólidos de patrones/principios de diseño aplicables a C (modularidad, desacoplo, responsabilidad única) y nociones de arquitectura de software .
~ Experiencia con herramientas de desarrollo y depuración (según entorno): GDB/LLDB , sanitizers, Valgrind u otras.
~ Capacidad para liderar iniciativas técnicas (proponer soluciones, priorizar, ejecutar y mejorar el estándar del equipo).
~ Trabajo con control de versiones (Git) y buenas prácticas de colaboración.
Deseables (Nice-to-have)
Experiencia con CI/CD (automatización de builds, tests, releases).
Docker y Kubernetes (especialmente si el software se empaqueta/despliega en contenedores).
Experiencia en Azure (VMs, contenedores, pipelines, observabilidad, etc.).
Desarrollo de herramientas internas (CLI, utilidades, automatizaciones para el equipo).
Experiencia con microservicios y diseño/consumo de APIs REST y/o GraphQL (si el producto expone/consume servicios).
Conocimientos de networking (TCP/IP, sockets), multithreading (pthreads) o IPC (según el producto).
Build systems: CMake/Make , GCC/Clang, cross-compilation (si aplica).
Estándares de calidad/seguridad: static analysis, sanitizers, MISRA/CERT (si aplica al dominio).