Software Developer
Computer Modelling Group
Job Description
We are seeking a Software Developer to join our team developing advanced reservoir simulation software and handling relevant scientific computations. The successful candidate will contribute to the design and implementation of high-performance, geomechanics‑based simulation solutions that accelerate large-scale numerical simulations used in subsurface modeling. You will collaborate with scientists and engineers to enhance the performance and scalability of complex simulation systems, improve parallel processing capabilities, and support modern high‑performance computing environments.
This role is ideal for someone with strong expertise in C++ programming, parallel computing, and scientific software development. What You’ll Do Develop, enhance, and maintain components of scientific simulation software written in C++. Contribute to computational and numerical workflows that support large-scale reservoir and fracturing simulation analysis.
Understand and work effectively with existing legacy codebases, reading, debugging, refactoring and modernizing when needed. Implement, test and calibrate subsurface models with efficient algorithms for scientific computation, ensuring numerical accuracy and performance. Collaborate closely with domain experts, senior developers, and scientists to deliver reliable, production‑quality features.
Participate in code reviews, testing, and documentation to uphold high engineering standards. Approach challenges with curiosity and initiative, adapting quickly to new tools, concepts, and problem domains. Note: This description reflects the general nature of the role.
It’s not a complete list of responsibilities—we believe in flexibility, initiative, and growing together. Required Qualifications 1-3 years of professional experience in C++ software development. Strong proficiency in modern C++ (C++14 or later), with the ability to read and modify legacy scientific codebases.
Solid understanding of numerical algorithms, data structures, and performance considerations in scientific computing. Strong debugging and troubleshooting skills across cloud‑deployed and desktop simulation applications, including performance issues, diagnosing numerical and logic errors, and resolving integration or environment‑specific bugs. Hands‑on experience with Linux development environments and command‑line tools.
Curious, communicative, and collaborative team player who actively engages in discussions and rises to the occasion in challenging technical situations. Eagerness and ability to learn parallel computing concepts (OpenMP/MPI) for large scientific simulation codes. Ability to profile and optimize large-scale scientific simulation codes.
Preferred Qualifications Experience working with numerical or scientific computations. Experience with containerized development environments (e.g., Docker). Exposure to AWS or Azure cloud‑based software development and familiarity with CI/CD practices and tools.
Exposure to MPI or high‑performance computing (HPC). Education A master’s or bachelor’s degree in Software Engineering or a related field is preferred. Relevant experience can substitute for a formal degree.
A research background in high-performance computing is preferred but not mandatory. Location Canada CMG Compensation and Benefits Overview - Canada A performance‑based bonus program Learning and development opportunities RRSP contributions Top‑of‑the‑line medical and dental benefits including a health spending account 20 days of vacation per year plus flex days Choice of transit pass or underground parking (Calgary) Car wash (Calgary) Cafeteria and complimentary barista‑style coffee and more (Calgary) #J-18808-Ljbffr