Software Engineers (two positions)
- Please send inquiries
about the program to
[email protected]
Astropy (Position 1)
POSITION SUMMARY
The Center for Computational Astrophysics (CCA) at the Flatiron Institute, an internal research division of the Simons Foundation, is seeking a full-time research software engineer to develop, maintain and contribute to community-oriented software projects in astronomy. The software engineer will principally support the Astropy Project and contribute to projects that align with the research directions of the CCA. More information about the CCA can be found on the CCA website. We expect the position to adapt over time to the needs of the broader astronomical community and CCA research community.
Research in astronomy and astrophysics depends critically on open source and other scientific software projects that are largely community driven (i.e., not developed or maintained by specific institutions). The primary role of this research software engineer position (approximately 60 percent of effort) is to support the Astropy Project. The Astropy Project is a community effort to develop a common core package for astronomy in Python and foster an ecosystem of interoperable astronomy packages. More information about the Astropy Project can be found on its website.
The other major role of this position is to support and contribute to projects that align with the CCA’s current research directions. This work will be in collaboration with CCA scientists and potentially other software developers throughout the Flatiron Institute. A companion webpage contains a few examples of potential projects, but these are intended to provide context and the list is not exhaustive.
ESSENTIAL FUNCTIONS AND RESPONSIBILITIES
Within the Astropy Project, the responsibilities will be as follows: (1) to contribute to key projects that expand the functionality and community reach of the software, (2) to improve the long-term stability and sustainability of the project, and (3) to help maintain and develop core infrastructure packages that benefit Astropy and the broader astronomical and Scientific Python communities.
The research software engineer will perform the following:
- lead and contribute to software efforts within the Astropy Project,
- support and contribute to projects that align with the research directions of the CCA,
- communicate open-source software best practices,
- interact with other Astropy developers on GitHub, Slack and in developer meetings, and
collaborate with Flatiron Institute’s Scientific Computing Core (SCC), as well as other centers within the institute and the larger scientific community, when relevant.
Opportunities for skill development in software development and scientific computing include mentoring by research scientists, discussions and tutorials with the CCA software community and the SCC, and support for attending external tutorials and conferences. The research software engineer will be part of a growing community of Flatiron Institute scientists and software engineers working on astronomical software, including Flatiron Software Research Fellows (postdocs), CCA-affiliated SCC scientists and other research software engineers in CCA. Members of this community will be encouraged to collaborate as well as to create and seek opportunities for skill development.
The research software engineer will report to a CCA research scientist (equivalent of faculty) and will join a growing team of research software engineers across the Flatiron Institute.
The position will be based in person at the Simons Foundation office in New York City.
QUALIFICATIONS
Education
- B.S., M.S. or Ph.D. in astronomy, physics, computer science, mathematics, statistics or a related technical discipline.
Essential Qualifications
At least three years of experience with software development in a research context, including: - Experience doing software development in a research environment (such as in academic contexts like graduate school and postdoctoral appointments, or research-oriented industry).
- Experience working with the scientific Python ecosystem (NumPy, SciPy, Matplotlib, etc.).
- Experience with collaborative version control systems (especially Git and GitHub).
- Experience working with collaborative software engineering practices, including coding standards and code review.
- Experience writing documentation and an interest in supporting user communities.
- Experience with project management and developing multiple concurrent projects.
- Technical and scientific curiosity with a collaborative attitude.
Desired Qualifications - Proficiency with software development in a compiled language (C, C++, Rust, Cython, Fortran, etc.).
- Experience contributing to the scientific or astronomical Python ecosystem, including a working knowledge of continuous integration systems (e.g., GitHub Actions), software testing (e.g., pytest), and using automated documentation infrastructure (e.g., Sphinx).
- Experience with HPC, GPU and/or code profiling and optimization.
- Working knowledge of applied mathematical concepts and numerical methods.
- Working knowledge of astronomy and physics core concepts.
- Experience querying and transforming data in databases (SQL, Elasticsearch, etc.) and files (CSV, HDF5, etc.).
COMPENSATION AND BENEFITS
- The full-time annual compensation range for this position is $130,000–$170,000, depending on experience.
- In addition to competitive salaries, the Simons Foundation provides employees with an outstanding benefits package.
MESA (Position 2)
POSITION SUMMARY
The Center for Computational Astrophysics (CCA) at the Flatiron Institute, an internal research division of the Simons Foundation, is seeking a full-time research software engineer to develop, maintain and contribute to the community-oriented software instrument tool MESA (Modules for Experiments in Stellar Astrophysics), and contribute to projects that align with the research directions of the CCA. More information about the CCA can be found on the CCA website. We expect the position to adapt over time to the needs of the broader astronomical community and CCA research community.
Research in astronomy and astrophysics depends critically on open source and other scientific software projects that are largely community driven (i.e., not developed or maintained by specific institutions). The primary role of this position (approximately 60 percent of effort) is to help support the community-oriented software instrument tool MESA.
The other major role of this position is to support and contribute to projects that align with the current research directions of the CCA.
ESSENTIAL FUNCTIONS AND RESPONSIBILITIES
The CCA seeks a full-time research software engineer and scientific programmer to support the MESA software instrument tool, and to help build, improve and support software efforts within the center.
MESA is a suite of open-source libraries extensively used in computational stellar astrophysics. It uses adaptive mesh refinement and sophisticated timestep controls and supports shared memory parallelism based on OpenMP. Its wide-ranging capabilities allow the simulation of diverse stellar evolution scenarios — from low-mass to massive stars — including advanced evolutionary stages and binary interactions. See https://docs.mesastar.org/en/latest/ for more information about MESA.
Within the MESA Project, the successful candidate will be responsible for the following:
- Technical Management and Enhancement: Adapting MESA to new technologies and evolving requirements such as compiler updates, library evolutions, operating systems progressions and hardware advances.
- Code Maintenance: Providing daily care and enhancement of the MESA source code in collaboration with the mesa-developer team and the MESA user community.
- Testing: Participating in the daily MESA testing framework in partnership with the mesa-developer team.
- Product Release: Overseeing and collaborating on the public releases of the source code to the MESA community.
- Community Support: Responding agilely to the software needs of the MESA user community.
- Team Partnership: Becoming a key partner of the mesa-developer team, with a focus on horizontal collaboration rather than hierarchical reporting.
Opportunities for skill development in software development and scientific computing include mentoring by research scientists, discussions and tutorials with the CCA software community and the institute’s Scientific Computing Core (SCC), and support for attending external tutorials and conferences. The research software engineer will be part of a growing community of Flatiron Institute scientists and software engineers working on astronomical software, including Flatiron Software Research Fellows (postdocs), CCA-affiliated SCC scientists, and other research software engineers in CCA. Members of this community will be encouraged to collaborate as well as to create and seek opportunities for skill development.
The research software engineer will report to a research scientist (equivalent of faculty) at CCA and will join a growing team of research software engineers across the Flatiron Institute. The position will be based in person at the Simons Foundation office in New York City.
QUALIFICATIONS
Education
- B.S., M.S. or Ph.D. in astronomy, physics, computer science, mathematics, statistics or a related technical discipline
Essential Qualifications
At least three years of experience with software development in a research context, including:
- Experience doing software development in a research environment (such as in academic contexts like graduate school and postdoctoral appointments, or research-oriented industry).
- Proficiency with software development in compiled languages (Fortran 95, C, C++ etc.)
- Experience with parallel programming (e.g., OpenMP, MPI).
- Proficiency with collaborative version control systems (especially Git and GitHub).
- Experience working with collaborative software engineering practices, including coding standards and code review.
- Experience writing documentation and an interest in supporting user communities.
- Experience with project management and developing multiple concurrent projects.
- Technical and scientific curiosity with a collaborative attitude.
Desired Qualifications
- Experience with the MESA software instrument.
- Experience with commonly used high-level languages (Python, Julia, MATLAB, etc.).
- Experience with HPC, GPU and/or code profiling and optimization.
- Working knowledge of applied mathematical concepts and numerical methods.
- Working knowledge of astronomy and physics core concepts.
COMPENSATION AND BENEFITS
- The full-time annual compensation range for this position is $130,000–$170,000, depending on experience.
- In addition to competitive salaries, the Simons Foundation provides employees with an outstanding benefits package.
THE SIMONS FOUNDATION’S DIVERSITY COMMITMENT
Many of the greatest ideas and discoveries come from a diverse mix of minds, backgrounds, and experiences, and we are committed to cultivating an inclusive work environment. The Simons Foundation actively seeks a diverse applicant pool and encourages candidates of all backgrounds to apply. We provide equal opportunities to all employees and applicants for employment without regard to race, religion, color, age, sex, national origin, sexual orientation, gender identity, genetic disposition, neurodiversity, disability, veteran status, or any other protected category under federal, state and local law.
- Please send inquiries
about the program to
[email protected]
- Please send inquiries
about the program to
[email protected]
For each category below (infrastructure, open-source project, science collaboration and domain-focused software project), we list one example project that would involve collaboration with CCA scientists and software-oriented staff and/or collaboration with Scientific Computing Core (SCC) software engineers. We expect more projects to emerge organically at the CCA, SCC, and in collaboration with the software engineer, all of which will provide the software engineer with new opportunities.
Example infrastructure project: Flathub
Flathub is a science platform that enables interactive filtering, exploration and downloading of data from simulated and other hosted datasets. The platform currently hosts a number of simulations produced by CCA scientists or participating collaborations. It also serves large stellar catalogs from major astronomical surveys like the Gaia Mission. Flathub is currently supported by software engineers in the SCC. The main backend of Flathub is an Elasticsearch database with a Haskell interface. The database stores numeric data and the Haskell layer exposes an API to Javascript and Python frontends. Lots of opportunities exist to expand the data types that can be stored in the Flathub backend and provide connections between new kinds of datasets (like particle data). On the frontend, potential projects include adding visualization capabilities for spectral data. Other improvement opportunities include user experience and interface design along with engagement with communities that use and share data through Flathub.
Example open-source project: HEALPix
HEALPix is a scheme for pixelization of data on the sphere and associated software packages. HEALPix underlies many observational astronomy datasets and is even used in computational astrophysics when representing quantities with spherical geometry (e.g., radiative transport in hydrodynamical simulations). As HEALPix was released twenty-five years ago, many areas of astrophysics would benefit from its modernization and improvement, particularly in terms of performance, visualization and integration with automatic differentiation packages like JAX, PyTorch or Tensorflow. This would have applications to galaxy surveys, weak lensing and CMB, as well as computational methods, harmonic analysis, spherical convolutions and machine learning.
Example science collaboration: Beyond Basis Function Expansions
The Beyond Basis Function Expansions (BBFE) collaboration aims to revolutionize the discovery of dynamical mechanisms in galactic dynamics from large-scale simulations by integrating computational and mathematical ideas from spectral analysis. The collaboration uses interdisciplinary methods that draw inspiration from applied math, computer science and earth science to simultaneously analyze trends in space and time. We utilize the EXP C++ library, which efficiently implements basis-function methods using hybrid CPU and GPU code alongside Python bindings.
Although EXP is a mature library, we recognize the potential for further optimization, especially in CPU and GPU integration, and multi-node communication, which would significantly enhance scalability in high-performance computing (HPC) environments. By focusing on CUDA kernel optimization and conducting a thorough software architecture review, we aim to boost overall efficiency. In the long term, our vision includes planning for the next generation of special-purpose computational hardware and software. Another aspect of our ongoing efforts involves the further development of a Python interface for N-body analysis. We hope to improve parallelization and GPU support, along with tighter integration with standard Python astronomical environments, such as Astropy and Gala. Our ultimate goal is to empower researchers with powerful tools and intuitive interfaces, enabling groundbreaking discoveries from our large investment in numerical simulation.
Example domain-specific software project: Gala
Gala is a Python package for enabling common tasks needed in galactic dynamics research. The code primarily uses Python to provide a flexible, user-friendly interface that interacts with wrappers around low-level code (primarily C) to enable fast computations. We would like to replace the C backend with a full rewrite built on modern C++ for more flexibility and interoperability with other dynamics libraries (e.g., EXP, as mentioned above, and Agama).