Position Title: Software Engineer – IIOT Development

Reports To: Software Engineer Manager

Position Description:


The Software Engineer will be responsible for the analysis, design, coding, testing, and maintenance of software applications in two product areas. The main role will be in developing applications focused on industrial communications and data collection in a team environment. The secondary role will be to work on our server-based product using various web technologies. The time spent in each varies according to project mix and customer orders. The Software Engineer will work independently but be directed by an existing team member and focused on the creation of applications, services, and background processing required for the existing/future product suite as well as deployment.

Essential Duties, Responsibilities and Personal Characteristics

To perform this job successfully, an individual must be self-motivated and demonstrate the ability to work with individuals from various functional groups. The individual’s responsibilities span all aspects of software development: design, implementation, and test. Many times, the individual will be working on several projects simultaneously requiring good organization skills and multi-tasking abilities. A secondary objective is to assist company field personnel and customers with the installation of various software applications. In executing these duties, it is paramount that the individual properly document and communicate the technical content of the design.


  • Minimum of 4 years practical software engineering and design work experience on Windows applications using Windows Developer Studio
  • Experience with IIOT technologies, communication protocols (e.g. OPC, UDP, MTConnect, etc.), and data collection from industrial assets in a factory setting.
  • Excellent work history
  • Knowledge and experience using Microsoft Windows Operating Systems
  • Extensive knowledge and experience using C++
  • Knowledge and experience writing applications using web technologies, primarily Java and JavaScript
  • Experience productizing software for deployment to the field is a strong plus
  • Experience with automated installers and automated testing are a plus
  • Experience in all phases of the software development lifecycle: requirements, design, development, testing, and deployment
  • Experience writing applications for and communicating with CNCs and PLCs a strong plus
  • Excellent communication skills and record keeping of projects
  • Requires strong problem-solving skills
  • Strengths in documentation, design, and support preferred


  • Ability to create Windows applications
  • Ability to work with end users
  • Ability to work in a team environment and communicate effectively
  • Ability to meet deadlines and manage multiple priorities
  • Ability to work independently with minimal supervision
  • Ability to plan effectively to meet company priorities and schedules


  • BS Computer Science/Software Engineering degree