Controls & AI Systems Engineer
Summary
Controls/software engineer at SSRL (SLAC National Laboratory) implementing Python-based controls systems (EPICS), deploying the Bluesky data collection framework at synchrotron beamlines, and building data analysis pipelines plus machine learning for autonomous x-ray experiments.
The Stanford Synchrotron Radiation Lightsource (SSRL), a directorate of the Stanford Linear Accelerate (SLAC) National Laboratory has an opening for a Project Engineer with experience in controls engineering, data collection frameworks, software development and deployment. SSRL is developing and implementing controls systems software based on Python to enable real time data handling to support in-situ, operando, and ultimately autonomous experimentation at the synchrotron. In this role, you will apply your engineering and software skills to work with the world’s leading research groups developing new materials to solve global energy challenges. This position will serve to unify, implement, and test existing free open source software tools, and also to extend the functionality of existing tools and contribute them back to the community. Development will be driven by current scientific focus of SSRL with a primary focus on developing data analysis pipelines and autonomous control approaches for x-ray scattering, diffraction, absorption, and imaging problems. Objectives will include readying existing beamlines for the deployment of machine learning algorithms that will be used for autonomous data analysis and experimental steering and are expected to lead to publication of scientific research employing these tools.
- Your specific responsibilities include:
-
- Implement modern electronics controls software like The Experimental Physics and Industrial Control System (EPICS) for controlling complex instrumentation.
- Deploy the next generation data collection framework “bluesky” at SSRL beamlines.
- Execute all programming tasks, including programming, analyzing, designing, developing, implementing, modifying, and maintaining computer programs. Work on systems of small to moderate size and 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 as well as experimentalists.
- Publish or assist in publishing results of scientific research pertaining to the developed software packages.
- Assess stakeholder needs and requirements.
- Design and develop applications that may involve sophisticated data manipulation.
- Maintain and update existing programs.
- Troubleshoot and solve technical problems.
- Create programs to meet reporting and analysis needs.
- Design and implement staff training.
- Document changes in software for end users.
- Follow team software development methodology.
- Serve as technical resource with respect to applications.
- Other duties may also be assigned.
- Note: This is a 2-year fixed term position with the possibility of extension or conversion to a regular- continuing position. Assignment duration is contingent upon project needs and funding.
- To be successful in this position you will bring:
- Bachelor's degree in engineering, computer science, software engineering or related field and experience with controls engineering
- Strong knowledge of at least one programming language e.g. python
- Some 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.
In addition, 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.
- Experience developing and deploying software packages in the public domain.
- Developing with scientific data acquisition frameworks (such as Bluesky) and implementing machine learning methods for data analysis or experimental steering.
- Awareness and enthusiasm for the impact of software tools in the scientific community.
- Fluency with git and related team development tools.
- Proficiency working in UNIX and Windows environments.
- Reliability, especially in regular communications with colleagues.
- SLAC employee competencies:
-
- Effective Decisions: Uses job knowledge and solid judgment to make quality decisions in a timely manner
- Self-Development: Pursues a variety of venues and opportunities to continue learning and developing
- Dependability: Can be counted on to deliver results with a sense of personal responsibility for expected outcomes
- Initiative: Pursues work and interactions proactively with optimism, positive energy, and motivation to move things forward
- Adaptability: Flexes as needed when change occurs, maintains an open outlook while adjusting and accommodating changes
- Communication: Ensures effective information flow to various audiences and creates and delivers clear, appropriately written, spoken, presented messages
- Relationships: Builds relationships to foster trust, collaboration, and a positive climate to achieve common goals
Summary:
Entry-level position for a developing professional with a solid knowledge within a field of specialty, typically with a BS or MS or equivalent in science, engineering or other technical specialties with minimal relevant experience.
Works as an individual contributor under the general direction of higher level staff.
Scope of Impact:
Contributes to the progress and milestones of specific projects or programs.
Knowledge and Expertise:
Good understanding and the ability to interpret and apply fundamental theories, concepts, and practices within a field of specialty to well-defined assignments of limited scope.
Program Development:
Contributes to the completion of milestones associated with specific projects and technical products to accomplish the laboratory’s goals.
Minimum Education and Experience Required:
BS or an equivalent combination of education and relevant years of experience.