Software Engineer II-III

Associated Universities Inc.Green Bank, WV
4d$60,000 - $120,000Remote

About The Position

The National Radio Astronomy Observatory (NRAO) is an exciting and prestigious research facility that plays a vital role in the study of the universe. The Observatory operates a variety of radio telescopes that span the globe, including the famous Very Large Array (VLA) in New Mexico, the Green Bank Telescope in West Virginia, the Very Long Baseline Array (VLBA) across North America, and the Atacama Large Millimeter/submillimeter Array (ALMA) in Chile. These telescopes are among the most advanced in the world, allowing astronomers to explore the universe in unprecedented detail. The Next Generation Very Large Array (ngVLA) is a transformative astronomical observatory designed to deliver science-ready data products to a broad community of users. The ngVLA is in the development phase of the project lifecycle. The computing resources needed to support data processing for ngVLA operations is significantly larger and more complicated than any existing NRAO facilities. Therefore, NRAO has partnered with the Texas Advanced Computing Center (TACC) to design and prototype the technical infrastructure and data processing software to support ngVLA operations. At NRAO, we are recruiting an experienced Scientific Software Engineer to design, implement, optimize, and maintain scientific applications and data-processing software executed on large-scale high-performance computing (HPC) systems. This role will prototype, develop, benchmark and optimize the Radio Astronomy Data Processing Software (RADPS) in collaboration with TACC. The role requires demonstrated proficiency in Python and C++, experience with parallel and distributed computing frameworks, and the ability to collaborate closely with domain scientists, systems engineers, and HPC support personnel. The successful candidate will contribute to the full software lifecycle -- from requirements analysis and algorithmic design through implementation, testing, optimization, and long-term maintainability -- within a performance-critical, research-driven environment. This position ideally will be based either in Albuquerque, NM, or Socorro, NM but could also be based at our Charlottesville, VA or Green Bank, WV locations. For well qualified candidates, a remote work arrangement may be considered.

Requirements

  • You have a bachelor’s degree in Computer Science, Physics, Engineering, Applied Mathematics, or related field
  • You have at least one or more years of experience in the development of software applications
  • Strong proficiency in Python (scientific stack: NumPy, SciPy, pandas, xarray, etc.) and modern C++ (C++14/17/20).
  • Demonstrated experience developing scientific or numerical software for HPC systems.
  • Experience with parallel programming paradigms (e.g., MPI, OpenMP) and performance-profiling tools.
  • Familiarity with Linux development environments, version control (Git), software build systems, and automated testing frameworks.
  • Ability to communicate effectively with both technical and scientific stakeholders.

Nice To Haves

  • While not required, you may have an advanced degree in a related field (Ph.D. preferred for research-intensive domains).
  • While not required you may have three or more years of experience, candidates with progressively more experience will be considered for a higher-level position.
  • Experience with GPU programming or other accelerator architectures.
  • Prior contributions to open-source scientific computing libraries.
  • Experience with workflow orchestration frameworks and HPC schedulers (e.g., Slurm, PBS, HTCondor).
  • Background in numerical methods, computational physics, signal processing, or other scientific domains relevant to the organization.
  • Experience with large-scale data management strategies and parallel I/O libraries (HDF5, ADIOS, NetCDF).
  • Familiarity with container technologies (Singularity/Apptainer, Docker) and reproducible science practices.
  • Experience with software engineering principles, working within an Agile framework, and experience in the complete product lifecycle are preferred.

Responsibilities

  • Develop high-performance scientific software in C++ and Python, including numerical algorithms, data-analysis pipelines, and simulation components.
  • Implement scalable solutions leveraging modern parallel programming techniques (MPI, OpenMP, CUDA/HIP, OpenACC).
  • Build Python interfaces, bindings, and workflow tooling around high-performance C++ cores.
  • Design modular, maintainable, and testable codebases following established software engineering best practices.
  • Profile, benchmark, and optimize HPC applications for multi-core, many-core, GPU-accelerated, and distributed-memory systems.
  • Improve algorithmic efficiency, memory usage, I/O patterns, and data-movement behavior to achieve target throughput and scalability.
  • Work with HPC system engineers to tune application performance for specific architectures (e.g., Slurm-managed clusters or other supercomputing platforms).
  • Create robust, automated workflows for large-scale simulations, experiments, or data-processing tasks.
  • Integrate software with HPC schedulers, containerization technologies (e.g., Singularity/Apptainer), and workflow engines.
  • Implement data ingestion, transformation, and storage strategies for multi-terabyte to petabyte-scale datasets.
  • Collaborate with cross-disciplinary teams—scientists, data analysts, HPC support staff, and software engineers—to translate research requirements into software designs.
  • Contribute to technical roadmaps, architectural decisions, and documentation for long-term sustainability.
  • Mentor junior developers and participate in code reviews, design reviews, and project planning.
  • Develop and maintain automated test suites, CI/CD pipelines, and reproducible build environments (CMake, setuptools, Conan, Spack, etc.).
  • Ensure high reliability, traceability, and maintainability of code deployed at scale.
  • Adhere to configuration-management processes and documentation standards.

Benefits

  • AUI provides excellent paid time off (13 holidays, annual accrual of up to 24 vacation days and 15 sick days, additional time off for doctor/dentist visits, and 8 weeks of paid parental leave).
  • Medical, dental and vision plans are effective on the first day of employment.
  • AUI’s retirement benefit contributes an amount equal to 10 percent of a qualified participant’s base pay with no required employee contribution; we also offer an optional supplemental, tax-deferred plan for employee retirement contributions.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service