Systems Software Engineer

Space Telescope Science Institute

Direct Entry Job Permanent Baltimore, Maryland, USA

Uploaded 28 May 2019

Job Description

The Data Analysis Tools Branch at the Space Telescope Science Institute (STScI) seeks a Systems Software Engineer to help advance data-analysis tools for the James Webb Space Telescope and other missions. STScI is the science operations center for several NASA missions, including the Hubble Space Telescope, the most famous space observatory in history. We also lead the science and mission operations for the James Webb Space Telescope (JWST), planned to launch in 2021 and will perform parts of the science operations for the Wide Field Infrared Survey Telescope (WFIRST), in formulation for launch in the mid-2020s. 

You will be joining a group dedicated to developing cutting-edge software to enable scientific breakthroughs. Our data-analysis software is built primarily in python, with C providing performance enhancements where practical. STScI has been a major contributor to the open-source scientific python software stack, including numpy, scipy, matplotlib and Astropy. We are incorporating Jupyter notebooks in data-analysis applications and developing and supporting JupyterLab environments in the cloud.

You will collaborate with a team that is passionate about the work they do in support of astronomers around the world.STScI offers an excellent and generous benefits package, tuition reimbursement, flexible work schedules, and a stimulating and diverse work environment. Relocation assistance may be available. Explore our benefits:

Essential Functions:

We are particularly interested in candidates who can play a major role developing and maintaining some of the deep infrastructure of this software stack. This includes continuing to develop the Advanced Scientific Data Format (ASDF), as well as associated development of open-source schema to facilitate data interchange between observatories. Such work benefits from a strong computer-science background and does not require much or any astronomy background.

  • You will design, develop, test and deploy software to assist astronomers in analyzing astronomical data, in close collaboration with STScI’s technical and scientific staff
  • You will help maintain and extend the current packages as well as build new ones
  • You will contribute not only to software but also to algorithm development, user support, training, and software engineering process improvement
  • You will communicate and interact with the open-source community in development forums such as GitHub, as well as in scientific and technical publications and at conferences

Person Specification

We are looking for applicants with the following work experience:

  • Proficiency in advanced Python as well as at least one compiled language such as C, C++ (preferred), or Java or FORTRAN
  • Using context managers, exception handling, iterators, decorators, closures and lambda functions, and threading
  • Comfortable with writing unit tests and with test-driven development
  • Comfortable developing primarily in and for a Unix/Linux environment (experience with supporting Python on Windows is a plus)
  • Experience writing technical documentation using at least one of the Python documentation frameworks
  • Experience with software library development and library API design and have developed and maintained large software projects with complicated interacting components, preferably in Python
  • Proven success through the full software development lifecycle. This includes inception through operations and maintenance, requirements elicitation, collaborative design and iterative development, continuous integration, automated testing, and deployment
  • Familiarity with git workflows and with at least one continuous-integration framework
  • Familiarity with both binary data representations in CPU memory and with data-serialization standards such as XML, JSON and YAML
  • Ideally you have practical experience with agile development and formal project management practices.

Bachelor’s degree in Computer/Electrical Engineering, Software Engineering, Computer Science, Physics or Astronomy; advanced degree preferred. For this position, a strong software development background is more important than a background in astronomy or data analysis. Note: Substitution of additional relevant education or experience for stated qualifications will be considered.

To Apply: Share your experience by completing an on-line application. Please upload a cover letter and resume in one document for review. Applications received by June 20, 2019 will receive full consideration.