We are seeking a motivated Embedded Software Engineer to design, develop, test, and maintain software for embedded systems and electronic devices. This position is suitable for entry-level candidates as well as mid-level professionals with experience in embedded software development, firmware, microcontrollers, and hardware/software integration.
Key Responsibilities
- Design, develop, and maintain embedded software and firmware using C/C++.
- Develop software for microcontrollers, processors, and embedded platforms.
- Work with hardware engineers to integrate software with sensors, peripherals, and electronic components.
- Develop and maintain device drivers and low-level software.
- Work with communication protocols including UART, SPI, I2C, CAN, USB, and Ethernet.
- Develop applications using RTOS, Embedded Linux, or other embedded operating systems.
- Debug software and hardware integration issues using JTAG, debuggers, oscilloscopes, and logic analyzers.
- Perform unit testing, integration testing, and system-level testing.
- Analyze software performance, memory utilization, timing, and reliability.
- Participate in code reviews and follow software development and coding standards.
- Use Git and other version-control/build tools for software development.
Required Qualifications
- Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, Electronics Engineering, or a related field.
- 0-5 years of experience in embedded software, firmware, or related engineering.
- Strong programming knowledge in C/C++.
- Understanding of data structures, algorithms, pointers, memory management, and object-oriented programming.
- Basic understanding of microcontrollers, processors, and embedded systems.
- Familiarity with hardware interfaces and communication protocols.
Preferred Qualifications
- Experience with ARM Cortex-M/Cortex-A or other microcontroller architectures.
- Experience with FreeRTOS, Zephyr, Embedded Linux, or similar RTOS platforms.
- Familiarity with CAN/CAN-FD, BLE, USB, Ethernet, or wireless technologies.
- Experience with Python or scripting for automation and testing.
- Familiarity with JTAG/SWD, GDB, oscilloscopes, logic analyzers, and other debugging tools.
- Understanding of Git-based development workflows and CI/CD.
- Experience with automotive, IoT, robotics, medical devices, industrial automation, or consumer electronics is a plus.
Entry-Level Candidates
Recent graduates with strong academic projects, internships, or hands-on experience in C/C++, microcontrollers, Arduino/STM32/ARM, RTOS, Embedded Linux, or electronics projects are encouraged to apply.
Mid-Level Candidates
Candidates with 2-5 years of embedded software/firmware development experience and experience working on production-level embedded products are preferred for mid-level responsibilities.
Key Technologies
C | C++ | Embedded C | ARM | Microcontrollers | RTOS | Embedded Linux | Device Drivers | UART | SPI | I2C | CAN | USB | Ethernet | Git | JTAG | GDB | Python
Ready to Take the Next Step?