Scientific Software Developer - LCLS Data Platforms
Apply NowCompany: SLAC National Accelerator Laboratory
Location: Menlo Park, CA 94025
Description:
SLAC Job Postings
Position overview:
Do you enjoy collaborating with a diverse group of people to solve complex challenges? Does contributing to breakthrough discoveries in science and working with unique experimental instrumentation in a world-leading scientific research environment excite you? The Experimental Data Systems (EDS) division within the Linac Coherent Light Source (LCLS) Directorate at SLAC is seeking a Scientific Software Developer to work on the development and optimization of advanced data analysis algorithms and complex computational workflows.
LCLS is the world's premier X-ray free electron laser (XFEL), with unprecedented capabilities in photon energy range, peak power, and pulse lengths. There are 7 independent instruments currently in operation, which are specifically designed to utilize the exceptional beam characteristics of the LCLS to elucidate atomic structures and dynamics at the femtosecond timescale. The evolution of science and experimental techniques on these instruments, along with upgrades in the x-ray FEL source and optical lasers (LCLS-II and LCLS-II-HE), require regular improvements to the supporting software and hardware platforms.
The position will focus on the development and integration of new data processing algorithms and workflows within the EDS software and hardware platforms, as well as supporting, maintaining and optimizing existing data analysis code and pipelines. A significant aspect of the role will be to interface with collaborators, users, and their teams/students to support their data analysis needs.
The successful candidate should be comfortable in designing and writing efficient, scalable and documented code in the Python and C/C++ programming languages, and should have experience with several widely-used scientific computational libraries and frameworks like numpy, scipy, pandas. Additionally, the candidate should possess a working knowledge of some standard HPC software packages like MPI, SLURM. Proven experience in collaborative coding and scientific programming is required. Background in machine learning for science is a plus.
SLAC is a U.S. Department of Energy (DOE) laboratory operated by Stanford University and based in Menlo Park; CA
Your specific responsibilities include:
Position overview:
Do you enjoy collaborating with a diverse group of people to solve complex challenges? Does contributing to breakthrough discoveries in science and working with unique experimental instrumentation in a world-leading scientific research environment excite you? The Experimental Data Systems (EDS) division within the Linac Coherent Light Source (LCLS) Directorate at SLAC is seeking a Scientific Software Developer to work on the development and optimization of advanced data analysis algorithms and complex computational workflows.
LCLS is the world's premier X-ray free electron laser (XFEL), with unprecedented capabilities in photon energy range, peak power, and pulse lengths. There are 7 independent instruments currently in operation, which are specifically designed to utilize the exceptional beam characteristics of the LCLS to elucidate atomic structures and dynamics at the femtosecond timescale. The evolution of science and experimental techniques on these instruments, along with upgrades in the x-ray FEL source and optical lasers (LCLS-II and LCLS-II-HE), require regular improvements to the supporting software and hardware platforms.
The position will focus on the development and integration of new data processing algorithms and workflows within the EDS software and hardware platforms, as well as supporting, maintaining and optimizing existing data analysis code and pipelines. A significant aspect of the role will be to interface with collaborators, users, and their teams/students to support their data analysis needs.
The successful candidate should be comfortable in designing and writing efficient, scalable and documented code in the Python and C/C++ programming languages, and should have experience with several widely-used scientific computational libraries and frameworks like numpy, scipy, pandas. Additionally, the candidate should possess a working knowledge of some standard HPC software packages like MPI, SLURM. Proven experience in collaborative coding and scientific programming is required. Background in machine learning for science is a plus.
SLAC is a U.S. Department of Energy (DOE) laboratory operated by Stanford University and based in Menlo Park; CA
Your specific responsibilities include:
- Design and implement new algorithms and pipelines to analyze scientific data generated by LCLS
- Maintain existing data analysis workflow and optimize them for scaled performance
- Interface with external collaborators and users and provide technical support to facilitate their use of LCLS infrastructure.
- Support the infrastructure for the development of new machine learning data analysis approaches.
- Implement tests and benchmark studies and establish continuous integration practices for code maintenance.
- Support users of the scientific instruments in running self-developed data analysis software within the LCLS software framework, consulting with external software developers and designing integrated solutions.
- Participate in and contribute to general group research activities.
- Represent your research results at seminars, scientific conferences, and workshops.
- Bachelor's degree and three years of relevant experience or a combination of education and relevant experience.
- 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.
- Strong knowledge of at least one programming language.
- Experience with HPC software deployment and task scheduling systems (module system, SLURM).
- Background in x-ray or material science.
- A degree or background in Atomic, Molecular and Optical Sciences, Chemistry, Biology or Material sciences is preferred
- 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, appropriate written, spoken, presented messages.
- Relationships: Builds relationships to foster trust, collaboration, and a positive climate to achieve common goals.
- Consistent with its obligations under the law, the University will provide reasonable accommodation to any employee with a disability who requires accommodation to perform the essential functions of his or her job.
- Interpersonal Skills: Demonstrates the ability to work well with Stanford colleagues and clients and with external organizations.
- Promote Culture of Safety: Demonstrates commitment to personal responsibility and value for environment, safety and security; communicates related concerns; uses and promotes safe behaviors based on training and lessons learned. Meets the applicable roles and responsibilities as described in the ESH Manual, Chapter 1General Policy and Responsibilities: http://www.group.slac.stanford.edu/esh/eshmanual/pdfs/ESHch01.pdf
- Subject to and expected to comply with all applicable University policies and procedures, including but not limited to the personnel policies and other policies found in the University's Administrative Guide, http://adminguide.stanford.edu
- Classification Title: Software Developer 1
- Grade: I Job code: 4821
- Duration: Regular Continuing