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.
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.
Job Details
Job Type: FULL TIME
Visa Sponsorship: No
Education: bachelor degree
Work Arrangement: On-site
Experience Level: 2 - 5 years
Hours: 40 hrs/week
Language: English
Key Skills
CC++Embedded LinuxFirmware DevelopmentMicrocontrollersRTOSGitJIRAVisual Studio CodeHardware IntegrationDebuggingSPII2CUARTUSBEthernet
Insider connections @Trenton Systems
Members only
Find people at Trenton Systems who may share hiring insights or referrals for this role.
Meet the people behind the opportunity
Create a free account to search for hiring managers and potential referral contacts.
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
Trenton Systems engineers rugged, USA-made computing solutions for defense, government, and industrial markets, ensuring performance, reliability, and cybersecurity in demanding environments.
Rack mount serversHigh-performance computing solutionsUSA-made motherboardsCOTSMOTSand/or custom optionsThird-party motherboard integrationand In-house engineering and support
Embedded Software Engineer at Trenton Systems — Duluth, Georgia, United States | Resumly