Controls Software Engineer
Lawrence Berkeley National Laboratory5 months ago
San Francisco, CA, United States
Hybrid
Full-time
Junior Level (1-3 years)
Job Description
Position Overview
Berkeley Lab's Engineering Division is seeking an innovative and creative Controls Software Engineer to join the Beamline Controls Group at the Advanced Light Source (ALS). With a major equipment upgrade on the horizon, you will design and implement new control systems that enhance scientific capabilities and support groundbreaking research. In this role, you will work closely with ALS scientists to solve unique challenges in instrumentation, data acquisition, and motion control.
Key Responsibilities
- Develop new features for control systems.
- Maintain existing control software for x-ray beamlines and measurement devices.
- Create software drivers for motor controllers, sensors, cameras, and instruments.
- Design new software features and equipment integrations based on scientists' requests.
- Capture requirements from scientists and document systems from code comments to design specifications.
- Develop user interfaces and assist in commissioning new installations including wiring reviews and initial startups.
- Follow collaborative software development methodologies and complete required safety training.
- Present work to ALS staff and collaborate with other Scientific User Facilities.
Required Qualifications
- Controls Software Engineer Level 2:
- Bachelor’s Degree plus 5 years of related experience, Master’s Degree + 3 years, or equivalent work experience.
- 4+ years of experience with Python.
- 2+ years of experience with an additional language (e.g., C++, Rust, Typescript, Swift, Kotlin, LabVIEW, or others).
- Experience with distributed control systems.
- Strong analytical and problem-solving skills with proficiency in standard algorithms and data structures.
- Familiarity with software project management tools (revision control, build tools, issue tracking, CI tools).
- Experience with system integrations (sensors, instruments, motor controllers), analog and digital data acquisition, networking protocols, web development, and databases.
- Excellent organizational skills and ability to work well as a team player with external collaborators and scientists.
- Controls Software Engineer Level 3:
- Bachelor’s Degree plus 8 years of related experience, Master’s Degree + 6 years, or equivalent work experience.
- 5+ years of experience with Python.
- 5+ years of experience with an additional language (e.g., C++, Rust, Typescript, Swift, Kotlin, LabVIEW, or others).
- Proficiency in both Linux and Windows environments.
- 3+ years of experience with EPICS or TANGO control systems.
Preferred Qualifications
- Expertise in object-oriented design patterns.
- Experience with Python asyncio.
- Familiarity with the Bluesky control project.
Compensation
- Controls Software Engineer Level 2: Annual salary ranges from $132,000 to $161,000 (overall range: $117,132 to $197,676).
- Controls Software Engineer Level 3: Annual salary ranges from $157,000 to $192,000 (overall range: $139,440 to $235,308).
Benefits & Perks
- Full-time 2-year term appointment with a possibility of extension or conversion to a career appointment based on performance and operational needs.
- Eligible for a hybrid work schedule combining teleworking with on-site work at Lawrence Berkeley National Lab (residency within 150 miles required).
- This position may be subject to a background check.
Required Skills
Linux
User Interface Development
Networking Protocols
Windows
EPICS/TANGO
C++
Object-Oriented Design
Software Project Management
Data Acquisition
Distributed Control Systems
Python