Role- Embedded Software Engineer / Firmware Engineer C++ with Python/Perl Automation
Location- Bangalore/Hyderabad
1 year C2H
Job Summary
We are seeking a hands-on Embedded Software Engineer with deep expertise in C++, Python, Perl, and embedded systems fundamentals. In this role, you will design, develop, test, and optimize firmware/software for resource-constrained devices and platforms (MCUs/MPUs), build automation/test tooling, and collaborate cross-functionally to deliver robust, high-quality embedded solutions. The ideal candidate is comfortable working close to hardware (drivers, BSP, middleware), fluent in modern C++ practices, and pragmatic about using scripting (Python/Perl) to accelerate development, CI/CD, and validation.
Key Responsibilities
- Design & Development
- Architect, implement, and maintain embedded software/firmware in C++ for microcontrollers or Linux-based embedded platforms.
- Develop device drivers, communication stacks (SPI/I2C/UART/CAN/Ethernet), and middleware as needed.
- Optimize for performance, memory footprint, and power consumption.
- System Integration
- Work closely with hardware, validation, and product teams to bring up boards, debug issues with oscilloscopes/logic analyzers, and support system-level integration.
- Participate in code/design reviews, perform root-cause analysis, and drive defects to closure.
- Delivery & Process
- Contribute to continuous integration pipelines (build, test, packaging).
- Create and maintain technical documentationdesign specs, API docs, test plans, and release notes.
- Champion best practices for code quality, safety, reliability, and security.
Required Qualifications
- Education: Bachelor's or Master's in Computer Science, Electronics, Electrical, or related field (or equivalent practical experience).
- Programming:
- Strong proficiency in C++ (11/14/17) for embedded contexts (const correctness, RAII, templates, STL in constrained environments).
- Strong scripting with Python (pytest/unittest, argparse, asyncio/threads, serial, numpy/pandas for analysis).
- Working experience with Perl for legacy automation, parsing, tooling, infrastructure scripts.
- Embedded Expertise:
- Experience with microcontrollers (e.g., ARM Cortex-M/R/A) or Embedded Linux (Yocto/Buildroot, device tree, ystem).
- Familiarity with RTOS (e.g., FreeRTOS, ThreadX, Zephyr) and interrupt-driven design.
- Hands-on with communication protocols: I2C, SPI, UART, CAN, USB, TCP/IP.
- Tools & Process:
- Proficient with Git, Cmake/Make, GCC/Clang, cross-compilers, JTAG/SWD debuggers (e.g., Segger, OpenOCD).
- Solid understanding of software testing, CI/CD (Jenkins/GitLab CI/GitHub Actions), and code quality tools (static/dynamic analysis, sanitizers, coverage).
- Core Skills: Strong debugging, problem-solving, and system thinking; excellent collaboration and communication.