We are seeking a Senior Embedded Software Engineer to join a growing engineering team developing and supporting sophisticated embedded systems and connected products.
This is a hands-on individual contributor role with responsibility across the embedded software stack, from low-level firmware and real-time systems through embedded Linux and device connectivity. The engineer will work closely with electrical, mechanical, and software engineering teams to develop reliable products from initial development through manufacturing and field deployment.
This role is well suited for an experienced embedded engineer who enjoys solving complex technical problems, working directly with hardware, and taking ownership of projects.
Key Responsibilities
- Design, develop, and maintain embedded firmware for microcontroller-based systems and real-time applications.
- Develop and support embedded Linux systems, including system services, networking, and device integration.
- Develop firmware features related to system startup, firmware updates, secure operation, memory, storage, and system monitoring.
- Integrate communication interfaces and protocols used for device-to-device and remote communication.
- Troubleshoot complex hardware and software issues using oscilloscopes, logic analyzers, debuggers, and other laboratory equipment.
- Participate in hardware bring-up, board-level troubleshooting, and design reviews.
- Work closely with electrical, mechanical, software, and systems engineers on architecture, interfaces, and technical decisions.
- Contribute to development standards around source control, code reviews, automated builds, testing, and firmware release processes.
- Support manufacturing and field teams with troubleshooting and resolution of issues affecting deployed products.
- Create and maintain technical documentation, interface specifications, and test procedures.
- Help improve embedded development practices and introduce modern development and automation tools.
Qualifications
- 7+ years of professional experience in embedded systems, firmware, or embedded software development.
- Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical field, or equivalent practical experience.
- Experience developing embedded products that have been deployed in production or field environments.
- Strong proficiency in C and/or C++.
- Experience with ARM-based microcontrollers and real-time operating systems.
- Experience developing and supporting embedded Linux systems.
- Strong understanding of embedded system fundamentals, including interrupts, timers, DMA, memory management, and resource-constrained systems.
- Experience with common embedded interfaces and communication protocols such as UART, SPI, I2C, CAN, and Ethernet.
- Ability to read and understand electrical schematics and component datasheets.
- Hands-on experience using debugging and laboratory equipment.
- Strong software engineering practices, including Git, code reviews, structured testing, and automated builds.
Preferred Experience
- Experience with microcontrollers such as STM32 or similar ARM Cortex-M platforms.
- Experience with FreeRTOS or another comparable RTOS.
- Experience with embedded Linux build systems such as Yocto, Buildroot, or OpenWrt.
- Experience with firmware update systems, secure boot, bootloaders, and embedded storage.
- Experience with industrial communication protocols such as Modbus, CANopen, or RS-485.
- Experience with cellular/remote connectivity and IoT communication protocols.
- Experience with hardware design, schematic review, component selection, or board bring-up.
- Experience with automated embedded testing, CI/CD, or hardware-in-the-loop testing.
- Experience developing products where reliability, safety, or long-term field operation are critical.
- Exposure to cloud-connected devices and remote device management.
This is a fully onsite position in Ogden, Utah, with regular access to laboratory equipment, hardware, and testing environments.
The role involves a combination of computer-based development and hands-on work with embedded hardware and test equipment.
PrincePerelson & Associates is an Equal Opportunity Employer and complies with all provisions of the EEO and ADA laws. We do not discriminate in our employment practices on the basis of race, color, religion, national origin, sex (including sexual orientation and sexual identity), age, genetic information, parental status, military status, disability, or any non-merit-based factors or other federal, state, or locally protected class. All applicants applying for U.S. job openings must be authorized to work in the United States.