The Data Analysis Tools Branch at the Space Telescope Science Institute (STScI) seeks a junior or intermediate 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. We offer an excellent compensation package, with generous benefits, tuition reimbursement, flexible work schedules, and a stimulating and diverse work environment.
Your Primary Role & Responsibilities Include:
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 contribute not only to software but also to algorithm development, user support, training, and software engineering process improvement. Members of our team regularly give presentations within the Institute and at scientific and technical conferences. You will collaborate with a team that is passionate about the work they do in support of astronomers around the world.
Your Essential Job Functions:
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 communicate and interact with the open-source community in development forums such as github, as well as in scientific and technical papers and conference presentations.
Your Qualifications & Requirements:
Junior Software Engineer: A minimum of 2-4 years of experience in software development
Intermediate Software Engineer: A minimum of 5-8 years of experience in software development, with evidence of significant contributions to and responsibility for major successful software projects
We are looking for applicants with experience with the following:
You will work principally in advanced Python, but expertise in more than one language will be advantageous. You will use context managers, exception handling, iterators, decorators, closures and lambda functions, and threading. You are comfortable with writing unit tests and test-driven development. You will also integrate or port prototypes from other languages such as IDL, Mathematica, or MATLAB.
You have proven success through the full software development life-cycle. This includes inception through operations and maintenance, requirements elicitation, collaborative design and iterative development, continuous integration, automated testing, and deployment.
Ideally, you have practical experience with agile development and formal project management practices. Experience with feature branching in git, or similar experience with another modern system is essential.
While the specific applications will vary depending on your background and the needs of the missions, it is important that you have demonstrated professional experience in some area of scientific computing such as image processing, spectroscopy, photometry, astrometry, general signal processing, modeling, and statistics, or numerical simulations.
Bachelor’s degree in Computer/Electrical Engineering, Software Engineering, Computer Science, Physics or Astronomy; advanced degreepreferred for the Intermediate Software Engineer. Education or professional background in astronomy or software development in a research environment would be helpful.
This position requires US Citizenship or Permanent Residence in order to meet ITAR requirements.