Software Engineer
Role details
Job location
Tech stack
Job description
This full-time, onsite role in Eagan, Minnesota focuses on designing and developing embedded firmware and Linux-based software for microcontroller-based systems. You will work across the full embedded stack, from bare-metal and RTOS-based firmware to embedded Linux, contributing to high-technology products in an engineering-focused environment., * Design, develop, and maintain embedded firmware and software solutions for microcontroller-based boards and applications.
- Develop and integrate software within embedded Linux environments, including system-level components and services.
- Implement and optimize C and C++ code for embedded platforms, including bare-metal and RTOS-based systems.
- Develop, test, and debug device drivers and low-level interfaces for microcontrollers and peripherals.
- Implement and support serial communication protocols such as UART, SPI, and I2C.
- Work with serial and fieldbus protocols, including Modbus RTU/TCP or CANBus where applicable.
- Support and enhance embedded firmware platforms and Board Support Package (BSP) development.
- Contribute to system-level features such as bootloaders, embedded file systems, system controls, and embedded Linux components.
- Collaborate with hardware teams on board layout and design considerations related to firmware and software.
- Participate in Agile development processes, including sprint planning, code reviews, and continuous integration activities.
- Create and execute tests for embedded firmware and Linux components, using scripting (such as Python or Bash) where helpful.
- Troubleshoot and resolve issues at the hardware, firmware, and system levels to ensure reliable and robust product performance.
- Document designs, interfaces, and implementation details to support maintainability and future development., This is a full-time, onsite role based in Eagan, Minnesota, operating during standard business hours in an engineering-focused environment. You will work closely with other engineers in a collaborative setting, using modern embedded development toolchains, microcontroller evaluation boards, and Linux-based systems. The work involves hands-on interaction with hardware, firmware, and embedded Linux platforms in a professional engineering lab and office setting, with a focus on high-technology product development., CI/CD Junit Ansible VS Code Planning Aviation Equities Debugging DevSecOps Leadership Unix Shell Scalability Market Data RESTful API Claude Code Unit Testing Communication Prioritization Version Control Spring Security Ancient History Computer Science Test Engineering Spring Framework Technical Issues Product Delivery Agile Methodology Programming Tools Eclipse (Software) Software Solutions Workflow Management Systems Engineering Air Traffic Control Software Development Cloud-Native Computing Operational Efficiency Artificial Intelligence Containerized Application Agile Software Development Java (Programming Language) Git (Version Control System) Cascading Style Sheets (CSS) Python (Programming Language) Federal Aviation Administration Front End (Software Engineering) Extensible Markup Language (XML) HyperText Markup Language (HTML) JavaScript (Programming Language) +0 Software Engineer Actalent
Burnsville, MN*On-Site
Avionics Visionary Leadership Innovation Propulsion Communication System Testing Time Management Problem Solving Computer Science Software Engineering Artificial Intelligence Engineering Design Process +0
Google IT Automation with Python Sr. Software Engineer Actalent
Eden Prairie, MN*On-Site
Writing Planning Firmware Debugging Visionary Innovation Embedded C Presentations Microsoft Word Microsoft Excel DO-254 Standard ARINC Standards Embedded Systems Test Engineering Microcontrollers Embedded Software Aerospace Protocols Software Engineering Software Development Artificial Intelligence Training And Development Requirements Traceability Engineering Design Process Real-Time Operating Systems Military Standards And Specifications DO-178B/C (Software Considerations in Airborne Systems and Equipment Certification) +0
Requirements
Modbus Fieldbus Firmware Debugging Scripting Visionary Innovation Bare Metal Code Review File Systems Boot Loaders Communication Collaboration Device Drivers Test Automation Sprint Planning Microcontrollers Agile Methodology Embedded Software Embedded Firmware Software Solutions Software Engineering Computer Engineering Remote Terminal Unit Serial Communications Electrical Engineering Continuous Integration New Product Development Artificial Intelligence C (Programming Language) Bash (Scripting Language) Linux On Embedded Systems Engineering Design Process C++ (Programming Language) Serial Peripheral Interface Real-Time Operating Systems Python (Programming Language) Bootstrap (Front-End Framework), * Bachelor's degree in Computer Engineering, Electrical Engineering, Software Engineering, or a related technical discipline.
- 4-5+ years of hands-on experience programming in C or C++ for embedded systems.
- Strong experience in embedded firmware development for microcontroller-based boards and applications.
- Proficiency with embedded RTOS and bare-metal development.
- Experience with embedded Linux development and working within embedded Linux environments.
- Solid understanding and practical experience with serial communication protocols such as UART, SPI, and I2C.
- Experience with embedded software development, including low-level programming, debugging, and optimization.
- Ability to develop and support device drivers and system-level embedded software.
- Strong programming skills in C; ability to write efficient, reliable, and maintainable embedded code.
- Experience working in an engineering-focused product development environment.
Additional Skills & Qualifications
- Experience with ARM-based microcontrollers, such as STMicroelectronics, NXP, or Silicon Labs EFM devices.
- Experience with Modbus RTU/TCP or CANBus communication protocols.
- Experience supporting embedded firmware platforms and Board Support Package (BSP) development.
- Hands-on experience with one or more of the following: boot or bootstrap loaders, embedded file systems, system controls, and embedded Linux internals.
- Familiarity with Agile development methodologies and associated tools and practices.
- Experience with board layout and design, and the ability to collaborate effectively with hardware engineers.
- Proficiency in C++ for embedded firmware development, in addition to strong C skills.
- Experience with RTOS-based systems and embedded bare-metal implementations.
- Scripting experience in Python and/or Bash for test automation and validation is a plus.
- Experience in high-technology product development environments.