Embedded C & Firmware EngineerAbout the Role
We are seeking a talented Embedded C & Firmware Engineer to join our engineering team. In this role, you will design, develop, and maintain firmware for embedded systems, working on cutting-edge IoT devices and connected products. You'll collaborate with cross-functional teams to deliver reliable, efficient, and scalable embedded solutions.
Key ResponsibilitiesFirmware Development
- Design and implement firmware in C/C++ for microcontroller-based systems (ARM Cortex-M series, STM32, ESP32, or similar)
- Develop device drivers for peripherals including UART, SPI, I2C, ADC, timers, and GPIO
- Implement communication protocols such as MQTT, HTTP, CoAP, and Modbus
- Create bootloaders and over-the-air (OTA) update mechanisms
- Write clean, maintainable, and well-documented code following embedded best practices
System Integration
- Integrate sensors, actuators, and communication modules (cellular, LoRaWAN, BLE, Wi-Fi)
- Work with wireless communication technologies including LTE-M, NB-IoT, and 4G/5G modules
- Develop and optimize power management strategies for battery-operated devices
- Interface with external memory systems (Flash, EEPROM, SD cards)
Testing & Debugging
- Perform unit testing, integration testing, and system-level validation
- Debug firmware using JTAG/SWD debuggers, logic analyzers, and oscilloscopes
- Troubleshoot hardware-software integration issues
- Conduct power consumption analysis and optimization
Documentation & Collaboration
- Create technical documentation including design specifications and user guides
- Participate in code reviews and contribute to continuous improvement initiatives
- Collaborate with hardware engineers, software developers, and product managers
- Provide technical support for manufacturing and field deployment
Required QualificationsTechnical Skills
- Strong proficiency in C programming with 2+ years of embedded systems experience
- Solid understanding of microcontroller architectures and embedded systems fundamentals
- Proficiency with embedded development tools (IDEs, compilers, debuggers)
- Knowledge of communication protocols: UART, SPI, I2C, CAN, USB
- Familiarity with version control systems (Git)
- Understanding of hardware-software interfaces and datasheets
Problem-Solving
- Strong analytical and debugging skills
- Ability to read schematics and understand hardware designs
- Experience with multithreading, interrupt handling, and DMA
- Knowledge of memory management and optimization techniques
Professional Attributes
- Bachelor's degree in Electrical Engineering, Computer Engineering, or related field
- Excellent written and verbal communication skills
- Self-motivated with ability to work independently and in teams
- Strong attention to detail and commitment to code quality
Preferred Qualifications
- Experience with ARM Cortex-M microcontrollers (STM32, NRF, etc.)
- Knowledge of IoT cloud platforms (AWS IoT, Azure IoT, ThingsBoard)
- Experience with cellular modems (SIM7080G, SIM800, Quectel, etc.)
- Familiarity with low-power design techniques and battery management
- Experience with wireless protocols: LoRaWAN, Zigbee, BLE, Wi-Fi
- Knowledge of bootloader development and firmware update mechanisms
- Understanding of security best practices for embedded devices
- Experience with Python or other scripting languages for test automation
- Familiarity with CI/CD pipelines for embedded systems
Job Type: Full-time
Application Question(s):
- How many years of experience do you have working on programming microcontrollers
Experience:
- C/C++ : 2 years (Preferred)