Software Developer
Computer Modelling Group Ltd.
Job Description
Key Responsibilities 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.
Knowledge, Skills & Experience 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.
If you have the necessary qualifications, and are interested in a challenging career with us, please forward your resume in confidence to [email protected]. No phone calls please. We thank all applicants for their interest in advance.
Only those chosen for interviews will be contacted. CMG Compensation and Benefits Overview – Canada CMG’s total rewards program includes: 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