Controls Software Engineer
Listed on 2026-08-05
-
Software Development
Software Engineer
Controls Software Engineer
Lawrence Berkeley National Laboratory is hiring a Controls Software Engineer within the Engineering division. This position will plan, design, develop and test software systems or applications for software enhancements and new products. This position plays a key role in the design, development, and maintenance of advanced control systems for large-scale experimental facilities and scientific instrumentation. The engineer will work primarily with EPICS (Experimental Physics and Industrial Control System) and associated tools to ensure reliable and efficient operation of experimental equipment, data acquisition systems, and control networks for the ALS.
This position offers the opportunity to work at the forefront of scientific research, developing innovative solutions for cutting-edge experiments while collaborating with multidisciplinary teams. You will:
- Work on complex issues where analysis of situations or data requires an in-depth evaluation of variable factors.
- Determine methods and procedures on new assignments and may coordinate activities of other personnel (Team Lead).
- Develop and deploy control system software using EPICS and associated tools for the ALS.
- Act as a technical lead, maintainer and primary developer for the Accelerator Safety Configuration Control (ASCC) application which is used in the ALS control room.
- Define and maintain the overall system architecture to ensure scalability, reliability, maintainability, and security.
- Design and enhance interactive workflow tools, including safety forms, compliance checklists, schedules, and document repositories.
- Design and implement new components based on evolving requirements.
- Design, deploy, and maintain databases (SQL).
- Construct, enhance, and manage business logic code.
- Provide technical support, troubleshooting, and triage for issues.
- Design, maintain, and deploy software using modern unit testing and deployment techniques.
- Provide expertise and technical leadership in implementing web-based solutions.
- Provide solutions to current problems and contribute to improvement to existing control systems.
- Develop graphical user interfaces and loggers with standard EPICS tools.
- Assist with commissioning of controls and associated software tools with support from domain scientists.
- Maintain and generate documentation describing work done and systems built.
- Follow standard methodologies for software development in a collaborative environment.
- Successfully finish the safety training required by the Laboratory and employ those skills in daily practice.
- Assist with improvements to team processes including: source control, issue management, code review, documentation, and testing.
We are looking for:
Minimum of 8 years of related experience with a Bachelor's degree; or 6 years and a Master's degree; or equivalent experience. Demonstrated ability to lead the support and maintenance of operational computer systems. Knowledge and experience with front-end software development and UI best practices. Knowledge and experience with back-end software development and API design. Experience developing and maintaining SQL databases.
Experience with Angular and .NET frameworks. Experience with C# and JavaScript or Type Script. Knowledge and experience with software project management techniques such as revision control, build tools, issue tracking, continuous integration (CI) tools and methods. Strong analytical and problem-solving skills, with the ability to work on complex issues and to exercise judgment in selecting tools and approaches. Experience leading or serving as primary technical owner of a software system.
Experience managing software development in a team setting. Ability to work as part of a team, including the ability to interact well with external collaborators and scientists. Advanced knowledge of software engineering principles, including object-oriented design, modular software architecture, and best practices for maintainable and scalable systems. Knowledge of control systems used in scientific and engineering facilities, including distributed control architectures and instrumentation interfaces.
Knowledge of programming languages commonly used in control and automation systems such as Python, C/C++, or similar languages. Knowledge of Linux-based computing environments and system administration concepts relevant to control systems. Knowledge of industrial and scientific communication protocols used for device integration (e.g., TCP/IP, serial interfaces, fieldbus, or other device communication standards). Knowledge of data acquisition systems, instrumentation, and sensor integration used in experimental and engineering environments.
Familiarity with control system frameworks such as Experimental Physics and Industrial Control System (EPICS) or TANGO Controls.
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).