6 to 8 years of Experience in embedded software development, with a proven track record of working on microcontroller\-based solutions.
Strong proficiency in C\+\+ (C\+\+14 and above) and Object\-Oriented Programming (OOPs). Applied knowledge of SOLID principles and Design Patterns in a resource\-constrained environment.
Strong design experience using UML (Class, Sequence, Component diagrams) to model software design. Hands\-on experience with microcontrollers/microprocessors such as STM32 and ARM Cortex.
Hands\-on experience in low\-level driver development for embedded products, including SPI, I2C, UART, and related interfaces.
Experience with embedded debugging tools and protocols such as JTAG/SWD, GDB, Segger J\-Link.
Deep experience in multi\-threaded application development within an RTOS context with hands\-on knowledge of thread synchronization primitives like mutexes, semaphores, message queues, and condition variables.
Hands\-on development experience with RTOS (Zephyr preferrable). Expertise with Git and experience with CI/CD pipelines using Jenkins, Bamboo, or similar tools.
Unit Testing: Experience with unit testing frameworks suitable for embedded systems.
Knowledge of Ztest (Zephyr's integrated framework) is a major plus, along with experience in Gtest/Gmock. Practical experience with Static Code Analysis tools (e.g., Cppcheck, Clang\-Tidy).
Scripting skills using Python for automation or testing purposes is nice to have Experience working in an Agile software development environment.
BE/ME Electronics background
5 to 8 years