puck
Senior Embedded Software Engineer
Worthing, South Dakota · Senior · Full-time
Sponsorship not specifiedDetected 5 days ago
C++Code ReviewLinuxEmbedded SystemsElectrical EngineeringControlsTest AutomationCommunicationProblem SolvingMentoringActuators
About the role
- 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.
Responsibilities
- 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.
- 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.
Requirements
- Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or related field - or equivalent practical experience
- 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
- 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
- Excellent communication skills and the ability to work across software, hardware, systems, and non-engineering teams.
- 6+ years of professional experience developing production-grade embedded systems
- Experience building UI or application components with Qt in embedded or industrial environments
- 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
Nice to have
- 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
- 401(k) with company match
Skills
- We're Built to
This listing is sourced directly from puck's careers page and normalized into a canonical job model.