#127919; Tu misión
Por favor, lea detenidamente la información de esta oferta de empleo para entender exactamente qué se espera de los posibles candidatos.
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). xsgfvud
Estándares de calidad/seguridad: static analysis, sanitizers, MISRA/CERT (si aplica al dominio).