Sr Firmware Developer
About the Role
We are looking for an experienced Embedded Software Engineer with strong, hands-on firmware development skills on 32-bit microcontroller platforms. We are hiring for capability rather than for a single pre-defined slot. Across all of our programs the underlying work is the same: production-quality embedded C, close to the hardware, with real responsibility for correctness and reliability. This is a hands-on engineering role at a senior level.
What You Will Do
- Key Responsibilities
- • Design, develop, test and maintain production embedded firmware in C on 32-bit microcontrollers.
- • Develop device drivers and low-level peripheral software — SPI, I2C, UART, CAN / CAN-FD, Ethernet, USB, ADC, PWM, timers, DMA, GPIO and watchdog.
- • Define software architecture for assigned modules: layering, task partitioning, scheduling, state machines, timing budgets and interface contracts.
- • Develop RTOS-based and bare-metal applications with attention to real-time behaviour, determinism and resource constraints.
- • Implement communication protocol stacks and application protocol layers, and integrate third-party stacks and middleware.
- • Debug at system level using oscilloscopes, logic analysers, JTAG/SWD debuggers, protocol analysers and trace tools — including intermittent, timing and memory-related faults.
- • Write unit and integration tests, support validation on test benches and Hardware-in-the-Loop setups, and reproduce and close out field issues.
- • Author and maintain engineering documentation under a controlled process: software requirement specifications, design documents, interface specifications, test cases and traceability.
- • Review code and designs from other engineers, and set and enforce coding and quality standards.
- • Mentor junior and mid-level engineers on embedded practice and debugging discipline.
- • Work closely with hardware engineers on schematic reviews and hardware/software integration, and support customer technical discussions and effort estimation.
What We’re Looking For
- Required Skills and Experience
- • B.E./B.Tech or M.E./M.Tech in Electronics, Electrical, Instrumentation, Computer Science, Embedded Systems or a related discipline.
- • 8+ years of hands-on embedded firmware development in C, with demonstrated ownership of modules or subsystems taken through to production.
- • Strong practical experience on 32-bit microcontrollers — ARM Cortex-M or Cortex-R class (TI, ST, NXP, Renesas, Microchip or equivalent). This is essential; the role is not suited to candidates whose experience is primarily 8/16-bit or application-layer only.
- • Solid embedded fundamentals: interrupts, timers, DMA, memory maps, linker scripts, startup code, stack and heap behaviour, bootloaders, and RTOS concepts and real-time scheduling.
- • Register-level and protocol-level command of at least SPI, I2C, UART and CAN / CAN-FD.
- • Ability to read schematics and device datasheets independently and translate them into working driver code.
- • Proven debugging ability at board level using oscilloscope, logic analyser and JTAG/SWD debugger.
- • Experience working to a documented development process with requirements, design records, reviews and traceability.
- • Version control (Git), code review and structured development practices.
- • Clear technical writing and spoken English — our documentation and design reviews are customer-facing.
Apply for this job
Explore the opportunity to grow your career with us.


Find your role