Data Acquisition and Controls Software Engineer

  • Oak Ridge, TN
  • Full-time

Company Description

The Neutron Sciences Directorate (NScD) at Oak Ridge National Laboratory (ORNL) operates the High Flux Isotope Reactor (HFIR), the United States' highest flux reactor based neutron source, and the Spallation Neutron Source (SNS), the world's most intense pulsed accelerator based neutron source. Together these facilities operate 24 instruments for neutron scattering research, each year carrying out in excess of 1,000 experiments in the physical, chemical, materials, biological and medical sciences for more than 3,000 visiting scientists. HFIR also provides unique facilities for isotope production and neutron irradiation. To learn more about Neutron Sciences at ORNL go to: 

Job Description

Develop software solutions in a team environment in support of the neutron scattering instrument beam lines at the Spallation Neutron Source (SNS). The position will contribute to the development, operation and ongoing support of the beam line data acquisition and control systems to ensure reliable and maintainable operations while enhancing the capability and functionality of these systems.

Major Duties/Responsibilities:


  • Support the scientific mission of the SNS by designing, developing, supporting, maintaining and troubleshooting efficient reliable software for neutron instrument control, data acquisition and experiment automation.
  • Contribute towards the design, development and maintenance of the EPICS-based instrument control system and data acquisition software. Collaborate with other EPICS sites and neutron scattering facilities to allow shared development.
  • Develop solutions for interfacing custom and commercial devices to the instrument data acquisition system including device drivers and network I/O software.
  • Support and maintain existing software applications including troubleshooting, and bug fixes.
  • Provide documentation and user training for software. Maintain code in a central repository utilizing a version control system. Develop and utilize software quality testing procedures.
  • Provide operational support for the instrument data acquisition and control system. The position is typical office hours, but some off-hours and weekend support is required to support the 24/7 operational needs of the SNS.
  • Ensure and monitor compliance with environment, safety, health, and quality program requirements.  Promptly identify ESH and QA issues and communicate them to project and division management, ESH and QA contacts, and/or subcontractor contacts as appropriate.
  • Maintain a strong commitment to the implementation and perpetuation of values and ethics.


Qualifications Required:


Ideal candidate combines strong software development expertise with an understanding of scientific data acquisition and control systems. Bachelors degree in engineering, computer science, physics or related field and five years of relevant experience, or an equivalent combination of education and experience. Demonstrated experience in developing reliable and efficient custom software in a scientific environment, or developing software for data acquisition or large distributed control systems. Demonstrated experience in one or more programming languages such as C, C++ or Java. Experience with low-level control system programming or device driver development. Experience with collaborative/team software development using version control and configuration control management systems. Understanding of reliable software design practices, distributed software systems and computer networks. Ability to work and communicate effectively with teams of scientists, engineers, and technicians.


Qualifications Desired:


Experience at a neutron user facility, synchrotron light source or other large-scale experimental physics project or user facility is highly preferred. Experience with EPICS or a similar toolkit for developing large-scale distributed control systems is desired. An advanced degree in science or engineering is strongly preferred.


Desired skills include device drivers development, embedded systems, TCP/IP programming, C, C++, Java, Python, EPICS, GIT, GNU development tools, distributed software systems, Linux, Windows.

Additional Information

Work Direction and Interfaces:


Position reports to Instrument Data Acquisition and Controls Group Leader.  Works closely with members of Instrument Data Acquisition/Controls Group, Instrument Data Analysis/Visualization Group and Accelerator Controls Group, and interfaces with external scientific users and instrument scientists at SNS and other technical groups. Collaborates with software developers at other facilities and from the user community.  Possess strong commitment to team environment dynamics with the ability to contribute expertise and follow leadership directives at appropriate times as well as work independently.