Job Summary
We are seeking a highly skilled and motivated Senior Embedded Firmware Developer with 4-6 years of hands-on experience to join our growing R&D team.The ideal candidate will be responsible for the design, development, debugging, and testing of robust and efficient firmware for our next-generation embedded systems.
Firmware Development
This role requires a strong understanding of embedded hardware, real-time operating systems (RTOS), communication protocols, and a proven track record of bringing embedded products from concept to Responsibilities :
- Design, develop, and implement high-quality, efficient, and reliable embedded firmware in C/C++ for various microcontrollers (e.g., ARM Cortex-M, ESP32, PIC, AVR, etc.)
- Architect and develop modular, scalable, and maintainable firmware solutions.
- Implement and optimize algorithms for performance and resource utilization in embedded environments.
- Develop device drivers for various peripherals (e.g., SPI, I2C, UART, ADC, DAC, PWM, GPIO, Timers, etc.)
- Integrate and debug hardware and firmware Design & Architecture :
- Contribute to the overall embedded system architecture and design, considering performance, power consumption, cost, and reliability.
- Participate in hardware-firmware interface definition and collaboration with hardware engineers.
- Analyze system requirements and translate them into detailed firmware & Testing :
- Perform comprehensive debugging using various tools (e.g., JTAG, SWD, oscilloscopes, logic analyzers, protocol analyzers).
- Develop and execute unit tests, integration tests, and system tests to ensure firmware quality and robustness.
- Identify and resolve complex technical issues in embedded systems.
RTOS & Communication Protocols
- Experience with and ability to utilize Real-Time Operating Systems (RTOS) such as FreeRTOS, Zephyr, or similar, for task scheduling, inter-task communication, and resource management.
- Develop and integrate various communication protocols (e.g., Bluetooth LE, Wi-Fi, LoRa, Zigbee, MQTT, CoAP, TCP/IP, USB, CAN, & Version Control :
- Create and maintain detailed technical documentation, including design specifications, API documentation, and test plans.
- Utilize version control systems (e.g., Git) effectively for collaborative development and code & Mentorship :
- Work collaboratively with cross-functional teams including hardware engineers, QA engineers, and project managers.
- Provide technical guidance and mentorship to junior team members.
- Actively participate in code reviews and design Improvement :
- Stay up-to-date with the latest advancements in embedded systems, microcontrollers, and firmware development tools and methodologies.
- Proactively identify opportunities for process and technical Skills & Qualifications :
- Bachelor's or Master's degree in Electrical Engineering, Electronics Engineering, Computer Engineering, or a related field.
- 4-6 years of hands-on experience in embedded firmware development.
- Proficiency in C/C++ for embedded systems development.
- Strong understanding of microcontroller architectures (e.g., ARM Cortex-M series, ESP32, PIC, AVR, etc.)
- Extensive experience with embedded communication protocols such as I2C, SPI, UART, CAN, USB, etc.
- Demonstrated experience with RTOS (e.g., FreeRTOS, Zephyr, etc.) for developing multi-threaded applications.
- Solid understanding of digital and analog electronics.
- Ability to read schematics and datasheets.
- Experience with debugging tools like JTAG/SWD debuggers, oscilloscopes, logic analyzers.
- Proficiency with version control systems, especially Git.
- Experience with build systems (e.g., Make, CMake).
- Strong problem-solving and analytical skills.
- Excellent written and verbal communication skills.
- Ability to work independently and as part of a (Good to Have) Skills :
- Experience with wireless communication technologies (e.g., Bluetooth LE, Wi-Fi, LoRa, NB-IoT).
- Familiarity with IoT platforms and cloud connectivity (e.g., AWS IoT, Azure IoT, Google Cloud IoT).
- Experience with firmware update mechanisms (OTA - Over-The-Air).
- Knowledge of low-power design techniques for battery-powered devices.
- Experience with embedded Linux or other higher-level embedded operating systems.
- Scripting skills (e.g., Python) for automation, testing, or tool development.
- Familiarity with agile development methodologies
(ref:hirist.tech)