Control System Software Engineer
Oak Ridge National Laboratory · Oak Ridge, TN · 2 wk ago
EngineeringFull-time
Major Duties and Responsibilities
- Support the scientific mission of SNS by developing reliable, maintainable software for accelerator and target control systems as part of a multidisciplinary team.
- Collaborate with group members, scientific staff and operations personnel to design, develop, maintain, and improve EPICS-based control systems.
- Maintain and support existing production software, including performing troubleshooting and resolving bugs.
- Create and maintain software documentation and accompanying training materials.
- Adhere to Software Quality Assurance procedures, including managing source code in a central repository with version control systems and developing comprehensive software testing procedures.
- Provide operational support, troubleshooting, and system improvements for accelerator and target control systems. While typical work hours are office-based, occasional off-hours or weekend support may be required to meet user facility needs.
- Ensure compliance with environmental, safety, health, and quality procedures and programs.
- As a member of the ORNL scientific community, commit to ORNL’s Research Code of Conduct.
- Deliver ORNL’s mission by aligning behaviors, priorities, and interactions with our core values of Impact, Integrity, Teamwork, Safety, and Service. Promote equal opportunity by fostering a respectful workplace – in how we treat one another, work together, and measure success.
Basic Qualifications
- A BS degree in engineering, computer science or related field plus two or more years of relevant experience (a relevant MS degree will be considered with at least one year of experience)
- Demonstrated experience with embedded systems and/or systems programming
- Experience developing applications or systems programming in a Linux environment
- Demonstrated programming experience in modern object-oriented programming languages, preferably C++
- Proficiency with collaborative software development tools and practices, such as software debugger, version control, issue tracking, documentation
Preferred Qualifications
- Experience with EPICS or a similar toolkit for developing distributed control systems
- Exposure to additional programming languages, such as C, Python, Java or similar
- Familiarity with real-time operating systems and software practices
- Prior experience working in a scientific user facility
- Experience with GitLab and CI/CD pipelines
- Hands-on experience with in-field troubleshooting of software and hardware interfaces