C/C++ Software Engineer
Job Summary
Buscamos un/a Ingeniero/a de Software con sólida experiencia en programación de sistemas con C/C++ y orientación práctica hacia la automatización de pruebas con Python y Selenium. El desafío combina desarrollo de software de bajo nivel, trabajo con arquitecturas ARM y x64, automatización de testing y validación de interfaces asociadas a estos sistemas. Buscamos una persona con un perfil técnico, autónomo y resolutivo para el desarrollo y optimización de código.
Responsibilities
- Desarrollar y optimizar código en C/C++ para arquitecturas ARM y x64
- Automatizar pruebas y validar backend utilizando Python
- Crear pruebas automatizadas con Selenium WebDriver para interfaces
- Configurar entornos de compilación cruzada y pipelines de CI/CD
Required Skills
- Dominio avanzado de C y C++
- Experiencia con Python y Selenium WebDriver
- Manejo de entornos Linux y Bash scripting
- Experiencia con arquitecturas ARM y x64
Job Details
Functions
- Desarrollo y optimización: desarrollar, depurar y mantener código en C y C++, optimizado para arquitecturas ARM —como Raspberry Pi, microcontroladores o procesadores móviles— y x64 —sistemas de escritorio o servidores—.
- Automatización de pruebas: diseñar, desarrollar y ejecutar scripts utilizando Python para validar el funcionamiento del backend y de los distintos componentes lógicos del sistema.
- Testing de interfaces: crear y mantener pruebas automatizadas con Selenium WebDriver y Python para interfaces web, paneles de administración local y portales embebidos en dispositivos.
- Cross-compilation: configurar y administrar toolchains y entornos de compilación cruzada para desarrollar y probar código desde plataformas x64 hacia arquitecturas ARM.
- Integración continua: incorporar las pruebas automatizadas desarrolladas en Python y Selenium dentro de pipelines de CI/CD, asegurando la calidad y estabilidad del código C/C++ en cada actualización.
- Colaborar en la identificación, análisis y resolución de problemas técnicos vinculados al software, hardware y entornos de ejecución.
Requirements
- Experiencia sólida y dominio avanzado de C y C++, incluyendo gestión de memoria, punteros y multithreading.
- Experiencia desarrollando y automatizando procesos con Python.
- Experiencia comprobable creando suites de pruebas automatizadas utilizando Selenium WebDriver.
- Experiencia trabajando con arquitecturas ARM y x64 (x86_64) a nivel de sistema operativo y/o hardware.
- Dominio de entornos Linux, incluyendo línea de comandos y Bash scripting.
- Conocimientos y experiencia en procesos de cross-compilation.
- Conocimientos de protocolos de comunicación de hardware como SPI, I2C y UART.
- Experiencia trabajando con RTOS o en desarrollo de drivers para Kernel de Linux.
- Experiencia con herramientas de CI/CD como Jenkins, GitLab CI o GitHub Actions.
- Experiencia configurando pipelines para despliegues y pruebas sobre dispositivos físicos o emuladores como QEMU.
- Familiaridad con herramientas de análisis estático y dinámico para C/C++, como Valgrind, SonarQube u otras similares.
Benefits
- Capacitaciones y desarrollo constantes.
- Tiempo libre y equilibrio, podrás disfrutar de 5 días libres al año, adicionales a tus vacaciones legales, 1 día libre durante el mes de tu cumpleaños, 1 día libre por cambio de casa y mucho más!
- Seguro complementario 100% gratuito para ti una vez que pases a contrato indefinido.
- Suscripción gratuita a la app Puramente, enfocado en llevar tu bienestar a otro nivel.
- Entre otros beneficios a mencionar durante el proceso.