Scientific Software Developer at SLAC National Accelerator Laboratory
Menlo Park, CA 94025, USA -
Full Time


Start Date

Immediate

Expiry Date

13 Jun, 25

Salary

0.0

Posted On

14 Mar, 25

Experience

3 year(s) or above

Remote Job

Yes

Telecommute

Yes

Sponsor Visa

No

Skills

Good communication skills

Industry

Computer Software/Engineering

Description

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 cross-disciplinary scientific software developer to join our team.
LCLS is the world¿s premier X-ray free-electron laser (XFEL) with a suite of X-ray instruments capable of generating large, high-velocity, high-variety datasets used 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), benefit from real-time feedback, access to significant computing power, innovative analysis methods such as those employing AI/ML, and the ability to automate experiments from execution to analysis.
This position will focus on designing, building, and optimizing advanced data analysis algorithms and computational workflows with an emphasis on robust software engineering. The ideal candidate has at least five years of relevant experience in scientific programming, HPC architectures, and continuous integration practices, thrives in collaborative research environments, and is enthusiastic about applying machine learning techniques, HPC resources, and software engineering best practices to support experiments. You will contribute to mission-critical projects involving x-ray free-electron laser (XFEL) data and help shape reliable, real-time, large-scale data processing workflows at an internationally renowned research facility.

PHYSICAL REQUIREMENTS AND WORKING CONDITIONS:

  • 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.
Responsibilities
  • As a Scientific Software Developer in the LCLS Data Analytics Department, you will work within an interdisciplinary team of software developers, scientists, and engineers to architect, implement, and maintain data analysis and computational workflows spanning from facility edge to HPC. You will be responsible for creating scalable, high-performance solutions and adhering to robust engineering practices, including version control, continuous integration, testing, and thorough documentation. A key part of this role involves contributing to next-generation scientific instruments that connect to remote computing resources, setting up test systems for developing and benchmarking machine learning pipelines, and building tools to manage end-to-end ML workflows.
  • Maintain and optimize existing data analysis workflows for performance, scalability, and reliability, including ML-based pipelines and real-time analysis tools, while employing modern software engineering principles.
  • Architect, develop, and integrate new algorithms and data processing pipelines in Python and C/C++ for LCLS scientific experiments, ensuring extensibility and maintainability.
  • Provide technical support to a diverse user community (internal teams, external collaborators, and students) to ensure effective use of software frameworks, ML, and HPC systems, and implement continuous improvement based on user feedback.
  • Implement best practices for reproducible scientific computing, including version control, testing, benchmarking, and automated deployments through continuous integration.
  • Leverage HPC ecosystems (e.g., MPI, SLURM) to handle large-volume datasets and complex simulations, incorporating strategies for distributed computing and parallelism.
  • Collaborate with instrument scientists and engineering teams to oversee and manage installations, instrumentation, and software integrations, ensuring alignment with evolving engineering standards.
  • Independently troubleshoot and resolve routine problems for scientists or engineers, leveraging root-cause analysis and diagnostic methodologies.
  • Lead or assist in planning, designing, and implementing new initiatives around edge computing, machine learning, and data analytics, delivering robust engineering solutions on schedule.
  • Document processes thoroughly and contribute to user training materials, fostering knowledge transfer and team-wide adoption of engineering best practices.
  • Other duties may also be assigned.
Loading...