MA

Embedded Software Engineer - CAN/SPI/Linux

Maimsd Technology
Bangalore9-11 LPA Posted 1 Jul 2025
FULL TIME
Ipc
Embedded Software Development
Debugging Tools
C++
Multithreading

Job Description

Job Responsibilities:

Embedded Software Development:

  • Design and develop robust embedded C++ software for ARM-based industrial gateways.
  • Develop and maintain Linux-based systems using Yocto Project.
  • Implement multithreaded applications and effectively utilize design patterns for maintainability and scalability.
  • Develop CLI/SSH-based diagnostic commands for system health monitoring and troubleshooting.

Industrial Protocol Integration:

  • Implement and integrate various industrial communication protocols such as CAN, Modbus RTU, Modbus TCP/IP, and SNMP.

Peripheral Driver Development:

  • Develop and implement drivers for embedded peripherals including I2C, SPI, and UART.

System Architecture and Integration:

  • Design and implement comprehensive embedded systems architecture, ensuring seamless hardware-software interaction and low-level system integration.

CI/CD and Agile Development:

  • Implement and maintain CI/CD pipelines utilizing tools like Jenkins, GitLab CI, and GitHub Actions.
  • Actively participate in agile development processes, including sprint planning, code reviews, and testing.

Linux Application Development:

  • Develop applications for ported SBCs (e.g., Raspberry Pi, BeagleBone, NXP i.MX).
  • Integrate web servers and RESTful APIs for remote management solutions in embedded systems.

Debugging and Testing:

  • Utilize various debugging tools (GDB, JTAG, serial debugging) and command-line services for thorough testing and troubleshooting.
  • Develop and implement comprehensive testing strategies for embedded systems.

HMI Development (Desired):

  • Design and implement HMIs (graphical user interfaces, touchscreens) using frameworks like TouchGFX, Qt, or LVGL for Embedded.

Qualifications:

  • Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, or a related field.
  • 9-11 years of experience in embedded software development.
  • Strong proficiency in Embedded C++ programming.
  • Extensive experience with ARM-based microcontrollers and Linux-based embedded systems (Yocto preferred).
  • Proven experience with multithreading, IPC (Inter-Process Communication), and design patterns.
  • Hands-on implementation experience with industrial protocols (CAN, Modbus RTU, Modbus TCP/IP, SNMP).
  • Strong understanding of embedded systems architecture and low-level system integration.
  • Experience with CI/CD pipelines and agile development methodologies.
  • Proficient in using debugging tools (GDB, JTAG, serial debugging).
  • Experience with baremetal programming.
  • Experience with web server and RESTful API integration in embedded systems.
Join WhatsApp Channel