Fermilab's Accelerator Directorate operates, maintains, and improves the laboratory's accelerator complex, beam lines, and beam targets, and is looking for a Software Developer II to help develop and maintain software which interfaces Fermilab’s accelerator control system with a wide variety of beam instrumentation
Requirements
- At least 3 years of experience programming in C/C++ and/or Rust
- At least 3 years of experience with network programming with sockets with TCP/IP and UDP
- Strong practical familiarity with EPICS controls software toolkit
- A rudimentary level of experience with Linux system administration
- Experience interfacing with external devices from an OS such as Linux
- Deep knowledge and practical experience with Docker and/or Podman for containerization, including optimizing container sizes and multi-stage builds
- Experience in establishing CI/CD pipelines, particularly for embedded or controls systems
Responsibilities
- Work with Controls Department engineers and developers as a member of the PIP-II project team to design, prototype, and develop data acquisition systems that satisfy user requirements
- Establish and maintain a sustainable CI/CD process for EPICS IOCs, leveraging Docker and/or Podman
- Optimize container sizes and stages, relating them to development containers and developer quality of life, as well as the modularity and extensibility of containers to manage complexity across the accelerator complex
- Contribute to the selection and implementation of modern tooling and practices, with a focus on EPICS
- Develop and maintain software which interfaces Fermilab’s control system with commercial and proprietary accelerator hardware
- Participate in modernization efforts for control system software, particularly for embedded systems
- Participate in technical conferences with opportunities to publish R&D results
Other
- High school diploma with 5+ years of experience developing complex software projects
- Bachelor’s degree in computer science or related field with 3+ years of experience developing complex software projects preferred
- Ability to communicate effectively in English both verbally and in writing
- Must be self-motivated, have good interpersonal skills and time management skills to work with diverse groups of managers, engineers, and scientists
- Onsite: This is an onsite role, and the candidate must be able to work from our Batavia office