Desarrollador C++ Senior para Algoritmos de Corrección de Errores | Remoto
Remoto
Jornada completa
Estamos buscando un desarrollador C++ experimentado para liderar la implementación de algoritmos avanzados de Códigos Polares para sistemas de corrección de errores. Este proyecto de vanguardia requiere un especialista capaz de crear soluciones altamente optimizadas para plataformas embebidas ARMv7m. Trabajará de forma totalmente remota, desarrollando código eficiente sin utilizar aritmética de punto flotante. El candidato ideal combina conocimientos profundos de programación de sistemas con experiencia en algoritmos de codificación y procesamiento de señales.
Responsabilidades Principales
- Analizar, seleccionar e implementar parámetros óptimos para Códigos Polares acortados (Shortened Polar Codes) adaptados a las necesidades específicas del proyecto.
- Desarrollar una implementación rápida y eficiente en C/C++ para plataformas embebidas ARMv7m, garantizando un uso óptimo de los recursos limitados.
- Adaptar y optimizar bibliotecas existentes según los requisitos específicos del algoritmo, manteniendo la eficiencia computacional.
- Realizar pruebas de rendimiento y optimización para maximizar la velocidad de ejecución en sistemas con recursos restringidos.
- Documentar meticulosamente el código y los procedimientos de implementación para facilitar el mantenimiento futuro.
- Colaborar con el equipo técnico para integrar la solución en el ecosistema existente, asegurando la compatibilidad.
- Implementar técnicas avanzadas de optimización de código para sistemas embebidos de bajo nivel.
- Investigar e implementar mejoras algorítmicas basadas en literatura técnica reciente sobre Códigos Polares.
Requisitos Técnicos
- Dominio avanzado de programación en C y C++ (C++14/17/20), con énfasis en optimización de bajo nivel.
- Experiencia sólida en desarrollo para sistemas embebidos (mínimo 3 años), preferiblemente con arquitecturas ARM Cortex-M.
- Conocimientos profundos de algoritmos y estructuras de datos, con capacidad para analizar complejidad espacial y temporal.
- Experiencia demostrable en optimización de código para sistemas con recursos limitados y entornos bare-metal.
- Familiaridad con algoritmos de corrección de errores, especialmente Códigos Polares o similares (LDPC, Reed-Solomon).
- Capacidad para implementar soluciones eficientes sin utilizar aritmética de punto flotante, aprovechando operaciones con enteros.
- Experiencia en análisis de rendimiento y optimización de algoritmos para plataformas específicas.
- Conocimiento práctico de herramientas de desarrollo para sistemas embebidos (compiladores cruzados, depuradores).
- Capacidad para trabajar con sistemas de control de versiones (Git) y metodologías de desarrollo ágil.
Experiencia Valorada
- Conocimiento previo de Códigos Polares o implementaciones comerciales de algoritmos de corrección de errores.
- Experiencia con GNU Radio, SDR (Software Defined Radio) u otras bibliotecas de procesamiento de señales.
- Experiencia en desarrollo de software para comunicaciones inalámbricas o sistemas de telecomunicaciones.
- Familiaridad con técnicas de codificación para transmisión de datos fiable en entornos con alto ruido.
- Experiencia avanzada en programación de microcontroladores ARM, especialmente optimización para Cortex-M.
- Conocimientos de teoría de información y codificación de canal, incluyendo conceptos de capacidad y decodificación.
- Contribuciones a proyectos open-source relacionados con algoritmos de codificación o sistemas embebidos.
- Experiencia en optimización para arquitecturas específicas, aprovechando instrucciones especializadas.
- Familiaridad con herramientas como MATLAB o Python/NumPy para validación de algoritmos.
Detalles del Proyecto
- Tamaño del paquete de datos: 27 bytes (32 bytes, acortados por 5 bytes), requiriendo implementación especializada.
- Cantidad de datos útiles en el paquete: 18 bytes, con estrictos requisitos de integridad.
- La variante específica del algoritmo de decodificación es negociable (SC, SCL, BP u otras variantes modernas).
- Se proporcionarán recursos para la selección de parámetros del algoritmo y simulación.
- Se facilitarán bibliotecas con implementaciones base de codificador y decodificador que requerirán adaptación.
- Se permite utilizar código disponible de cualquier biblioteca existente, incluyendo la implementación en GNU Radio.
- El desarrollo debe priorizar la eficiencia computacional sin comprometer la capacidad de corrección de errores.
- Las implementaciones deben ser portables y bien documentadas para facilitar el mantenimiento a largo plazo.
¿Por Qué Unirse a Nuestro Proyecto?
Este proyecto representa una oportunidad única para aplicar conocimientos avanzados de programación C++ y teoría algorítmica en un contexto de alto impacto técnico. Trabajará con tecnologías de vanguardia en el campo de las comunicaciones digitales, contribuyendo al desarrollo de sistemas críticos. El formato 100% remoto ofrece flexibilidad mientras colabora con un equipo internacional de especialistas técnicos en un entorno estimulante.
Formará parte de un grupo selecto de profesionales abordando desafíos complejos en la intersección entre teoría matemática avanzada e implementación práctica de alto rendimiento. Este rol equilibra perfectamente el desafío intelectual con resultados tangibles, permitiendo un crecimiento profesional significativo en un campo especializado.
Modalidad y Disponibilidad
- Trabajo 100% remoto con flexibilidad horaria.
- Contrato a tiempo completo con condiciones competitivas.
- Incorporación inmediata debido a la urgencia del proyecto.
- Posibilidad de crecimiento profesional en futuros proyectos de alta complejidad técnica.
- Colaboración con especialistas internacionales en sistemas embebidos y comunicaciones digitales.