Embedded Software Engineer
Trenton Systems Duluth, Georgia, United States
Computer Hardware Manufacturing · 51-200 employees
About the role
The Embedded Software Engineer will design, develop, and maintain embedded software for microcontroller and processor-based systems. They will collaborate with cross-functional teams to integrate hardware and software while ensuring robust performance through testing and debugging.
What they look for
Requirements
Candidates must hold a Bachelor's degree in Computer Engineering or Computer Science and possess at least 3 years of experience in software and firmware engineering. Strong proficiency in C/C++ and experience with embedded Linux systems are essential requirements for this role.
Full description
Description
Position Description
The Embedded Software Engineer will design, develop, test, and maintain embedded software for next-generation products. The ideal candidate will have strong C/C++ programming skills, experience developing embedded Linux software, and a solid understanding of hardware/software integration. This role will work closely with electrical, mechanical, systems, and test engineers to translate product requirements into reliable, production-ready embedded software.
Essential Duties & Responsibilities
- Design, develop, debug, and maintain embedded software for microcontroller- and processor-based systems.
- Develop software primarily in C/C++, including low-level drivers, hardware interfaces, application code, and system services.
- Develop, configure, customize, and maintain embedded Linux systems and associated build tools.
- Integrate and configure real-time operating systems (RTOS), middleware, communication stacks, and third-party software components.
- Develop and maintain firmware for interfaces such as SPI, I²C, UART, USB, Ethernet, and GPIO.
- Collaborate with hardware engineers to bring up new circuit boards and troubleshoot hardware/software integration issues.
- Analyze system requirements and translate them into robust software architectures and implementation plans.
- Perform unit testing, integration testing, debugging, and performance optimization.
- Use embedded debugging tools, oscilloscopes, logic analyzers, and other laboratory equipment to diagnose system-level issues.
- Use Git for source-code management, branching, merging, and code collaboration.
- Use JIRA to track software development tasks, defects, requirements, and project progress.
- Use development tools like Visual Studio Code (VS Code) and others to implement and debug embedded software.
- Participate in code reviews, design reviews, and software development process improvements.
- Develop and maintain technical documentation, including software specifications, design documentation, and test procedures.
- Support product verification, validation, manufacturing, and field-deployment activities.
- Identify and resolve software defects and contribute to continuous improvement of product reliability and performance.
PM21
Requirements
Required
- BS in Computer Engineering or Computer Science, or equivalent
- 3+ years in software and firmware engineering
- Exceptional Communication skills · Strong proficiency in C and C++ programming.
- Experience developing software for microcontrollers or embedded processors.
- Experience developing and maintaining embedded Linux systems.
- Experience with Git for source-code management and collaborative software development.
- Proficiency with Visual Studio Code (VS Code) or a comparable integrated development environment.
- Solid understanding of embedded systems concepts, including interrupts, timers, memory management, concurrency, and hardware interfaces.
- Experience with embedded debugging tools and software development workflows.
- Familiarity with software development processes, code reviews, testing methodologies, and configuration management.
- Strong analytical and problem-solving skills.
- Ability to read and understand schematics, datasheets, and hardware specifications.
Desired
- Familiarity with UEFI BIOS and Intel x86 architectures
- Familiarity with ARM & embedded Linux development
- Familiarity with PIC microcontroller development and other bare-metal and low-level firmware
- Experience with the Yocto Project, including recipes, custom layers, BitBake, machine configurations, and image customization.
- Experience with RTOS, such as FreeRTOS.
- Experience with ARM processors.
- Familiarity with Intel architecture.
- Strong experience with embedded Linux system development and Linux kernel configuration.
- Experience developing device drivers, bootloaders, BSPs, or board-support software.
- Experience with secure boot, firmware updates, cybersecurity, or embedded device security
- Knowledge of FIPS-140-2, TPM, Bitlocker, STIG, and/or other security technologies
- Scripting experience – bash, Zsh, Powershell, Python
Similar roles
-
Embedded Software Engineer – Försvarsindustrin
AFRY Stockholm, Sweden
-
Lead Embedded Software & Automation Engineer
CLER Stockholm, Sweden
-
Embedded Software Engineer
Sine Engineering Bozeman, Montana, United States
-
Embedded Software Eng.
Schaeffler Ghimbav, Romania
-
Automotive Embedded Software Engineer
Hitachi Ho Chi Minh City, Vietnam
-
Embedded Software (Firmware) Internship
HPE Singapore, Singapore