Job Description
Estamos buscando un ingeniero Senior de C++ (PAN-E) con experiencia para trabajar en proyectos en Panamá. Como ingeniero Senior de Software (C++), ayudará en el desarrollo y la implementación de soluciones electorales basadas en tecnología.
Requirements
Funciones y responsabilidades principales :
Implementará, probará y refactorizará aplicaciones C++ integradas, y ayudará en el diseño de estas aplicaciones para cumplir con los requisitos funcionales y técnicos.
Dentro del equipo de ingeniería, también aprenderá, enseñará, emparejará, revisará código, explorará nuevas tecnologías, implementará mejores prácticas y ayudará a mejorar continuamente al equipo en un entorno acelerado.
Liderar las implementaciones y mejores prácticas del equipo de desarrollo de software.
Brindar liderazgo, dirección y tutoría del equipo técnico a jóvenes y adultos mayores por igual.
Liderar refactorizaciones periódicas rápidas que mantengan el código de las aplicaciones actualizado, flexible y reutilizable.
Responsable del análisis de los programas actuales, incluido el rendimiento, el diagnóstico y la solución de problemas de los programas problemáticos, y el diseño de soluciones para la programación problemática.
Responsable del mantenimiento del entorno de desarrollo, construcción e implementación utilizando la cadena de herramientas establecida y las herramientas de integración continua.
Desarrolle, admita, mantenga y mejore aplicaciones y herramientas usando principalmente C++ y C, pero también scripts de Bash y Python.
Aplique un diseño incisivo y una habilidad de codificación excepcional para eliminar características de la extensa y creciente lista de características de los productos.
Adopte y siga las mejores prácticas de ingeniería y desarrollo de equipos y los estándares de codificación.
Revise y repare el código heredado.
Responda con rapidez y profesionalidad a los informes de errores.
Trabajar con los equipos de control de calidad en la resolución de defectos.
Habilidades y calificaciones requeridas :
Licenciatura en Informática, Ingeniería o carrera científica afín.
Más de 6 años programando aplicaciones C++.
Más de 6 años de experiencia en el desarrollo de aplicaciones para sistemas tipo Unix.
Conocimiento intermedio de línea de comandos de Linux (Bash) y / o secuencias de comandos de Python.
Capacidad para escribir código bien resumido, estructurado y orientado a objetos.
Fuertes habilidades escritas y habladas en inglés.
Información de soporte :
Fuerte conocimiento de los estándares de lenguaje C99 y C++98 / 03.
Fuerte conocimiento de los modismos comunes de C++.
Gran conocimiento de los patrones de diseño de Gang of Four.
Fuerte conocimiento de los principios SOLID.
Conocimientos básicos del sistema de compilación CMake.
Gran experiencia con SCRUM, Kanban, XP o marcos de desarrollo similares.
Sólida experiencia con el desarrollo basado en pruebas (TDD) utilizando marcos populares como Google Test y Google Mock.
Gran experiencia en la depuración y creación de perfiles de aplicaciones C++ utilizando gdb y valgrind.
Experiencia intermedia con varios lenguajes de programación y comprensión de los beneficios y uso adecuado de diferentes paradigmas de programación (programación estructurada, orientada a objetos y funcional).
Habilidades y cualidades personales.
Requirements
Funciones y responsabilidades principales : Implementará, probará y refactorizará aplicaciones C++ integradas, y ayudará en el diseño de estas aplicaciones para cumplir con los requisitos funcionales y técnicos.
Dentro del equipo de ingeniería, también aprenderá, enseñará, emparejará, revisará código, explorará nuevas tecnologías, implementará mejores prácticas y ayudará a mejorar continuamente al equipo en un entorno acelerado.
Liderar las implementaciones y mejores prácticas del equipo de desarrollo de software. Brindar liderazgo, dirección y tutoría del equipo técnico a jóvenes y adultos mayores por igual.
Liderar refactorizaciones periódicas rápidas que mantengan el código de las aplicaciones actualizado, flexible y reutilizable.
Responsable del análisis de los programas actuales, incluido el rendimiento, el diagnóstico y la solución de problemas de los programas problemáticos, y el diseño de soluciones para la programación problemática.
Responsable del mantenimiento del entorno de desarrollo, construcción e implementación utilizando la cadena de herramientas establecida y las herramientas de integración continua.
Desarrolle, admita, mantenga y mejore aplicaciones y herramientas usando principalmente C++ y C, pero también scripts de Bash y Python.
Aplique un diseño incisivo y una habilidad de codificación excepcional para eliminar características de la extensa y creciente lista de características de los productos.
Adopte y siga las mejores prácticas de ingeniería y desarrollo de equipos y los estándares de codificación. Revise y repare el código heredado.
Responda con rapidez y profesionalidad a los informes de errores. Trabajar con los equipos de control de calidad en la resolución de defectos.
Habilidades y calificaciones requeridas : Licenciatura en Informática, Ingeniería o carrera científica afín. Más de 6 años programando aplicaciones C++.
Más de 6 años de experiencia en el desarrollo de aplicaciones para sistemas tipo Unix. Conocimiento intermedio de línea de comandos de Linux (Bash) y / o secuencias de comandos de Python.
Capacidad para escribir código bien resumido, estructurado y orientado a objetos. Fuertes habilidades escritas y habladas en inglés.
Información de soporte : Fuerte conocimiento de los estándares de lenguaje C99 y C++98 / 03. Fuerte conocimiento de los modismos comunes de C++.
Gran conocimiento de los patrones de diseño de Gang of Four. Fuerte conocimiento de los principios SOLID. Conocimientos básicos del sistema de compilación CMake.
Gran experiencia con SCRUM, Kanban, XP o marcos de desarrollo similares. Sólida experiencia con el desarrollo basado en pruebas (TDD) utilizando marcos populares como Google Test y Google Mock.
Gran experiencia en la depuración y creación de perfiles de aplicaciones C++ utilizando gdb y valgrind. Experiencia intermedia con varios lenguajes de programación y comprensión de los beneficios y uso adecuado de diferentes paradigmas de programación (programación estructurada, orientada a objetos y funcional).
Habilidades y cualidades personales.