Controls & AI Systems Engineer
SLAC National Accelerator Laboratory
About the Role
The Stanford Synchrotron Radiation Lightsource (SSRL) at SLAC National Laboratory is seeking a Project Engineer with experience in controls engineering, data collection frameworks, and software development and deployment. This role focuses on developing and implementing Python-based controls systems software for real-time data handling, enabling autonomous experimentation. You will work with leading research groups on materials science to solve global energy challenges, contributing to the extension and improvement of open-source software tools. Development will be driven by SSRL's scientific focus, particularly in data analysis pipelines and autonomous control for x-ray scattering, diffraction, absorption, and imaging. Objectives include preparing beamlines for machine learning algorithms for autonomous data analysis and experimental steering, potentially leading to scientific publications.
Note: This is a 2-year fixed-term position with the possibility of extension or conversion.
Key Responsibilities
- Implement modern electronics controls software, such as The Experimental Physics and Industrial Control System (EPICS), for complex instrumentation.
- Deploy the next-generation data collection framework, bluesky, at SSRL beamlines.
- Execute all programming tasks: programming, analyzing, designing, developing, implementing, modifying, and maintaining computer programs for systems of small to moderate complexity or segments of larger systems.
- Survey, assess, modify, and employ existing free software tools.
- Develop, test, deploy, and promote cross-platform software in the public domain.
- Communicate regularly and clearly with co-developers and experimentalists.
- Publish or assist in publishing results of scientific research related to developed software packages.
- Assess stakeholder needs and requirements.
- Design and develop applications involving sophisticated data manipulation.
- Maintain and update existing programs.
- Troubleshoot and solve technical problems.
- Create programs for reporting and analysis needs.
- Design and implement staff training.
- Document software changes for end users.
- Follow team software development methodology.
- Serve as a technical resource for applications.
- Other duties as assigned.
Requirements & Tech Stack
- Python (strong knowledge of at least one programming language)
- The Experimental Physics and Industrial Control System (EPICS)
- bluesky (data collection framework)
- git and related team development tools
- UNIX and Windows environments
- Experience with controls engineering
- Familiarity with electronics controls systems
- Experience with user experience design and implementation
- Current knowledge of latest software and design standards
- Ability to define and solve logical problems for technical applications
- Knowledge of and ability to select, adapt, and effectively use a variety of programming methods
- Ability to recognize and recommend needed changes in user and/or operations procedures
- Basic knowledge of software engineering principles
Qualifications
- Bachelor's degree in engineering, computer science, software engineering, or related field.
- Experience developing and deploying software packages in the public domain.
- Experience developing with scientific data acquisition frameworks (such as Bluesky).
- Experience implementing machine learning methods for data analysis or experimental steering.
- Awareness and enthusiasm for the impact of software tools in the scientific community.
- Reliability, especially in regular communications with colleagues.
Preferred Requirements Include:
- Bachelor’s degree in Electrical Engineering, Computer Science, or a related technical field, with hands-on experience in scientific computing or data-driven research; or an equivalent combination of education and relevant professional experience.
SLAC Employee Competencies
- Effective Decisions
- Self-Development
- Dependability
- Initiative
- Adaptability
- Communication
- Relationships