Software Engineer - Automation and Controls

MOXTEK Inc.
Orem, UT, United States
19 days ago

Role details

Contract type
Internship / Graduate position
Employment type
Full-time (> 32 hours)
Experience level
Starter
Experience required
0 years minimum
Compensation
$70,000.0 - $78,000.0
Working hours
Regular working hours
Job source

Tech stack

.NET Framework Multitier Architecture Software Applications C Sharp (Programming Language) Code Review Communications Protocols Databases Continuous Integration Data Security Dependency Injection Software Design Patterns Linux
+22 more
Ethernet Hardware Design Windows Presentation Foundation Model View ViewModel Object-Oriented Software Development Software Maintenance Raspberry Pi RS-232 Software Engineering Structured Text Subversion USB Windows Desktop Software Organization Diagnostic Tools Software Troubleshooting Git Computer Equipment Solid Principles Information Technology Software Coding Software Version Control

Job description

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., * 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.

Requirements

  • 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.

Benefits & conditions

Pulled from the full job description

  • Parental leave
  • 401(k)
  • Health insurance
  • Paid time off
  • Employee discount
  • Vision insurance
  • Health savings account

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.indeed.com

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

6:21 min

Investigating push inefficiencies with upstream Git experts

Jonathan Creamer · Coffee With Developers

5:35 min

Direct hardware communication using the Web USB API

Rowdy Rabouw Rowdy Rabouw · WWC 2025

52 sec

Running persistent Linux environments directly on Windows

Ben Breard Ben Breard · WWC 2025

6:20 min

Transitioning from software engineering to process automation

Maria Doina Irimias · LIVE

56 sec

Favorite git commands and the importance of patch commits

Eileen Uchitelle Eileen Uchitelle +1 · Coffee With Developers

3:51 min

Technical skills and collaborative mindsets for mobility engineering roles

Georg Kühberger +1 · LIVE

Videos

See all

Related articles

See all