Software Engineer - Automation and Controls
Moxtek · Orem, UT, US
Apply directly on Moxtek’s careers site — no account needed.
About the role
Job Summary:
We are seeking a Controls Software Engineer to join our Equipment Engineering team. In this role, you will develop C# desktop applications that control and interface with custom production and engineering equipment using a variety of hardware communication protocols, including Ethernet, USB, and RS-232.
Working alongside mechanical, electrical, and software engineers, you will contribute to the design, development, and continuous improvement of innovative manufacturing equipment. This position offers the opportunity to work on challenging, real-world automation systems while helping develop reliable, maintainable software that supports both engineering and production operations.
Our team is committed to modern software development practices, including clean architecture, object-oriented design, source control, and collaborative development, providing an excellent environment for engineers to learn and grow.
Responsibilities:
- Develop and maintain C# desktop applications that control and interface with production and engineering equipment.
- Design, implement, test, and debug software that communicates with hardware devices using Ethernet, USB, RS-232, and other industrial communication protocols.
- Collaborate with mechanical, electrical, and software engineers throughout the design, development, and commissioning of new equipment.
- Write clean, maintainable, and well-documented code using modern software engineering principles and team coding standards.
- Utilize version control systems (Subversion, Git, etc.) and participate in collaborative development workflows, including branching, merging, code reviews, and CI/CD processes.
- Troubleshoot software and hardware integration issues using common electronic test equipment and diagnostic tools.
- Support continuous improvement efforts by identifying opportunities to enhance equipment performance, reliability, and maintainability.
Preferred Qualifications
- Interest in writing clean, maintainable, and reusable software as part of a collaborative engineering team.
- Strong foundation in object-oriented programming with C# and the .NET platform.
- Experience developing Windows desktop applications using WPF and the MVVM design pattern.
- Familiarity with modern software engineering practices, including Clean Architecture, SOLID principles, dependency injection, and the .NET Generic Host.
- Experience using version control systems such as Git or Subversion in a collaborative development environment.
- Working knowledge of SQL databases and data access concepts.
- Familiarity with hardware communication protocols such as Ethernet, USB, or serial (RS-232) interfaces.
- Exposure to industrial automation technologies, including PLCs, Beckhoff controllers, or Structured Text, is a plus but not required.
- Experience with Linux and embedded platforms such as Raspberry Pi is a plus.
- Strong analytical and problem-solving skills with an interest in developing software for real-world automation systems.
Education and Experience:
- Bachelor's or Master's degree in Computer Science, Software Engineering, or a closely related field.
- 0-2 years of software development experience, including internships, co-op experience, or relevant academic projects.
Location:
This role requires on-site presence; it is not a remote position.
Description sourced from the public Indeed listing — this role isn't indexed from the company's career page yet.
Skills
- C#
- .NET
- SQL
Never be applicant #200 again
Every job here is indexed straight from company career pages — often hours after it opens, before it reaches the big boards. Create a free account and get your best matches in a twice-daily digest.
- Your best matches, twice a day
- No duplicates, no ghost jobs, no recruiter spam
- Every job free to browse — pay only when you apply
Free account — no card required
93 161 live jobs · 17 643 companies tracked · 6 162 added today