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