Trenton Systems logo

Embedded Software Engineer

Trenton Systems

On-siteDuluth, GAmidPosted 5h ago

Job 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