Scientific Software Developer

Apply Now

Company: 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 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.

Your specific responsibilities include:
  • 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.
To be successful in this position you will bring:
  • Bachelor's degree in physics, chemistry, engineering, science, or related field and three years of relevant experience; or a combination of education and relevant experience.
  • Demonstrated experience in designing, developing, testing, and deploying applications.
  • Demonstrated knowledge of advanced scientific or engineering principles; experience designing, coding, and debugging data analysis software.
  • Proficiency in Python (numpy, scipy, pandas) and familiarity with C/C++; experience with machine learning frameworks (TensorFlow, PyTorch) is highly desirable.
  • Working knowledge of HPC software deployment, scheduling systems (SLURM), and parallel programming libraries (MPI).
  • Experience with collaborative, version-controlled development (Git) and applying software engineering best practices'such as continuous integration, automated testing, and code reviewsin a research or laboratory setting.
  • Strong problem-solving skills and the ability to adapt to rapidly evolving technical requirements.
  • Excellent communication skills and the ability to work effectively within multidisciplinary teams.
  • Ability to analyze systems and data pipelines and propose solutions that leverage emerging technologies.
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, maintaining an open outlook while adjusting and accommodating changes.
  • Communication: Ensures effective information flow to various audiences and creates and delivers clear, appropriate written and spoken messages.
  • Relationships: Builds relationships to foster trust, collaboration, and a positive climate to achieve common goals.
Job-Specific Competencies
  • Background in x-ray, material science, or ultrafast spectroscopy experiments.
  • Experience with scientific instrument control systems (e.g., EPICS, IOCs) or domain-specific data processing tools.
  • Familiarity with setting up or running machine learning pipelines for real-time data analysis.
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.
Work standards:
  • 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 2
Grade: J, Job Code: 4822
Employment Duration: Regular continuing

The expected pay range for this position $131,992 - $160,555 per annum. SLAC National Accelerator Laboratory/Stanford University provides pay ranges representing its good faith estimate of what the university reasonably expects to pay for a position. The pay offered to a selected candidate will be determined based on factors such as (but not limited to) the scope and responsibilities of the position, the qualifications of the selected candidate, departmental budget availability, internal equity, geographic location and external market pay for comparable jobs.

Similar Jobs