Embedded Software Engineer
by Trapeze in Software Development
The Embedded Software Engineer is responsible for designing, developing, testing, deploying, and maintaining complex embedded software solutions from project conception through production, while supporting existing company products across multiple technologies and platforms. The role participates throughout the Software Development Life Cycle (SDLC), including business requirements analysis, functional and technical specification development, software design, implementation, testing, verification, deployment, maintenance, and integration with third-party systems. Responsibilities include developing interactive Linux applications using C++ and Qt, designing and maintaining high-performance embedded firmware in C for STM32 microcontrollers, integrating third-party libraries and middleware, debugging and troubleshooting software issues, participating in code reviews, developing and maintaining CMake build scripts, improving build automation processes, packaging and deploying software, and following rigorous SDLC, testing, and verification methodologies. The position also supports client requirements analysis, effort estimation, software application design, second-level regional customer support, and integration with external systems. Required technical expertise includes C, C++, Linux, Qt, STM32, STM32CubeMX, firmware development, drivers, libraries, RTOS frameworks, X11-based user interface development, OBD2, CAN Bus, TCP, UDP, HTTP, MQTT, Qt Quick, QML, Agile and Waterfall software development methodologies, Linux build environments, deployment automation, and embedded application development.