Ingeniero de Software CONOCIMIENTO REQUERIDO • Más de 4 años programando aplicaciones C ++ para Linux.
• Conocimiento sólido de la secuencia de comandos de línea de comandos de Linux (bash).
• Competencia en programación orientada a objetos, diseño orientado a objetos y principios sólidos.
• Fuerte conocimiento del sistema de construcción CMake.
• Experiencia trabajando en Gtkmm o kits de herramientas gráficas similares en Linux.
• Centrarse en el diseño orientado a pruebas y el desarrollo orientado a pruebas.
• Experiencia en depuración de aplicaciones C ++. Usuario competente de gdb y valgrind.
• Desarrollo de aplicaciones con múltiples subprocesos.
• Uso hábil del algoritmo de cifrado simétrico y asimétrico, certificados digitales, hash y firmas digitales en aplicaciones C ++.
• Experiencia trabajando con libusb para interactuar con dispositivos personalizados o periféricos.
• Experiencia interactuando con impresoras térmicas y tazas.
HABILIDADES PREFERIDAS
• Experiencia en programación de aplicaciones localizadas.
• Experiencia en trabajo programático con dispositivos tales como: lector de huellas digitales y lectores de tarjetas inteligentes.
• Conocimientos de arquitectura informática.
• Conocimiento del sistema de construcción GNU (herramientas automáticas).
• Conocimiento de los estándares de lenguaje C99 y C ++ 98/03
ROL PRINCIPAL Y RESPONSABILIDADES
• Responsable de planificar, procesar y realizar todos los trabajos de manera eficiente.
• Escribe, edita y depura programas informáticos nuevos para proyectos asignados, incluidos los registros necesarios y la salida deseada.
• Responsable del análisis de los programas actuales, incluidos el rendimiento, el diagnóstico y la resolución de problemas de los programas problemáticos, y el diseño de soluciones para la programación problemática.
• Responder rápida y profesionalmente a los informes de errores.
• Revisar y reparar el código heredado.
• Brindar asistencia a los probadores y al personal de soporte según sea necesario para determinar los problemas del sistema.
• Revisar, en la medida de lo posible, los cambios en el código y el entorno que afectarán el rendimiento del sistema.
• Prueba nuevos programas para garantizar que la lógica y la sintaxis sean correctas y que los resultados del programa sean precisos; ayuda a los programadores de nivel inferior con tareas de programación.
• Responsable del mantenimiento del entorno de Desarrollo, Construcción e Implementación utilizando el IDE establecido, el servidor de construcción y las herramientas de integración continua.