Buscamos un ingeniero de software C++ con más de 5 años de experiencia en el desarrollo de sistemas de alto rendimiento. El puesto se centra en la creación y optimización de software que procese el tráfico de red, manejo de protocolos complejos e implementación de algoritmos matemáticos avanzados.El candidato debe tener una sólida experiencia en programación de bajo nivel, un profundo conocimiento de los protocolos de red y una pasión por resolver problemas difíciles en entornos a gran escala.
Este puesto ofrece la oportunidad de trabajar en soluciones de red de vanguardia que requieren precisión, eficiencia y escalabilidad.
Principales responsabilidades:
Desarrollo de software:
- Diseño, desarrollo y optimización de aplicaciones C++ de alto rendimiento para el procesamiento y análisis del tráfico de red.
- Implementar algoritmos eficientes para analizar y manejar diversos protocolos de red.
- Desarrollar bases de código modulares y ampliables que se integren con los sistemas existentes.
Protocolos de red y análisis de tráfico:
- Crear software que interactúe con el tráfico de red en tiempo real y lo analice.
- Desarrollar herramientas para la inspección de paquetes, el control de flujo y la gestión del tráfico.
- Implementar nuevos o mejorar los stacks de protocolos existentes para mejorar el rendimiento del sistema.
Optimización del rendimiento:
- Escribir código de baja latencia y alta eficiencia para el procesamiento de datos a gran escala.
- Aprovechar las funciones avanzadas de C++ para garantizar el máximo rendimiento y unos gastos generales mínimos.
- Perfile, depuración y optimización de código para la eficiencia de CPU y memoria.
Implementación de algoritmos complejos:
- Traducción de modelos matemáticos y algoritmos complejos en código C++ listo para la producción.
- Trabajar estrechamente con científicos de datos e ingenieros de algoritmos para refinar e implementar soluciones.
- Garantizar la precisión y eficiencia matemáticas en entornos de grandes conjuntos de datos.
Competencias y cualificaciones requeridas:
- Experiencia: más de 5 años de experiencia en el desarrollo de C++ (STL, no Qt o similar) con un enfoque en aplicaciones de alto rendimiento.
Experiencia técnica:
- Gran dominio del C++ moderno (C++14/17/20) y de la programación multihilo.
- Profundo conocimiento de los fundamentos de la red y experiencia trabajando con protocolos (TCP/IP, UDP, HTTP, etc.).
- Experiencia en programación de sockets y análisis a nivel de paquetes.
- Familiaridad con los entornos de desarrollo Linux/Unix.
Desarrollo de algoritmos:
- Capacidad demostrada para implementar algoritmos complejos y optimizarlos para el rendimiento.
- Gran comprensión de las estructuras de datos y los principios del diseño de algoritmos.
Herramientas y bibliotecas:
- Experiencia con bibliotecas de procesamiento de paquetes Wireshark, libpcap, DPDK o similares.
- Familiaridad con las herramientas de elaboración de perfiles de rendimiento (Valgrind, gprof, etc.).
- La comprensión de las técnicas de vectorización y SIMD será valorado favorablemente.
Cualificaciones favorables:
- Experiencia trabajando en dispositivos de red, cortafuegos o soluciones DPI (Deep Packet Inspection).
- Conocimiento de computación paralela, programación GPU o aceleración de hardware.
- Familiaridad con los marcos de aprendizaje automático para la detección de anomalías en el tráfico de red.
- Contribuciones de código abierto a proyectos relevantes de C++ o redes.
- Grado en ciencias de la computación, ingeniería eléctrica o campos relacionados.
Soft Skills:
- Gran capacidad para resolver problemas y atención a los detalles.
- Capacidad de tratar problemas complejos y abstractos y convertirlos en soluciones prácticas.
- Trabajo en equipo y habilidades de comunicación.
Beneficios:
- Salario competitivo y basado en el rendimiento.
- Oportunidades de crecimiento profesional y desarrollo de habilidades.
- Entorno de trabajo flexible con opción de remoto.
Que no te vuelva a pasar. Crea tu alerta de empleo personalizada y recibe nuevas ofertas como ésta.