We are looking for
A hands-on Firmware Developer who writes clean, reliable C on microcontrollers and owns their module end to end: development, testing, debugging and documentation. You will build firmware for real products - medical devices, industrial systems and IoT hardware - where your code runs on hardware you can hold, and a bug can cost a field return.
The person we are looking for tests what they write before calling it done, reads a schematic rather than waiting for someone to explain the board, and treats a peer review - given or received - as a way to make the product better, not a formality.
Should have the following responsibilities and background
1. Firmware Development
- Develop firmware as per the customer’s requirements, from driver level to application logic.
- Write and maintain drivers for common peripherals: GPIO, SPI, I2C, UART, ADC, DAC, timers, displays and memory devices.
- Design interrupt-driven behaviour correctly: ISRs, priorities, shared-data protection.
- Participate in board bring-up with the hardware team and help isolate hardware-firmware issues on the bench.
2. Quality and Testing
- Unit test the firmware you develop and fix what the tests find before hand-off.
- Debug systematically using JTAG/SWD debuggers, logic analysers and oscilloscopes.
- Review a colleague’s firmware module the way you would want yours reviewed: thoroughly and constructively.
- Adhere to the project’s quality processes: coding guidelines, version control discipline and release hygiene.
3. Delivery and Documentation
- Follow committed timelines and flag risk early - a slip reported on the day it is discovered is a plan; a slip reported at the deadline is a surprise.
- Document your modules so another engineer can pick them up: interfaces, assumptions, known limitations.
- Keep task status current so the Tech Lead never has to chase you for an update.
Technical Skills Required
- C Programming: Proficient, hands-on C on microcontrollers; ARM Cortex-M preferred (STM32, NXP, ESP32 or similar).
- Peripherals: Practical interfacing experience: GPIO, SPI, I2C, UART, ADC, DAC, timers, displays, memory devices.
- Interrupts: Conversant with interrupts and ISRs: latency, priorities, race conditions and safe shared-data handling.
- Bring-up & Debug: Board bring-up participation; debugging with JTAG/SWD, logic analysers, oscilloscopes and multimeters.
- Hardware Literacy: Can read schematics and understand discrete components, microcontroller circuits and memory interfaces.
- Version Control: Git-based workflow: branches, reviews, meaningful commits.
Preferred Skills (Added Advantage)
- C++, ARM Assembly, RTOS (FreeRTOS or equivalent), Embedded Linux.
- Networking and connectivity protocols: TCP/IP, MQTT, BLE, Wi-Fi.
- Exposure to IoT or IoMT (Internet of Medical Things) products, or regulated development such as ISO 13485 / IEC 62304.
- Experience in a product design services or contract development environment.
Qualifications
- B.E. / B.Tech / M.E. / M.Tech in an Electronics-based branch or equivalent.
- 2 to 5 years of experience in firmware development.
- Good verbal and written communication in English.
What Success Looks Like
- Your modules pass review and integration the first time far more often than not.
- Bugs found in your code are fixed with root cause understood, not patched over.
- The hardware team asks for you by name for bring-up support.
Remuneration & Work Location
- CTC Range: As per industry standard for relevant experience.
- Pune, Wakad Office.