Location: Bangalore
Workplace Type: Hybrid
About The Role
We are seeking a highly motivated and skilled Embedded Software Engineer to join our dynamic team. In this role, you will be responsible for the development, maintenance, and optimization of embedded software for microcontroller-based systems. You will work closely with cross-functional teams to deliver high-quality, reliable, and secure solutions. This position offers the opportunity to work with cutting-edge technologies and contribute to the development of innovative products. The ideal candidate will have a strong background in C/C++ programming, experience with STM32 microcontrollers, and a solid understanding of embedded development toolchains and CI/CD systems. If you are passionate about embedded systems and enjoy solving complex technical challenges, we encourage you to apply.
Key Responsibilities
- Development and maintenance of embedded software in C/C++ for microcontroller-based systems
- Programming and configuration of STM32 microcontrollers (Cortex-M0+, M4, M33)
- Implementation of device drivers, peripheral interfaces, and communication protocols (UART, SPI, IC, etc.)
- Adaptation and optimization of existing product software
- Software integration and testing on target hardware
- Conducting Unit-Tests and Code Reviews
- Driving and contributing to the test strategy
- Design and maintenance of the development ecosystem and CI/CD pipelines using GitLab/Jenkins
- Setup, maintenance, and continuous improvement of embedded toolchains (compilers, linkers, debuggers, build systems)
- Optimization and integration of embedded IDEs (e.g., JetBrains CLion, VS Code) with appropriate plugins
- Evaluation and documentation of tools, and creation of development guidelines
- Collaboration with cross-functional teams (mechanics, electronics, testing, hardware)
- Future outlook: Participation in setting up a Linux-based toolchain and training colleagues
Required Skills & Qualifications
- Degree in Computer Science, Electrical Engineering, or equivalent qualification
- Strong proficiency in C and C++, preferably in embedded software development
- Experience in STM32 microcontroller families (especially Cortex-M0+, M4, M33)
- Experience with embedded development toolchains, IDEs (CLion, VS Code), and CI/CD systems
- Familiarity with Unit-Test frameworks (e.g., Google Test)
- Solid understanding of schematics, technical datasheets, and reference manuals
- Strong proficiency in Linux OS
- Open-minded, structured, independent working style and strong team player
- Good communication skills in English (German is a plus)
- Experience with RTOS such as Segger embOS (must have) and Zephyr RTOS (nice to have)
- Knowledge of interfaces & communication protocols such as CAN, IO-Link, Modbus (TCP), EtherCAT / PROFINET / OPC UA, IC, SPI, UART
Additional Information
Tech Stack:Programming Languages:
- C - hardware-based programming
- C++11 to C++17 or higher
- Python (used in toolchain and scripting)
Microcontrollers & Processors:
- STM32H5 (ARM Cortex-M33, 250 MHz)
- STM32U5 (ARM Cortex-M33, 160 MHz)
- STM32F4xx
- STM32F103
- Cortex M0+, M4, M33 (general)
RTOS:
- Segger embOS (must have)
- Zephyr RTOS (nice to have for future development)
IDE, CI/CD & Build Tools:
- JetBrains CLion, VS Code
- CMake, Make
- Jenkins
- Git, GitLab
- JetBrains IDEs, Upsource
- Jira Software, XRay
Debuggers & Tools:
- J-Link Debugger (SEGGER)
- ST-LINK/V3 Debugger
- STM32CubeMonitor
Interfaces & Communication:
- CAN (Controller Area Network)
- IO-Link
- Modbus (TCP)
- EtherCAT / PROFINET / OPC UA
- IC, SPI, UART
Security & Certifications:
- Secure Boot & Secure Firmware Update (SFI/SFU) - STM32H5 supported
- TrustZone for Cortex-M33 (secure/insecure application separation)
- AES-256 & SHA-512 Hardware Encryption
- ISO 61508 / IEC 62443 - Safety & Security Standards