Software Engineer II-III (4829)

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


Position Description:


Position Summary


Join the software development team that created and maintains the operational software for the ALMA Radio Telescope. The Atacama Large Millimeter/submillimeter Array (ALMA) is an array of 66 radio antennas located at 16,500 feet (5,000 meters) elevation in the remote Chilean Andes. Its scientific capabilities are, by a large factor, better than any other millimeter wave radio telescope. ALMA was commissioned in 2013 and is one of the largest ground-based astronomical projects in the world. ALMA is used to investigate the cosmic origins of the Universe, and is supported by a diverse technical team on four continents (North America, South America, Europe and East Asia).


We are seeking two (2) Software Engineers (II-III) to join the National Radio Astronomy Observatory (NRAO) North American (NA) ALMA Software Team in the Correlator Software Group. Collectively, the NA ALMA software team designs, implements and maintains the software used to operate the ALMA telescopes. This includes the software for automatically selecting what to observe (Scheduling software), software that decomposes high-level parameters into 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 on multiple continents. The software team frequently diagnoses and corrects difficult and subtle problems that can affect the telescope operations and data quality.


ALMA is currently in the planning stages of a system-wide upgrade that will initially double, and eventually quadruple, ALMA’s system bandwidth. NRAO is collaborating with international partners on the design and implementation of completely new Second Generation Correlator hardware and software. The North America ALMA correlator software team will be responsible for designing, implementing and supporting the ALMA Second Generation Correlator software. Successful applicants will have the opportunity to contribute to the next generation of significant software and hardware upgrades to the new ALMA correlator. We are a small team that values curiosity, diligence, and professional communication. There is potential to grow into leadership of significant software infrastructure upgrades, and to design, prototype, and install new software technologies. We operate in an environment of continuous upgrades to both ALMA and to our team’s skills.


Job Duties Summary


Initially you will join the ALMA Second Generation correlator software development team as we create the software for our brand-new correlator.  The successful applicants will work alongside our software engineers and with scientists, digital engineers, and operations staff both within NRAO and abroad.  From requirements capture and detailed design through all phases of implementation, these new team members will be involved in every aspect of the development process.


Communication is key when designing large, complex systems.  Successful applicants will participate in both face-to-face and virtual discussions, and in meetings and workshops where complex design decisions will be made.  Close collaboration will be essential as the team implements each subsystem, component, and interface.  We use Jira to organize our tasks, Confluence for offline discussions, and Slack and Zoom for collaboration.  Our new team members will utilize all these tools and more to effectively engage with their colleagues.


Testing is an integral part of the development process, and it is expected that a successful applicant will write and maintain software for automated testing. They will also help maintain the automated test systems which run every day.


Longer term, a successful applicant may move into designing, implementing, testing and maintaining a more diverse range of software in the NA ALMA software team, such as web-based services and user interfaces. This may require programming in additional languages, and require the research and use of new software technologies.




A successful applicant will:

  • Manage and contribute code to the Second-Generation ALMA Correlator Software project.
  • Gather requirements by working with engineers and scientists at multiple locations.
  • Be proactive in diagnosing and troubleshooting problems reported by teams on site during the testing of software.
  • Utilize continuous integration to automate builds and testing.
  • Participate in multi-country ALMA-wide software meetings.
  • Contribute in-depth technical analysis on software implementation and maintenance problems and trade-offs.
  • Communicate effectively with staff at all NRAO and ALMA sites.
  • Grow their expertise, collaboration and communication skills.
  • Take on additional development and management roles over time.


Each successful candidate may choose to work at any of our facilities: Charlottesville VA, Socorro NM, or Albuquerque NM.. The successful candidates will join a distributed 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.


In addition to competitive pay, NRAO provides excellent paid time off benefits (vacation and sick leave). Medical, dental and vision plans are effective on the first day of employment. NRAO’s retirement benefit contributes an amount equal to 10 percent of a qualified participant’s base pay. No contribution is required of the employee; we also offer an optional supplemental, tax-deferred plan for employee retirement contributions. Additionally, NRAO offers educational benefits and professional development programs.



Work Environment


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.  Must be able to operate a personal computer. May occasionally work at high altitudes.  Must be able to communicate effectively both verbally and in writing.



Position Requirements:



Minimum Education


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



Minimum Experience


At least one year of experience in software development.  In addition:

  • Strong experience with Linux or Unix operating systems
  • Understanding of object-oriented design and development
  • Experience developing software using C++
  • Experience with multithreaded, concurrent software for parallel processing
  • Experience with version control software, preferably git
  • Experience with testing methodologies
  • Experience debugging and profiling software systems
  • Strong interpersonal and communications skills
  • Experience in a distributed team working with large, complex applications



Preferred Experience


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

  • Experience with distributed software systems
  • Familiarity with Ethernet protocols
  • Familiarity with RoCE in high-speed Ethernet networks
  • Familiarity with Python
  • Familiarity with signal processing concepts
  • Familiarity with basic astronomical principles, and interferometry in particular



Application Instructions:


Apply online at the NRAO Careers page; upload CV/Resume and letter of application


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 [email protected]. PM20



The NRAO is an equal opportunity employer (M/F/D/V)