Embedded Software Engineer - CAN/SPI/Linux

apartmentMaimsd Technology placeBangalore calendar_month 

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.
apartmentMaimsd TechnologyplaceBangalore
Job Description Embedded Software Engineer - CAN / SPI / Linux A highly experienced Senior Embedded Software Engineer is sought to lead the development of Linux-based ARM industrial gateways. You will be responsible for designing, implementing...
electric_boltImmediate start

Embedded Software Engineer

apartmentErbity Private LimitedplaceBangalore
We are seeking a skilled Embedded Software Engineer with strong expertise in C/C++ development, ASPICE-compliant software design, and software verification using VectorCast. The ideal candidate will be responsible for deriving system and software...
apartmentMaimsd TechnologyplaceBangalore
Job Description Embedded Software Engineer - RTOS A highly skilled and experienced Senior Embedded Software Engineer is sought to join our dynamic team. You will be responsible for designing, developing, and implementing robust and efficient...