Embedded Software Engineer
Role details
Job location
Tech stack
Requirements
This position requires a minimum of a BS in Software/Electrical/Computer Engineering or equivalent from an accredited university.
Minimum 7 years' experience in Software Design and development in embedded software/firmware.
Experience in Programming language C++. Strong understanding of Object-oriented programming.
Experience with RTOS based Embedded Software. Azure RTOS/ThreadX preferred.
Experience with hierarchical state-machines.
Good Knowledge of Software/Firmware unit testing methodologies. (gtest experience strongly preferred)
Peripherals and their drivers modification and test
Hands-on experience on SPI, I2C, PWM, ADC, DAC, eMMC, USB, UARTs as well as Memory Management, Scheduling, Interrupts, and multi-threading
Microprocessor/Microcontroller development Strong Knowledge and working experience on STM microcontrollers Architecture (domain knowledge for designs SW, HW)
GitHub, CI/CD, VSCode, Docker Dev Containers all preferred.
Aware of SDLC. Good grasp of Design Patterns/ Multithreading, Code Reviews
Experience in Agile SW Development practices; experience in scaled agile framework (SAFe) is preferred
Knowledge and application of the following is preferred:
communication interfaces (e.g. USB, Ethernet, Serial)
network protocols and standards (e.g. TCP/IP, UDP, Bluetooth, NFC
Experience in software development in medical industry or highly regulated industry; experience with IEC 62304, FDA guidance for medical device development and other relevant medical device regulatory standards is highly preferred