Role Overview
We are looking for a skilled and passionate
Embedded Software Engineer
to join our growing engineering team. In this role, you will be responsible for the full lifecycle of embedded software development—from architectural design and prototyping to coding, debugging, and production deployment. You will work closely with hardware engineers and product managers to bring reliable, high-performance devices to life.
Key Responsibilities
-
Design & Develop:
Write efficient, maintainable, and robust code in C/C++ for embedded systems (bare-metal and/or RTOS).
-
Hardware Bring-up:
Collaborate with the hardware team to bring up new boards, verify schematics, and debug hardware-software interfaces.
-
Driver Implementation:
Develop and maintain low-level drivers for peripherals (e.g., I2C, SPI, UART, ADC, GPIO, USB).
-
System Optimization:
Optimize code for power consumption, memory usage, and processing performance.
-
Testing & Debugging:
Perform unit testing, integration testing, and troubleshoot complex system-level issues using oscilloscopes, logic analyzers, and JTAG debuggers.
-
Documentation:
Create clear technical documentation for architecture, APIs, and testing procedures.
Qualifications (Must Haves)
-
Experience:
2 years of experience in embedded software development.
-
Education:
Bachelor’s degree in Computer Science, Electrical Engineering, Firmware Engineering, or a related field.
-
Programming:
Strong proficiency in
C
and
C++
with a deep understanding of memory management and pointers.
-
MCU Knowledge:
Experience working with microcontrollers (e.g., STM32, ESP32, Nordic nRF, AVR, PIC, or ARM Cortex-M architecture).
-
Communication Protocols:
Hands-on experience with serial communication protocols (I2C, SPI, UART, RS-485, CAN).
-
OS Concepts:
Familiarity with Real-Time Operating Systems (RTOS) like FreeRTOS, Zephyr, or embedded Linux.
Preferred Qualifications (Nice to Haves)
-
Experience with
IoT protocols
(MQTT, CoAP, HTTP) and wireless stacks (BLE, Wi-Fi, LoRaWAN, Zigbee).
-
Knowledge of scripting languages (Python/Bash) for test automation.
-
Experience with Over-the-Air (OTA) firmware update mechanisms.
-
Understanding of hardware schematics and ability to read data sheets.
-
Experience with CI/CD pipelines for embedded projects.