Senior Embedded Software Engineer
Listed on 2026-07-21
-
Software Development
Embedded Systems/ Firmware/ IoT, Embedded Software Engineer, C++ Developer, Unix/Linux
Senior Embedded Software Engineer
Puck | Built to Lead.
Location:
Worthing, SD | Department:
Engineering |
Employment Type:
Full-Time |
Schedule:
Monday - Friday, 8:00 AM - 5:00 PM
At Puck, we are Built to Lead. We are a dynamic manufacturing company committed to delivering high-quality products and fostering a team environment where every member plays a critical role in our success. If you are a technically minded problem-solver who picks up new concepts quickly and thrives when there's always something new to learn, we want to hear from you.
WhatYou'll Do
As a Senior Embedded Software Engineer, you will lead the design, development, and integration of complex embedded software systems in an embedded Linux environment using C++, Qt, and Structured Text Language (ST). This is a senior individual contributor role with accountability for technical direction, architectural decisions, and delivery of reliable software for connected industrial, vehicle, or machine-control systems.
Your day-to-day responsibilities will include:- Leading the design, implementation, and long-term evolution of embedded software components and applications using C++, Qt, and modern software engineering practices in an embedded Linux environment
- Owning technical design for complex embedded systems, including software architecture, hardware-software interfaces, inter-process communication, device integration, and performance optimization
- Developing and maintaining software for machine, vehicle, or industrial control systems using communication protocols such as J1939 and CANBus
- Designing and implementing user interface and application-layer functionality using Qt for operator displays, diagnostics, and configuration tools where applicable
- Contributing to control logic and automation solutions using Structured Text Language (ST) and collaborating across embedded and controls domains as needed
- Driving engineering quality through code reviews, design reviews, technical standards, testing strategy, and continuous improvement of development practices
- Partnering with product, program, QA, and peer engineering teams to translate functional requirements into robust embedded software solutions and delivery plans
- Leading troubleshooting and root-cause analysis of complex field and lab issues across software, hardware interfaces, networking, and communication buses
- Building and enhancing automated build, integration, test, and release workflows to improve software quality, traceability, and repeatability
- Mentoring engineers through technical guidance, design feedback, and knowledge sharing, and contributing to technical roadmaps and architectural decisions that shape long-term embedded platform direction
- Technical Capacity
- Problem Solving/Analysis
- Communication Proficiency
- Initiative
- Collaboration/Teamwork
- Strategic Thinking
- Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or a related technical field — or equivalent practical experience
- 6+ years of professional software engineering 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 developing software in an embedded Linux environment, including system bring‑up, process-level debugging, and interaction with device interfaces
- Experience building UI or application components with Qt in embedded or industrial device environments
- Practical experience with industrial or vehicle communication protocols, including J1939 and CANBus or Ethernet, with strong understanding of message-based system integration and diagnostics
- Experience with Structured Text Language (ST) or comparable IEC 61131-3 programming used in control systems, PLC integration, or automation environments
- Experience with source control, automated testing, debugging tools, and modern software development practices in a team-based engineering environment
- Experience using AI-assisted development tools to improve software design, coding efficiency, testing, and debugging while maintaining code quality and sound technical judgment
- Strong debugging, performance tuning, and problem-solving skills across embedded software, device interfaces, and communication networks
- Excellent communication skills and the ability to collaborate effectively across software, hardware, systems, and non-engineering stakeholders
- Experience with low-level Linux development, device drivers, board support packages, or hardware abstraction layers
- Experience with cross-compilation tool chains, Yocto, Buildroot, or similar embedded Linux build environments
- Hands‑on experience with embedded debugging tools such as bus analyzers, logic analyzers, or protocol analyzers
- Experience with real-time systems concepts, concurrency, deterministic behavior, and performance optimization in…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).