Skip to main content

C++/CUDA Parallel Computing and Python Developer

C++/CUDA Parallel Computing and Python Developer
Intelliswift Software
remote
4 months 1 week ago

Must Have Skills

  • Modern C++ (19) w/ CUDA
  • Experience using MPI (message passing interface) and OpenMP - parallelization / distributed computing
  • Optimizing / refactoring code

Supplemental Skills, Plusses

  • Numerical Method (unicorn)
  • Full stack on cluster - bare metal, operating system, drivers, applications (unicorn)
  • Physics understanding
  • High Performance Computing Optimizations
  • Nice to have DSP background (sample rates, digital filters, etc)

Detailed Job Description

*Please prioritize C++/CUDA, parallel computing, and Python. The other skills requested (HPC, SLURM, 3D Math) are now nice-to-haves.* Reality Labs at Meta is seeking a contractor for the role of Parallel Computing Engineer in AR/VR audio to work in our research lab. The job entails supporting the audio research team in achieving their research goals by performing infrastructure and workflow setup/management and implement/optimize research code into massively parallel software suite.

Responsibilities

  • Work side by side with research scientists to optimize, solve, and integrate existing or future research
  • Create, debug, and optimize core parallel algorithms and data structures within a distributed environment through library development, direct application contributions, and software profiling
  • Build software, tools, platforms, infrastructure, and documentation that enable research staff to be more effective and efficient
  • Write clean readable code, debug complex problems that span systems, prioritize ruthlessly, and get things done with a high level of efficiency
  • Mentor researchers and other team members on software engineering best practices, tips, and techniques
  • Collaborate in a team environment across multiple scientific and engineering disciplines, making the architectural tradeoffs required to rapidly deliver software solutions
  • Learn constantly, dive into new areas with unfamiliar technologies, and embrace the ambiguity of AR/VR problem solving

Minimum Qualifications Requirements

  • Demonstrated proficiency in computational complexity, algorithm design, low level computer architecture, data structures, software design, large-scale C/C++ systems
  • 5+ years relevant experience in parallel computing
  • 5+ years of experience in C++ (≥ v.11)
  • Experience with parallel programming, ideally C/C++ threads, MPI, and OpenMP
  • Experience in GPGPU programming, ideally CUDA C/C++, OpenCL, or DirectCompute
  • Strong mathematical fundamentals, including linear algebra, computational physics, and numerical methods
  • Excellent communication and organization skills, with a logical approach to problem-solving, good time management, and task prioritization skills

Preferred Qualifications

  • Good grasp of audio and DSP fundamentals
  • Proven experience in scientific computing using Python and/or MATLAB
  • 1+ years experience in working with HPC clusters, automation software, and virtualization/containerization (e.g., Kubernetes, SLURM, VMWare)
  • Experience in computer graphics algorithms/principles and physics principles (e.g., wave propagation)
  • Experience in SQA, formal/empirical Verification of mathematical models, software defects, and complexity analysis

Expertise level

Work arrangement

Key skills

Similar Jobs in United States