Job Summary
The C++ Developer will develop, maintain, and optimize proprietary applications used for seismic imaging and scientific computing. Working within an Agile Scrum team, the developer will collaborate with researchers to commercialize prototype research code, support globally distributed internal business partners, and improve high-performance computing (HPC) system utilization and seismic processing throughput. The role also involves working with HPC systems teams and geoscientists to inform decisions regarding future hardware and system upgrades.
Key Responsibilities
• Develop and support proprietary applications used for seismic imaging within an Agile Scrum team.
• Collaborate with researchers to enable research activities and commercialize prototype research code.
• Support internal business partners across globally distributed teams.
• Optimize applications to improve HPC system utilization and increase the throughput of seismic processing projects.
• Collaborate with HPC systems teams and geoscientists to influence decisions regarding future hardware and system upgrades.
• Analyze code complexity and evaluate the performance implications of different algorithms.
• Contribute to application performance tuning and efficient parallel computing implementations.
• Collaborate effectively with team members across software development, research, and scientific computing functions.
Required Qualifications
• Degree in Computer Science, Software Engineering, Engineering, Applied Mathematics, Computational Science, or a related field.
• Several years of C/C++ experience developing scientific computing code that uses parallel computing.
• Strong understanding of code complexity and the performance implications of different algorithms.
• Experience working in a Linux environment.
• Ability to work effectively in a diverse team environment.
• Strong verbal and written communication skills for collaboration and mentoring.
• Self-motivated, proactive, and willing to learn.
• Safety-oriented mindset with a commitment to employee safety and well-being.
Preferred Qualifications
• Proficiency in Python, modern C++ (C++11 or later), and Unix shell scripting, particularly BASH.
• Experience with third-party APIs.
• Knowledge of object-oriented design principles.
• Experience with parallel computing technologies such as OpenMP, MPI, and CUDA.
• Familiarity with DevOps practices, CI/CD pipeline development, and GitHub Actions.
• Experience with source control and work item tracking systems such as Git and Azure DevOps (ADO).
• Experience following an Agile Scrum software development process.
• Knowledge of simulation software development, particularly in seismic imaging or the geoscience domain.
• Experience with profiling tools such as Intel VTune, NVIDIA Nsight, and gprof, along with performance tuning.