Jobs · Engineering · Utah

Software Engineer - Automation and Controls

MOXTEK · Orem, UT · 2 wk ago
EngineeringFull-time

About the role

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. You will work alongside mechanical, electrical, and software engineers to design, develop, and continuously improve 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.

Qualifications

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

Skills

  • 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.
  • Interest in writing clean, maintainable, and reusable software as part of a collaborative engineering team.

Location

This role requires on-site presence; it is not a remote position.

Similar jobs

Software Engineer

EpicJacksonville, FL· 2 mo ago
Information Technologyapply on epic.avature.net

Software Engineer

BravenChicago, IL· 2 mo ago
Engineering$92k–$115k/yrapply on apply.workable.com

Software Engineer

EpicSouth Burlington, VT· 2 mo ago
Engineeringapply on epic.avature.net

Software Engineer

Rincon Research CorporationCentennial, CO· 2 mo ago
Engineeringapply on workforcenow.adp.com