Software Engineer - Java, C++
Core
Design, implement, optimize, and maintain high-performance scientific applications and data-processing software for large-scale HPC systems, specifically the Radio Astronomy Data Processing Software (RADPS).
Role type
Senior Scientific Software Engineer (HPC)
Builds
Radio Astronomy Data Processing Software (RADPS) and scalable numerical algorithms for astronomical observations
Domain
Radio Astronomy / High-Performance Computing (HPC)
Deliverable
production ML models | product features
Required skills
Python (NumPy, SciPy, pandas), C++ (C++17/20), MPI, OpenMP, CUDA/HIP, OpenACC, Linux development, Git, HDF5, ADIOS, NetCDF, Slurm/PBS/HTCondor, Singularity/Apptainer, Docker
Preferred skills
GPU programming, workflow orchestration, numerical methods, computational physics, signal processing, container technologies, Agile frameworks
Technologies
CI/CD, CUDA, Docker, Git, Linux, Python, numpy, pandas, DevOps
Responsibilities
Design and implement scalable solutions using advanced parallel programming techniques; Profile and enhance performance of HPC applications; Develop Python interfaces for high-performance C++ components; Integrate software with HPC schedulers and container technologies; Collaborate with interdisciplinary teams to translate research needs into software solutions; Mentor junior developers and participate in code reviews; Develop automated testing suites and CI/CD pipelines.
Seniority
Senior, hands-on IC