Description :
Job Title : Embedded Application Development / Senior Embedded Developer
Experience : 6 8 Years
Location : [Bangalore]
About the Role :
We are looking for an experienced Embedded Software Engineer with strong hands-on expertise in middleware development, device drivers, board bring-up, and communication protocols. The ideal candidate should have a solid foundation in C programming, data structures, and RTOS / Linux kernel internals, along with experience in debugging and hardware interaction.
Key Responsibilities :
- Design, develop, and maintain embedded software for microcontrollers and processors.
- Work on board bring-up, bootloader, and device driver development for peripherals (UART, SPI, I2C, CAN, etc.).
- Implement and integrate communication protocols and middleware components.
- Derive embedded software design concepts from requirements and system specifications.
- Participate in architecture and design discussions, code reviews, and performance optimizations.
- Develop and maintain Linux device drivers (character, block, platform) and kernel modules.
- Configure Device Tree and customize Linux boot process.
- Debug system-level issues using tools such as gdb, strace, dmesg, perf, etc.
- Work on RTOS-based applications, handling tasks, scheduling, and inter-task communication.
- Collaborate with hardware, QA, and system teams to ensure seamless software-hardware integration.
- Follow clean coding practices, maintain design documentation, and use configuration management tools.
Required Skills & Experience :
Embedded Software Development :
Strong experience with C programming and data structures.Experience in middleware, device driver development, and board bring-up.Exposure to communication protocols (UART, SPI, I2C, CAN, Ethernet, etc.).Proficient with microcontrollers / microprocessors (ARM Cortex-M / A series, etc.).Knowledge of hardware debugging tools oscilloscope, logic analyzer, function generator, etc.Experience with configuration management and defect tracking tools (Git, Jira, etc.).RTOS :
Hands-on experience with RTOS concepts task scheduling, synchronization, interrupt management.Ability to translate requirements into modular RTOS-based designs.Linux Kernel & Driver Development :
Strong understanding of Linux kernel architecture and system calls.Experience with Linux device drivers (character, block, platform).Knowledge of Device Tree configuration, kernel module development, and Makefiles.Understanding of memory management, interrupts, and I / O operations.Proficiency with Linux debugging and profiling tools gdb, strace, dmesg, perf.Soft Skills :
Strong problem-solving and debugging skills.Attention to detail and adherence to clean coding standards.Good communication and collaboration abilities.Ability to work independently and mentor junior engineers if required.Education : B.E / B.Tech / M.E / M.Tech in Electronics, Electrical, Computer Engineering, or related fields.
Nice to Have :
Exposure to Yocto, Buildroot, or embedded Linux build systems.Familiarity with Agile development and continuous integration tools.(ref : hirist.tech)