Senior Embedded Software Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+33 more
Job description
We’re looking for a Senior Embedded Software Engineer to lead the design and development of embedded software powering our connected industrial and machine control systems. You’ll work in an embedded Linus environment across C++, Qt, and Structured Text (ST), owning technical architecture from hardware-software interfaces down to the UI layer. This is a senior individual contributor role - you’ll set technical direction, mentor other engineers, and directly shape how our platforms evolve, while staying hands-on with firmware, application code, and system-level debugging.
If you like solving hard problems at the intersection of software, hardware, and controls - and want your work to end up running in real machines in the field - this is that role.
What You’ll Do
- Lead the design, implementation, and long-term evolution of embedded software components using C++, QT, and modern engineering practices in an embedded Linux environment.
- Own technical design for complex embedded systems - architecture, hardware-software interfaces, inter-process communication, device integration, and performance optimization.
- Build and maintain software for machine, vehicle, or industrial control systems using protocols, and configuration tools.
- Design UI and application-layer functionality in Qt for operator displays, diagnostics, and configuration tools.
- Contribute to control logic and automation using Structure Text (ST), collaborating across embedded and controls. domains.
- Drive engineering quality through code reviews, design reviews, technical standards, and testing strategy.
- Partner with product, program, QA, and engineering peers to turn requirements into robust software solutions.
- Lead root-cause analysis on complex field and lab issues spanning software, hardware interfaces, and communication buses.
- Build and improve automated build, integration, test and release workflows.
- Mentor engineers and help shape the technical roadmap and long-term architecture of our embedded platforms.
Requirements
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or related field - or equivalent practical experience
- 6+ years of professional experience developing production-grade embedded systems
- Deep proficiency in C++ for embedded applications, including object-oriented design, multithreading, memory management, and performance-conscious development
- Strong hands-on experience in embedded Linux, including system bring-up, process-level debugging, and device interfaces
- Experience building UI or application components with Qt in embedded or industrial environments
- Practical experience with industrial or vehicle communication protocols (J1939, CANBus, Ethernet) and message-based system integration
- Experience with Structured Text (ST) or comparable IEC 61131-3 programming for control systems or automation
- Solid grounding in source control, automated testing, debugging tools, and modern team-based development practices
- Comfort using AI-assisted development tools to improve design, coding, testing, and documentation without sacrificing code quality or judgment
- Strong debugging and problem-solving skills across software, hardware interfaces, and communication networks
- Excellent communication skills and the ability to work across software, hardware, systems, and non-engineering teams.
Nice to Have
- Low-level Linux development, device drivers, board support packages, or hardware abstraction layers
- Cross-compilation toolchains, Yocto, Buildroot, or similar embedded Linux build environments
- Hands-on experience with bus analyzers, logic analyzers, or protocol analyzers
- Real-time systems, concurrency, and performance optimization in resource-constrained environments
- Experience integrating software with sensors, actuators, displays, controllers, or other embedded peripherals
- Knowledge of software safety, reliability, diagnostics, or secure development practices for industrial/vehicle systems
- Experience with hardware-in-the-loop (HIL), system integration, or validation testing
- A track record of mentoring engineers and shaping coding standards across teams
- Familiarity with regulated, industrial, automotive, agricultural, or heavy equipment environments
Benefits & conditions
Pulled from the full job description
- Health insurance
- 401(k) matching
- Paid time off
- Vision insurance
- Dental insurance
- Paid holidays, * Competitive pay and benefits, including health, dental and vision
- 401(k) with company match
- Paid time off and holidays
- A family-owned company where your work directly shapes machines used in the field - not just a slide deck.
Puck is an Equal Opportunity Employer
About the company
Puck started with a family, a few acres in Manning, Iowa, and a habit of building better tools than the ones on the market. Since then we’ve grown into a family of manufacturing brands serving agriculture, oil and gas, fire, and industrial markets - engineering equipment that’s used hard, in the field, everyday. We’re Built to Lead, and that shows up in how we build products and how we build careers: we invest in people, push for continuous improvement, and don’t cut corners.
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Apply on www.indeed.comGood distractions
Talks and stories from around this role — technically off-topic, practically not.
Moments
Explore playlistsVideos
See allRelated articles
See all
7 Important Tips That Every Software Developer Should Know
Top Characteristics of a Software Engineer
Is Software Engineering Over-Saturated?
Is Software Engineering Hard?