Embedded Software Engineer
Duluth, MN - USA
Job Summary
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
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
Required Experience:
IC
About Company
Advanced configurable and custom high-performance computing solutions for on-premise, edge, and cloud deployments.