Senior Scientific Software Engineer

Devens, MA
R&D – Scientific Software /
Full-time /
Hybrid
The Scientific Software team at CFS writes software to support many different teams across CFS ranging from R&D to operations. We are seeking two Senior Scientific Software Engineers who will collaborate closely with science, engineering, and manufacturing experts at CFS and MIT. Their primary responsibilities will include identifying data and modeling requirements, and subsequently leading the development of robust, scalable software solutions tailored to the needs of our diverse teams.  They will also provide software support for R&D analysis, with an emphasis on cross-training and utilizing technical skills from fields other than software.
 
During their first year with CFS, the new Scientific Software Engineer will work on one of these topics:
Topic 1: Design and simulation tools for superconducting magnets
Topic 2: Pulse planning, simulation and physics collaboration framework for the SPARC tokamak

This team member will:

    • Extract software-compatible models/analyses from real-world physical problems - Discuss the problem with domain experts to determine the requirements for the model and what simplifications can be made
    • Construct new company-internal software products implementing those models/analyses
    • Help scientists and engineers to incorporate their analysis scripts into high-quality software, and help them to automate their workflows
    • Implement CI/CD processes to reduce maintenance overhead and error rates
    • Operate resulting software, generate visualizations, and communicate results

The ideal candidate will have most, if not all, of these requirements:

    • Bachelor’s degree in a technical field preferred
    • Demonstrated drive and self-education (e.g. graduate research, research publications, well-documented side projects, student engineering teams, ambitious work projects, entrepreneurship)
    • Brought several software projects (or major features of existing projects) from conception through release in a software engineering team
    • Engineering or physics analysis in high-consequence environments
    • Demonstrated ability to quickly learn about new technical skills and engineering sub-disciplines
    • Programming language: Python
    • CI/CD processes, linting, unit testing, software documentation, programming to a style standard
    • Numerical methods: algorithms for solving systems of equations, differential equations, and optimization

Additional preferred experience and/or qualifications:

    • Designed and built multiple systems that involved engineering tradeoffs and produced rapid feedback from the physical universe (e.g. student engineering teams, graduate research, work project), preferably as a technical lead
    • Programming language: Rust or C++
    • Finite element methods
    • Familiarity with electromagnetics and thermodynamics
    • At least one technical specialization other than software
    • Perform activities such as typing or sitting for extended periods of time
    • Dedication to safety to mitigate industrial hazards that may include heat, cold, noise, fumes, strong magnets, lead (Pb), high voltage, and cryogenics
    • Willingness to travel or work required nights/weekends/on-call occasionally
    • #LI-Hybrid