Puesto
Arquitecto Software Senior (C++)
Madrid
Empresa puntera Diseño Eléctronico
Nº Referencia: 1146
Funciones
-
Para División de I+D, seleccionamos un Arquitecto Software Senior con capacidad para diseñar la arquitectura de sistemas sobre plataformas Linux y también Windows y Móviles: Análisis, especificación, desarrollo, pruebas y documentación.
Contrato
-
Permanent.
-
Attractive conditions.
Experiencia
Se requiere amplia experiencia demostrable, de mínimo 5 años, en:
-
Metodologías de diseño y programación orientada a objetos.
-
Sólidos conocimientos de C++ y desarrollo con tests unitarios.
-
Implementación de comunicaciones TCP/IP en entornos LAN y WAN. Nivel de experto en conocimiento del stack TCP/IP.
-
Bases de datos relacionales (MariaDB, MySQL, SQLite, SQL Server, Oracle, etc.) y no relacionales (MongoDB, Cassandra, CouchDB, etc.) y ORM’s (EntityFramework, nHibernate, OrmLite, etc.).
-
Diseño de plataformas y arquitecturas Cliente-Servidor, interfaces REST, SOAP con clientes web multiplataforma.
-
Metodologías de pruebas y desarrollo guiado por pruebas (TDD).
-
Patrones de diseño, inyección de dependencias, abstracción y reutilización de componentes.
-
Tecnologías de desarrollo y comunicaciones: Framework Qt 5.3 o posterior y Protocol Buffers.
-
Implementación de código de alta calidad (rendimiento, uso de memoria y tolerancia a fallos).
-
Gestión y seguimiento de proyectos de desarrollo software con metodologías ágiles de desarrollo (SCRUM / Kanban).
Formación
-
Ingeniero IT / Telco / otros.
Requisitos
Conocimientos y experiencia muy valorables:
-
GUI HTML5 y CSS3.
-
Framework de aplicaciones web en cliente, especialmente AngularJS.
-
Control de versiones Git y revisión de código Gerrit.
-
Integración continua (TeamCity, Jenkins, etc.) y BugTrackers (YouTrack, Jira, etc.)
-
Comunicación entre componentes de software locales y remotos.
-
Herramientas de análisis de código y profiling (Sonarqube, Valgrind, Lcov, etc.).
-
Desarrollo de Appliances y construcción de imágenes (Buidlroot, Yocto, Timesys, etc.).
-
Comunicación entre componentes software y hardware (Ethernet, RS-485, RS-232, USB, etc.)
-
Mecanismos de balanceo de carga
-
Arquitecturas y mecanismos redundancia de operación y alta disponibilidad
-
Algoritmia de datos (optimización de procesos de ordenación, búsqueda, etc...)
-
Arquitecturas Cloud y operación distribuida.
Otras características:
-
Alta capacidad analítica y resolutiva.
-
Innovador, con espíritu creativo y proactivo en las propuestas de soluciones.
-
Acostumbrado a trabajar y comprometerse con los objetivos.
-
Alta capacidad de motivación de equipos de trabajo para obtener siempre el mejor resultado y conseguir mejorar el rendimiento de los integrantes del mismo.
-
Profesionales apasionados por la tecnología y la innovación, comprometidos con los resultados y acostumbrados a lograr el éxito.
