1 month ago

Embedded software engineer
Client of salarite

Location:

Jaipur

Contact Hr:

Database management
System architecture & design
Embedded software development
Hardware integration & debugging

Vacancies

2

Job Type

Full Time

Salary

Not Disclosed

Job Description

An Embedded Software Engineer is responsible for designing, developing, and optimizing software that runs on embedded systems, such as microcontrollers, IoT devices, automotive systems, medical devices, and industrial automation. They work with low-level programming, hardware interfaces, and real-time operating systems (RTOS) to ensure efficient and reliable system performance.


Key Responsibilities

1. Embedded Software Development

  • Develop firmware and software for embedded systems using C, C++, or Python.
  • Write and optimize low-level code for microcontrollers (ARM, PIC, AVR, STM32, ESP32, etc.).
  • Implement device drivers, peripheral interfaces, and communication protocols.

2. System Architecture & Design

  • Design real-time and embedded software architectures.
  • Integrate hardware components with software for seamless operation.
  • Work with RTOS (FreeRTOS, Zephyr, QNX) and bare-metal programming.

3. Hardware Integration & Debugging

  • Work with circuit schematics, PCB layouts, and datasheets.
  • Interface with sensors, actuators, displays, and communication modules.
  • Use debugging tools like JTAG, UART, SWD, oscilloscopes, and logic analyzers.

4. Communication Protocols

  • Implement I2C, SPI, UART, CAN, USB, Modbus, Ethernet, BLE, Zigbee, and MQTT.
  • Develop wireless communication stacks for IoT devices.

5. Performance Optimization & Power Management

  • Optimize embedded systems for low power consumption in battery-powered devices.
  • Implement interrupt handling, DMA, and power-saving modes.
  • Ensure high efficiency and real-time processing in constrained environments.

6. Testing & Validation

  • Write and run unit tests, integration tests, and hardware-in-the-loop (HIL) testing.
  • Debug and resolve memory leaks, race conditions, and performance bottlenecks.
  • Ensure compliance with industry standards (ISO 26262, IEC 61508, MISRA C, DO-178C, etc.).

7. Embedded Linux Development (Optional)

  • Develop applications for Embedded Linux systems (Yocto, Buildroot, Raspberry Pi, NVIDIA Jetson).
  • Work with device trees, kernel modules, and bootloaders.
  • Implement containerized applications using Docker for edge computing.

8. Agile & Cross-Team Collaboration

  • Work in an Agile/Scrum environment with firmware, hardware, and QA teams.
  • Collaborate with electrical engineers, PCB designers, and product managers.
  • Document system architecture, design decisions, and troubleshooting guides.

Key Skills Required

Technical Skills:

Programming Languages: C, C++, Python, Rust (for low-level development).
Microcontrollers & Processors: ARM Cortex, STM32, PIC, AVR, ESP32, Raspberry Pi.
Real-Time Operating Systems (RTOS): FreeRTOS, Zephyr, QNX, VxWorks.
Communication Protocols: UART, SPI, I2C, CAN, USB, Ethernet, BLE, MQTT.
Embedded Linux: Yocto, Buildroot, Kernel Modules, Device Drivers.
Debugging Tools: JTAG, SWD, Logic Analyzers, Oscilloscopes.
Power Management: Low-power design techniques for battery-operated devices.
Security in Embedded Systems: Secure Boot, Encryption, Secure Firmware Updates.
Version Control: Git, GitHub, GitLab, Bitbucket.

Soft Skills:

✔️ Problem-Solving: Strong analytical and debugging skills.
✔️ Attention to Detail: Precision in firmware development and testing.
✔️ Communication: Ability to explain technical concepts clearly.
✔️ Collaboration: Work effectively in cross-functional teams.
✔️ Adaptability: Keep up with evolving embedded system technologies.


 

Skills

Database management
System architecture & design
Embedded software development
Hardware integration & debugging