Company banner

Embedded Software Engineer - Platform & Firmware

Job Description

Posted on: 

Embedded Software Engineer (Platform & Firmware)

Overview:

We are seeking a

n

Embedded

Software Engineer (Platform & Firmware)

to design, develop, and test software that interfaces directly with hardware, such as microcontrollers and processors in embedded systems. This role focuses on foundational software development, including drivers, bootloaders, and firmware, using C, C++, and assembly to manage system resources and optimize device performance.

You will need a deep understanding of computer architecture, hardware-software integration, and low-level debugging. As a core member of our software engineering team, you will collaborate closely with embedded software and hardware engineers to deliver high-performance, reliable systems.

Key Responsibilities:

Develop Low-Level Software: Write and maintain firmware, bootloaders, and device drivers for embedded hardware platforms.

• 

Optimize Performance: Ensure code efficiency and performance on resource-constrained systems (limited memory, CPU, power).

• 

Hardware-Software Integration: Collaborate with hardware teams to validate and troubleshoot system-level issues.

• 

Debug and Test: Use tools like oscilloscopes, logic analyzers, and in-circuit debuggers to identify and resolve issues at the hardware/software boundary.

• 

System Resource Management: Implement low-level system features such as power management, memory allocation, and communication protocols (SPI, I2C, UART, etc.).

Required Skills and Qualifications:

Proficiency in C, C++, and assembly language for embedded development.

• 

Strong understanding of microcontrollers, processors, and memory management.

• 

Experience with device trees, real-time operating systems (RTOS), and device driver development.

• 

Skilled in using low-level debugging tools: oscilloscopes, logic analyzers, JTAG, ICE, etc.

• 

Excellent analytical and problem-solving skills to address complex hardware/software integration issues.

• 

Bachelor’s or

Master’s degree in Computer Engineering

, Electrical Engineering, or Computer Science.

Preferred skills:

The ideal candidate will also have:

Experience with

EtherCAT

technology

• 

CAN ecosystem Software

:  

DeviceNet

or

CANopen

stacks

• 

Embedded Linux Platform Software

:  Device

tree,

init

/system services,

userspace

deamons

,

kernal

Diagnostic tooling

:  Python

utilities for log parsing and packet/trace inspection

• 

PLC familiarity: (software and hardware)

Apply now