Logo
Intelliswift Software Inc

C++/CUDA, parallel computing, and Python

Intelliswift Software Inc, Redmond, Washington, United States, 98052


Must Have skills:Modern C++ (19) w/ CUDAExperience using MPI (message passing interface) and OpenMP - parallelization / distributed computingOptimizing / refactoring codeSupplemental” Skills, Plusses:Numerical Method (unicorn)Full stack on cluster - bare metal, operating system, drivers, applications (unicorn)Physics understandingHigh Performance ComputingOptimizationsNice to have DSP background (sample rates, digital filters, etc)Detailed Job DescriptionPlease 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 withing 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 solvingMinimum 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 skillsPreferred 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 defect, and complexity analysisAdditional Notes/Comments● Top 3 must-have HARD skills:Modern C++ (19) w/ CUDAExperience using MPI (message passing interface) and OpenMP - parallelization / distributed computingOptimizing / refactoring code● Good to have skills:Numerical Method (unicorn)Full stack on cluster - bare metal, operating system, drivers, applications (unicorn)Physics understandingHigh Performance ComputingOptimizationsNice to have DSP background (sample rates, digital filters, etc)● Story Behind the Need – Business Group & Key Projects:BackfillAudio Simulation Environment / ResearchSimulations Team on RLR-Audio● Is there anything we can share with Candidates to compel them to choose Meta over competitors?:Working with PhD researchersCandidates who like physics, applied mathematics, audio and acoustics and high performance compute will have a great time - fun project for the right person● Typical Day in the Role:Infra, optimization, new features, debugging - typical software development dayWeekly standupsDaily face time with researchers80-90% coding vs. meetings / admin● How will performance be measured:Can the candidate deliver expected outcomes?Communication / raise issues when they come up