Software Engineer II-III (4470)

Computers/Software Charlottesville, Virginia Charlottesville, Virginia Socorro, New Mexico Albuquerque, New Mexico


Position Description:


Position Summary

Join the development team that created and maintains the online 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 ALMA Control Software development team. Collectively, the online software team designs, implements and maintains online software used to operate ALMA. This includes the software for automatically selecting what to observe (Scheduling software), software that decomposes the high level parameters to the commands sent to each piece of hardware (Control software) and software that collects the data and processes it down to a manageable volume (Correlator software). This requires close interaction with a diverse range of people in a number of continents. The software team frequently diagnoses and corrects difficult & subtle problems that can affect the data quality.


The successful applicant will have the opportunity to contribute to the next generation of significant software upgrades to the ALMA telescope, which will incorporate new hardware and software. The potential exists to lead significant software infrastructure upgrades and tackle obsolescence by designing and prototyping new software technologies.


Job Duties Summary

The successful applicant will join the ALMA Control software team. The position has two main responsibilities: the successful applicant will be responsible for maintaining and improving applications written in C++11 that configures, controls and monitors the hardware devices on the ALMA telescopes. They will develop new features and improve and maintain others already implemented. Secondly, the successful candidate will maintain and develop graphical user interfaces (GUIs) used by scientists, operators, and other stakeholders. They will maintain the current GUIs written in a combination of Swing, JavaFX, Eclipse RPC and web applications. They will design and develop new GUIs to take advantage of changing requirements and new software technologies.


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, the successful applicants may move into designing, implementing, testing and maintaining a more diverse range of software in the ALMA online software team. This may require programming in Python, React, Angular, and/or JavaScript and require the use of other software technologies.



The successful applicant will:

  • Maintain and improve C++11 applications that control devices on the ALMA Telescopes
  • Maintain and improve GUIs in Swing, JavaFX, Eclipse RPC and web applications used by operators and scientists
  • Manage and contribute code to large projects within the ALMA code base
  • Gather requirements by working with 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


Work Environment

This position will be located at one of the NRAO facilities in Charlottesville (VA), Socorro (NM), or Albuquerque (NM). 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.


Position Requirements:


Minimum Education

Bachelor's degree in computer science, engineering, scientific or related field


Minimum Experience

At least three years of experience in software development or.  In addition:

  • Familiarity with Linux or Unix operating systems
  • Understanding of object-oriented design and development
  • Experience developing software using C++11
  • 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
  • Travel internationally and work at high altitudes


Preferred Experience

  • Graphical user interface development
  • Familiarity with web applications
  • Familiarity with Java, XML & CORBA technologies
  • Familiarity with basic astronomical principles, in particular interferometry, and observatory operations


Application Instructions:


Select the "Apply" button below..  Please be prepared to upload your current CV/Resume and a letter of application describing interest and suitability for the position.


Equal Opportunity Employer Statement:


AUI is an equal opportunity employer.  Women, Minorities, Vietnam-Era Veterans, Disabled Veterans, Veterans and Individuals with Disabilities are encouraged to apply.  To view our complete statement, please visit  If you require reasonable accommodation for any part of the application or hiring process due to a disability, you may submit your request by sending an email to