Job Description:
We are looking for a detail-oriented and experienced Embedded C Developer to design, develop, and maintain embedded software for microcontroller-based systems. The ideal candidate will work closely with hardware and software teams to create efficient, reliable, and high-performance firmware and embedded solutions for real-time systems.
Key responsibilities:
-
Design and develop embedded software using C for microcontrollers and embedded processors.
-
Write device drivers, low-level hardware interfacing code, and middleware for embedded systems.
-
Integrate software with hardware components and perform system-level debugging and validation.
-
Develop unit tests and assist in automated testing strategies for embedded platforms.
-
Collaborate with hardware engineers and product teams to gather software requirements.
-
Translate functional and technical requirements into well-documented design specifications and code.
-
Optimize code for memory, power efficiency, and real-time performance.
-
Troubleshoot performance bottlenecks, stability issues, and hardware-software integration problems.
-
Work with industry-standard tools such as oscilloscopes, logic analyzers, and debuggers.
-
Adhere to industry coding standards and project-specific quality and safety guidelines (e.g., MISRA C, ISO 26262, IEC 61508 depending on the domain).
-
Provide ongoing support and enhancements for existing products.
-
Participate in code reviews, peer testing, and documentation efforts.
Professional Skills:
-
Strong proficiency in Embedded C and real-time programming concepts.
-
Hands-on experience with microcontrollers (ARM, PIC, AVR, STM32, etc.).
-
Experience with hardware peripherals (UART, SPI, I2C, GPIO, ADC, PWM).
-
Familiarity with RTOS (e.g., FreeRTOS) or bare-metal systems.
-
Proficient in debugging embedded systems with tools like JTAG, oscilloscopes, and logic analyzers.
-
Solid understanding of software lifecycle, version control (e.g., Git), and embedded system constraints.