Software Engineer III-IV (4669)
Join the development team that created and maintains the software used to operate the ALMA Telescope. The Atacama Large Millimeter Array (ALMA) is an array of 66 radio antenna located high in the Chilean Andes. Its scientific capabilities are, by a large factor, better than any other millimeter wave radio telescope. It was commissioned in 2013 and is, to date, the largest ground-based astronomical project. ALMA is supported by a diverse team of people in 4 continents (North America, South America, Europe and Asia).
We are seeking a Software Engineer to join the North America (NA) ALMA software development team and work jointly with the NA and Europeans (EU) ALMA software teams. The NA software team is responsible for the data acquisition (Control and Correlator) and Scheduling software; the EU software team is responsible for user tools (proposal submission, tracking projects, quality assurance, etc). The NA data acquisition software is written in Java, C++, and Python, while the EU user tools are developed with Angular, Springboot, and Hibernate. The goal of this position is to design and develop software that bridges the two groups, both in functionality and technical expertise.
The successful applicant will have the opportunity to contribute to the next generation of significant software upgrades to the ALMA telescope. The potential exists to lead significant software infrastructure upgrades and tackle obsolescence by designing and prototyping new software technologies, building new web-based user tools for astronomers and operators, and interfacing with the next generation of ALMA system-wide hardware upgrades.
Job Duties Summary
The successful applicant will join the NA ALMA software team. The primary responsibility is the Observatory Monitor and Control (OMC) software. This software is used by array operators to monitor the ALMA telescopes, start and interact with the data acquisition software, and to configure various aspects of the array. This software is both a user-facing tool (EU) and connects with the data acquisition software (NA). Initially this position will focus on understanding the current software, fixing bugs, and completing upgrades to be compatible with newer versions of Java and RedHat. Ultimately, this position will be dedicated to redesigning the OMC to be a web-based application, depreciating aspects that are no longer used, and adding new features. The successful applicant will need to work with Chilean stakeholders to gather requirements, coordinate with developers in NA and EU, conduct automated testing, deliver software to the software test team, and support integration, verification, and validation testing in Chile.
Testing is an integral part of the development process and it is expected that the applicant will write and maintain test software that will be run in an automated way. They will also help maintain the internal test systems used, daily, for initial testing of the software. It is expected that the successful candidate will engage in technical discussions with colleagues at remote locations to help troubleshoot problems.
Longer term, this position will grow to encompass other software that bridges both user-facing tools, data acquisition, and data processing software. This includes, but is not limited to, expanding the workflow software, operator and engineering graphical user interfaces (GUIs), and GUIs used by astronomers to assess data quality.
The successful applicant will:
- Maintain and improve the current OMC used by the array operators at the ALMA Telescope
- Design and develop a new, web-based OMC that meets the current needs of the array operators
- Manage and contribute code to large projects within the ALMA code base
- Gather requirements by working with array operators, engineers and scientists at multiple locations
- Proactively diagnose and troubleshoot problems found in the verification and validation of software
- Utilize continuous integration to automate builds and testing
- Participate in multi-country ALMA-wide software meetings
- Communicate effectively with staff at all ALMA sites
This position will be located at one of the NRAO facilities in Charlottesville (VA), Socorro (NM), or Albuquerque (NM). For well qualified candidates, a remote work arrangement operating in the US/Eastern time zone may be considered. The successful candidate will join a team of professionals engaged in research and development in the fields of science, engineering, software development, and education. Work is typically performed in a research or development environment.
Bachelor's degree in computer science, engineering, scientific or related field.
At least three years of experience in software development. In addition:
- Familiarity with Linux or Unix operating systems
- Understanding of object-oriented design and development
- Experience developing software using Java
- Experience developing software in Python or C++
- Familiarity with web technologies
- Experience with version control software and testing methodologies
- Experience debugging and profiling software systems
- Strong interpersonal and communications skills
- Experience working with large, existing applications in a distributed team
- Willing to travel internationally and work at high altitudes
- Experience with UI and UX
- Familiarity with distributed software technologies
- Familiarity with Oracle databases (PL/SQL)
- Familiarity with basic astronomical principles, in particular interferometry, and observatory operations
- Ability to work with international colleagues
The Observatory requires staff to be fully vaccinated against COVID-19 to access our facilities. An offer of employment will be considered contingent until the selected applicant provides proof of vaccination. A selected applicant may request consideration for an accommodation for a disability or for a sincerely held religious belief.
Select the “Apply” button below. You will need to be prepared to upload a cover letter and your current resume.
The NRAO is an equal opportunity employer (M/F/D/V)