Minimum of 5 years relevant experience in software development
Comprehensive knowledge of C++, multi-threaded programming, and Python
Experience in profiling and optimizing codebases
Demonstrated analysis of numerical algorithms' accuracy and stability
Simulation experience in plasma physics or electromagnetics
Familiarity with modern C++ and Python for scientific computing
Experience with version control systems like git
Responsibilities
Perform numerical analysis on algorithm properties such as accuracy and stability
Collaborate with scientists to develop algorithms for fusion plasma modeling
Optimize code for performance on modern HPC architectures
Create and maintain documentation for WarpX features
Implement new features tailored to scientific needs
Develop and maintain unit and integration tests for WarpX
Work with a multidisciplinary team to translate scientific requirements into software solutions
Benefits
100% coverage of medical, dental, and vision premiums
10 paid holidays plus a company-wide December break
Generous paid vacation and sick time
Small, collaborative team environment
Exposure to diverse problems for professional growth
Weekly team meals and well-stocked kitchen
Meaningful equity in the form of stock options
Full Job Description
About the role: We are seeking an experienced C++ Software Developer to join our team and contribute to the development, debugging, and implementation of the WarpX code. WarpX is a state-of-the-art code originally designed for plasma-based accelerator simulations that we have been advancing and utilizing as an integral tool to understand plasma behavior within the Orbitron. Your role will be crucial in optimizing and advancing the capabilities of WarpX in order to meet the demands of these complex scientific computations.
In this role, you will:
Perform numerical analysis of the algorithm properties such as accuracy, stability, scalability. You will become the expert at Avalanche when it comes to understanding the code behind WarpX.
Collaborate with scientists and WarpX developers at LBNL to generate state-of-the-art algorithms and code for the modeling of fusion plasma within the Oribitron.
Work closely with Avalanches computational physicists to identify, understand, and surpass code limitations. Optimize code for better performance on modern HPC architectures.
Create and maintain detailed documentation for new and existing features, ensuring that the codebase is accessible and understandable for current and future developers.
Implement new features and functionalities in WarpX, tailored to specific scientific needs.
Develop and maintain comprehensive unit tests and integration tests to validate the correctness and performance of the WarpX code.
Work closely with a multidisciplinary team of physicists, engineers, and software developers to understand the scientific requirements and translate them into software solutions
About you:
Minimum of 5 years relevant experience in software development
Comprehensive knowledge and understanding of C++ , multi-threaded programming techniques, Python and modern programming practices
Experience profiling and optimizing a codebase
Demonstrated experience in analysis of accuracy and stability of numerical algorithms
Simulation experience with applications to plasma physics or electromagnetics
Knowledge in the development of numerical methods for GPUs
Experience with modern C++ and Python for scientific computing and High-Performance Computing (MPI, OpenMP, CUDA)
Familiarity with software design patterns
Familiarity with debugging tools and techniques in a large codebase
Experience with version control systems (e.g., git)
Experience with automated build, test, and deployment workflows
Strong analytical and problem-solving skills with a focus on debugging and optimization
Excellent communication skills, both written and verbal, with the ability to collaborate effectively in a team environment
Bonus skills or experience:
Past experience in the games industry working on game engines, game physics or VFX
Experience with the implementation of physics systems in a game engine; including core algorithms, performance optimization, etc.
Experience with cloud computing services
Experience with the development of Particle-In-Cell methods
Experience with high-performance computing (HPC) environments
Experience with batch jobs scheduling systems (Slurm)
A Master's or Ph.D. in a relevant field is preferred
Understanding of plasma physics, accelerator physics, or related fields is beneficial but not required
Benefits:
Excellent medical, dental and vision benefits: We pay 100% of your premiums
10 paid holidays and company-wide December holiday break
Generous paid vacation and sick time
Small, tight-knit team with low barriers to action
Exposure to a wide variety of problems for unparalleled, hands-on professional growth
Weekly employer provided team meals, a well-stocked kitchen, and employee events on and off-site