Employee Type
Full-Time Regular
Ann Arbor MI

Job Description


Established and growing, machine design and manufacturing business, located in Ann Arbor, MI is searching for a software engineer interested in architecting software for optimal reuse and ease of use. The primary responsibility of this position is to develop quality, real-time, signal processing code with an intuitive user interface to control custom machines. The majority of the development will be in C++, but the user interface is implemented with Visual Studio®. Knowledge of UML and sound software design principles is a plus.


  • Work with engineering and sales to design software to meet customer specification
  • Document machine software specification
  • Write (and maintain) quality code that fulfills the customer functional specification requirements
  • Develop code and modify existing architecture to increase reuse and reduce the amount of new code that must be developed for each new machine
  • Monitor users, assess ease of use on software design, establish baseline of current level of ease-of-use, develop new user interface design, prototype & validate ease-of use of new design, implement new design in re-useable modules
  • Assist in designing test cases, executing test modules (or providing guidance to someone to execute the tests), analyzing test results
  • Work with documenter to ensure development of thorough, technically correct documentation and training material

Key Skills and Abilities

  • Knowledge of programmable logic controllers and real-time control systems
  • Data acquisition and signal processing experience
  • Geometry and trigonometry knowledge required
  • Creative GUI design and software architecture aptitude
  • Strong problem solving abilities
  • Experience delivering high quality, well structured and documented software
  • Ability to collaborate successfully in a small team
  • Ability to communicate technical ideas in written English
  • Boorland C++, Visual Studio, Windows XP development environment