Software Engineer

2025-01-23
Madrid
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.

40.4167047, -3.7035825