Position: Embedded Firmware Engineer – Bare-Metal C (BB38FT RM 4093)
Job Summary
We are seeking a highly skilled Embedded Firmware Engineer with strong expertise in baremetal C development. The candidate will be responsible for developing low-level firmware, directly interacting with hardware components, and ensuring efficient, reliable, and real-time system behavior without reliance on an operating system.
Key Responsibilities
- Develop and maintain bare-metal firmware using C for microcontroller-based systems
- Perform register-level programming for peripherals such as GPIO, UART, SPI, I2C, Timers, ADC, and PWM
- Design and implement interrupt-driven systems and real-time functionality
- Develop and customize startup code, linker scripts, and memory layouts
- Analyze hardware schematics, datasheets, and reference manuals to implement features
- Debug and troubleshoot firmware issues using hardware debugging tools
- Optimize code for performance, memory footprint, and power efficiency
- Collaborate with hardware and system teams for board bring-up and integration
Required Skills & Competencies
- Programming Skills
o Strong proficiency in Embedded C
o Expertise in pointers, memory management, and bitwise operations
o Experience with volatile keyword and hardware register access - Hardware & Architecture
o Solid understanding of microcontroller architectures such as ARM Cortex-M,RISC-V
o Knowledge of boot sequence, exception handling, and interrupt architecture - Embedded Systems & Peripherals
o Hands-on experience with low-level peripheral programming
o Strong understanding of interrupts, ISR handling, and timing constraints
Familiarity with state machines and real-time system design - Tools & Debugging
o Experience with toolchains such as GNU Compiler Collection
o Proficiency in debugging using JTAG / SWD
o Experience with oscilloscopes / logic analyzers is a plus - Memory & Build System
o Understanding of memory layout (Flash, RAM, stack, heap)
o Experience in linker scripts and start-up code development
o Familiarity with Makefiles / CMake and cross-compilation
Good to Have
- Basic knowledge of assembly language
- Exposure to bootloaders and firmware update mechanisms
- Understanding of RTOS concepts (for comparison with bare-metal systems)
Soft Skills
- Strong problem-solving and debugging skills
- Ability to work independently and take ownership
- Effective communication and collaboration with cross-functional teams
Role Differentiation
- Mid-Level (3–5 Years)
o Hands-on development of drivers and peripherals
o Works with defined architecture and guidance - Senior / Lead (5–8 Years)
o Owns system design and architecture decisions
o Leads bring-up, debugging, and optimization
o Mentors junior engineers
*******************************************************************************************************************************************
Apply for this position
Mention correct information below. Mention skills aligned with the job description you are applying for. This would help us process your application seamlessly.
