Scientific Software Engineer
Role details
Job location
Tech stack
Job description
Lawrence Berkeley National Laboratory's (Berkeley Lab) Advanced Light Source (ALS) Division has an opening for a Scientific Software Engineer to work within ALS Photon Science Development (PSD) and ALS Photon Science Operations (PSO) groups. This position will be a part of a team developing data orchestration tools to work with data from high-speed detectors, managing data/metadata, apply data analysis and reduction algorithms and create user-facing applications, following FAIR (Findable, Accessible, Interoperable, and Reusable) principles. The position works collaboratively with, or under direction of, staff, scientists, and external collaborators to derive solutions applicable to a diverse set of instruments and computational environments., * Design and develop data management services that support data generated by thousands of visiting researchers.
- Build browser-based applications and user interfaces for scientific data analysis and workflow management.
- Design, deploy, and maintain SQL and NoSQL databases used to manage ALS data and metadata.
- Develop, test, deploy, and maintain software using modern engineering practices, including unit testing and automated deployment.
- Create clear, user-friendly documentation, including software guidelines, tutorials, and maintenance materials.
- Develop systems for managing, validating, and publishing data and metadata in alignment with established standards and FAIR principles.
- Implement and improve continuous integration and deployment workflows across new and existing code repositories.
- Troubleshoot and resolve issues related to data management systems and software applications.
- Collaborate with other Scientific User Facilities through shared open-source software projects, including code development, peer review, and coordination across teams.
- Present work and technical solutions to internal and external audiences as needed.
- Partner closely with ALS beamline scientists to design and deliver software solutions that support scientific operations and research needs.
- Provide technical expertise in the design and implementation of web-based software solutions.
- Lead complex software projects, including evaluating technology options and guiding solutions from design through deployment., * Appointment type: This is a full-time career appointment, exempt (monthly paid) from overtime pay.
- Salary range: The expected salary for this position is $139,440 - $174,312, which depends upon the candidate's skills, knowledge, and abilities. This includes education, certifications, and years of experience.
- Background check: This position is subject to a background check. Any convictions will be evaluated to determine if they directly relate to the responsibilities and requirements of the position. Having a conviction history will not automatically disqualify an applicant from being considered for employment.
- Work modality: This position is eligible for a hybrid work schedule - a combination of teleworking and performing work on site at Lawrence Berkeley National Lab, 1 Cyclotron Road, Berkeley, CA. This position requires onsite work generally 3 days per week. Individuals working a hybrid schedule must reside within 150 miles of Berkeley Lab.
Requirements
- Bachelor's degree in computer science or a related field and a minimum of 8 years of related experience, or a Master's degree in a related field and a minimum of 6 years of related experience.
- At least 3 years of experience working with one or more web frameworks, including single-page application frameworks such as React, Vue, or Angular, and/or server-side frameworks such as Django, Ruby on Rails, ASP.NET, or Spring.
- At least 5 years of experience developing database applications using SQL and/or NoSQL databases.
- At least 5 years of professional software development experience in languages such as Python, C, C++, C#, or Java.
- Experience with Continuous Integration systems like Github Actions.
- Experience with one or more container deployment systems such as Podman, Docker and Kubernetes.
- Knowledge and experience with front-end and back-end software development.
- Knowledge of software development and project management practices, including version control, build tools, issue tracking, and continuous integration methods.
- Strong analytical and problem-solving skills, with the ability to work on complex issues and to exercise judgment in selecting tools and approaches.
- Strong organizational skills and attention to detail.
- Ability to work effectively in a team environment and collaborate successfully with scientists and external partners.
- Deep understanding of one or more programming languages (e.g. python, ruby, java, javascript/node).
- Deep understanding of database management systems.
- Ability to deploy software in container orchestration environments like Compose and Kubernetes.
- Demonstrated ability to lead the development of complex software systems and guide projects from design through deployment, including coordinating work across multiple developers.
Desired skills/knowledge:
- Experience working in a scientific research setting.
- Experience with OIDC for authentication.
- Experience creating data analysis methods and procedures.
- Experience with workflow/orchestration systems like Prefect, Airflow.
- Experience with HPC systems.