Overview
Embedded System Engineer
We are seeking a highly motivated and skilled Embedded Systems Engineer to join our dynamic engineering team.
In this role, you will be responsible for the end-to-end development of firmware and low-level software for our next-generation ARM-based embedded products running on the Linux operating system.
You will play a critical part in designing, implementing, testing, and optimizing the software that brings our hardware to life.
Responsibilities
Design, develop, debug, and maintain embedded firmware and software in C/C++ for ARM-based processors.
Port, configure, and build custom Linux distributions (using Yocto Project or Buildroot) for new hardware platforms.
Develop and optimize Linux kernel drivers, device trees (DTS), and board support packages (BSP) for peripherals such as I2C, SPI, UART, USB, Ethernet, and MMC/SD.
Implement and debug system-level software, including bootloaders (U-Boot), kernel initialization, and power management.
Collaborate with hardware engineers during the board bring-up and validation phase for new PCBAs.
Write clean, well-documented, and maintainable code following best practices.
Perform system-level debugging using oscilloscopes, logic analyzers, JTAG/SWD debuggers, and kernel debugging tools.
Create and execute unit tests, integration tests, and validation plans to ensure software quality and reliability.
Work closely with applications software teams to define hardware-software interfaces and system architecture.
Participate in code and design reviews to ensure high-quality outcomes.
Required Qualifications
Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, or a related field.
3+ years of professional experience in embedded firmware/software development.
Strong proficiency in C programming
for constrained, resource-embedded environments.
Hands-on experience with ARM Cortex-A/M series architectures
and their development ecosystems.
Proven experience with embedded Linux:
kernel configuration, driver development, and device tree.
Solid understanding of hardware fundamentals and the ability to read electronic schematics and datasheets.
Experience with low-level communication protocols (e.g., I2C, SPI, UART).
Familiarity with version control systems, preferably Git.
Excellent problem-solving and debugging skills.
Preferred Qualifications
Experience with system build tools like the
Yocto Project
or
Buildroot .
Knowledge of bootloader customization, specifically
U-Boot .
Proficiency in
Python or Shell scripting
for automation and testing.
Experience with real-time operating systems (RTOS) like FreeRTOS or Zephyr, in addition to Linux.
Understanding of security principles in embedded systems (secure boot, trusted execution environment).
Experience with wireless technologies (Wi-Fi, Bluetooth, LTE).
Knowledge of agile development methodologies.
#J-18808-Ljbffr