Embedded Software Engineer
Puck Enterprises Inc · Worthing, SD · 2 wk ago
On-siteEngineering$50k/yrFull-time
About the role
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.
Responsibilities
- Designing, implementing, testing, and maintaining embedded software components and applications using C++ in an embedded Linux environment
- Developing and enhancing user interfaces and application frameworks using Qt for device-based or industrial HMI solutions
- Creating, modifying, and supporting control logic using Structured Text for PLC or automation-related system functionality
- Contributing to software architecture and technical design decisions with attention to performance, reliability, maintainability, and hardware integration
- Integrating software with embedded hardware, communication interfaces, peripherals, and industrial protocols as required by the system design
- Writing clean, well-tested production code and participating actively in peer code reviews and engineering best practices
- Troubleshooting and resolving defects across software, device, and system integration layers, including field or lab debugging when needed
- Supporting build systems, deployment processes, and software version control practices to improve release quality and consistency
- Documenting technical designs, interface behavior, implementation details, and troubleshooting procedures for embedded systems
- Collaborating with cross-functional teams including product, program, QA, and peer engineering teams to deliver integrated embedded software solutions
Qualifications
- Bachelor's degree in Computer Science, Software Engineering, Electrical Engineering, or a related technical field — or equivalent practical experience
- 3–5 years of professional software engineering experience developing production software for embedded or industrial systems
- Strong proficiency in C++ with solid understanding of object-oriented design, memory management, and performance considerations
- Hands-on experience developing applications or interfaces using Qt
- Experience programming in Structured Text Language for automation, control, or PLC-related applications
- Working knowledge of embedded Linux development, including system-level debugging, process management, and interaction with hardware interfaces
- Experience with source control, automated testing, build systems, and standard software development lifecycle practices
- 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 and problem-solving skills across software, device, and system integration environments
- Clear written and verbal communication skills