Job Title: Embedded Software Engineer (MCU & RTOS)
Location: Chennai
Job Type: Full-Time
Experience Level: Mid-Level
Job Summary:
We are seeking a highly skilled and motivated Embedded Systems Software Developer to join
our engineering team.
The ideal candidate will have strong experience in microcontroller
(MCU)-based programming and real-time operating systems (RTOS).
You will be responsible
for designing, developing, testing, and maintaining embedded firmware and software for
various applications, ensuring high performance and reliability.
Key Responsibilities:
• Design and implement embedded software for microcontroller-based systems.
• Develop real-time firmware using RTOS (e.g., FreeRTOS, ThreadX).
• Collaborate with hardware engineers for board bring-up and hardware/software
integration.
• Write low-level device drivers for peripherals such as SPI, I2C, UART, ADC, PWM,
etc.
• Develop and maintain software documentation including architecture, design, and user
manuals.
• Debug and troubleshoot software issues using tools like oscilloscopes, logic analyzers,
and JTAG/SWD.
• Participate in code reviews and ensure software development best practices.
• Contribute to system-level design, including power management and optimization
techniques.
• Support testing, validation, and deployment processes for embedded solutions.
Required Skills and Qualifications:
• Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, or
related field.
• 4+ years of experience in embedded firmware/software development.
• Proficiency in C/C++ for embedded systems.
• Hands-on experience with microcontrollers (ARM Cortex-M, STM32.).
• Strong understanding of RTOS concepts including task scheduling, inter-process
communication, and resource management.
• Familiarity with communication protocols: I2C, SPI, UART, CAN, USB, etc.
• Experience with embedded development tools: IDEs (e.g., Keil, IAR,
STM32CubeIDE), debuggers, and emulators.
• Familiarity with version control systems (Git, SVN).
Preferred Qualifications:
• Experience with safety-critical or industrial embedded systems.
• Knowledge of bare-metal programming and interrupt handling.
• Exposure to wireless communication stacks (IoT, BLE, Zigbee, LoRa, etc.).
• Familiarity with scripting languages (Python, Bash) for automation and testing.
• Experience with CI/CD tools for embedded systems.