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
Your Qualifications and Job Requirements:
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.