We are looking for an experienced and highly skilled Senior Embedded Software Engineer to join our Embedded Software Team. In this senior role, you will take technical ownership over core components of our embedded software products development, drive architectural decisions, and serve as a key contributor to the development of advanced water measurement and IoT solutions.
You will also mentor junior engineers, help shape development practices and collaborate cross-functionally to ensure successful system integration across multiple disciplines.
Key Responsibilities:
Lead the design and development of embedded software for next-generation smart water meters and IoT solutions.
Maintain and enhance existing embedded software to ensure robustness, stability, and performance.
Collaborate with Hardware, Hydraulic, V&V and System Engineering teams to ensure seamless integration and system-wide functionality.
Guide and review the work of junior developers, promoting best practices in software development and documentation.
Contribute to system-level architecture, including hardware-software interfacing, low-power design, and modular architecture.
Requirements: 5+ years of hands-on experience in low-level embedded software development.
Strong proficiency in C/C++ programming for microcontrollers.
Deep understanding of embedded system design patterns and architecture.
Familiarity with hardware protocols such as SPI, UART, I2C, and others.
Experience with bare-metal or RTOS-based development.
Experience using AI tools (e.g., GPT) to support and accelerate the software development process.
Proven ability to lead technical efforts, mentor team members, and drive development autonomously.
Strong communication and collaboration skills.
Nice-to-Haves (Preferred but not Required):
Experience working with STMicroelectronics MCUs and development tools.
Background in developing low-power embedded applications.
Familiarity with wireless communication protocols such as LoRa, Cellular, NB-IoT.
Knowledge of IoT data modelling protocols such as LWM2M, DLMS, or similar.
Experience with Python or C# development in Automation or related domains
Exposure to Agile/Scrum methodologies and unit testing frameworks.
This position is open to all candidates.