Salary
💰 $148,000 - $287,500 per year
About the role
- Designing, implementing and optimizing scalable high-performance numerical sparse linear algebra software for existing and future GPU architectures
- Working with library engineers, QA engineers, and interns on topics ranging from sparse BLAS operations to advanced direct and iterative sparse solvers
- Working closely with product management and other internal and external partners to understand feature and performance requirements and contribute to the technical roadmaps of libraries
- Finding and realizing opportunities to improve library quality, performance and maintainability through re-architecting and establishing innovative software development practices
Requirements
- PhD or MSc degree (or equivalent experience) in Computational Science and Engineering, Computer Science, Applied Mathematics, or related science or engineering field is preferred
- 5+ years of overall experience in developing, debugging and optimizing high-performance sparse linear algebra software using C++ and parallel programming; ideally using CUDA, MPI, OpenMP, OpenACC, pthreads, or equivalent technologies
- Strong fundamentals in floating point arithmetic and implementation of sparse linear algebra primitives like matrix-vector and matrix-matrix products
- Experience in developing , maintaining, and testing sparse linear algebra libraries
- Strong collaboration, communication, and documentation habits.
- Good knowledge of CPU and/or GPU hardware architecture and low-level GPU performance optimization
- Familiarity with technologies such as multi-frontal factorizations, iterative solvers, preconditioners, and algebraic multigrid
- Experience with adopting and advancing software development practices such as CI/CD systems and project management tools such as JIRA
- Understanding of large-scale computing technologies such as PDE solvers, eigenvalue solvers and time-domain simulation methods (e.g., CFD, FEA)
- Working experience in a globally distributed and agile organization