hirly

GeoSoftware

Senior Software Engineer – Computational Algorithms

Calgary, Alberta

See how you match this job — and similar ones. Free.

Upload your resume and hirly scores it against this role at GeoSoftware first, then against similar open jobs, and shows where you fit and why.

PDF or DOCX, up to 12MB. No sign-up to see your matches.

Get past the screening software and onto a recruiter's desk

hirly rewrites your resume for this job — matching the keywords and skills in the posting, moving your most relevant experience to the top, and writing a cover letter to fit. About 30 seconds.

  • Keywords matched to this posting
  • Fit score before you apply
  • Cover letter included

Matched against 2.5M live jobs from 210,000+ employers in 200+ countries.

Tailor my resume for this job →

Apply from your AI assistant

Connect hirly to Claude or ChatGPT and ask it to apply to this job. hirly tailors your resume, fills the employer’s form and asks before sending.

Some employer sites stop an application at a CAPTCHA or sign-in and hand it back with a link. Applying needs a paid plan. Works with any assistant that supports MCP.

hirly's read of this role

Role family
Engineering
Seniority
Senior
Country
CA
Work mode
On-site / unstated
First seen by hirly
2 Nov 2026

Derived automatically from the posting. Upload your resume above to see how the role scores against it.

the posting

About GeoSoftware

GeoSoftware is a global leader in Geoscience Software and provides a comprehensive range of software solutions that support our clients to achieve their goals. Our tools help our clients to develop a better understanding of the subsurface, manage exploration and development risks, and quantify reserves more accurately with our advanced geoscience technology.

Working at GeoSoftware is all about passion and sharing our ambition for ongoing technological innovation. We have more than 150 employees, spread over 18 different countries. Our people are our most important asset and developing our talents is a priority. As part of GeoSoftware, you will work with international and diverse teams of experts in an environment of excellence, which will enable you to create your own opportunities and realize your full potential.

Job Summary

We are looking for an experienced computational engineer to join our Digital Platform team.

You would work on the numerical core of our geoscience software: algorithms that have been in production use across the industry for two decades, which we are modernizing into headless, independently testable, independently deployable components that run correctly and quickly across hundreds of cores.

You would write the tests that show an optimized version still gives the same answer.

This is as much a research role as an engineering one. A large part of it is finding the faster way: reading the literature, questioning an algorithm's formulation rather than only its implementation, and knowing when an order-of-magnitude gain is sitting in the mathematics rather than in the loop. The other part is working directly with subject matter experts—building quick prototypes with them, putting something in front of them within days, and iterating on it until the science is right, before any of it is hardened into production code.

We are looking for a physics or geoscience background and strong Python alongside C++.

You would work in a small, senior, distributed team alongside platform and front-end engineers, and with geoscientists who use the results professionally every day.

Duties and Responsibilities

Algorithm Development and Modernization

Separate established numerical code from the application framework it grew up in, producing headless, testable, independently deployable components

Work inside a large, mature, sparsely documented C++ codebase and leave it better understood than you found it

Define each algorithm's interface—its inputs, outputs and parameters—precisely enough that the surrounding platform can validate, present and re-run it without knowing what the algorithm does

Expose C++ to Python through pybind11, with attention to memory ownership, the GIL and zero-copy array handling

Research, Prototyping, and Optimization

Investigate how an algorithm can be made substantially faster — reformulation, better numerical methods, exploiting structure in the problem — not only tuning the code that implements it

Follow the relevant literature, and evaluate published approaches honestly against what we already have

Build quick prototypes in Python with subject matter experts, iterate with them on the science, and only then decide what deserves to become production C++

Profile and optimize: vectorization, cache behavior, memory layout, threading and choice of numerical library

Decompose algorithms for parallel execution, and reason rigorously about what that does to floating-point reproducibility

Work with the platform engineers on how compute is distributed and on the seam between native code and the execution layer

Verification

Build the regression harness that validates parallel and distributes output against the single-threaded reference

Define and justify the acceptance tolerance for each algorithm family

Write characterization tests before refactoring and regression suites that catch what code review will not

Collaboration and Delivery

Work in short iterations with continuous integration, code review and acceptance criteria agreed before implementation

Work with geoscience domain experts to confirm that a result is not only numerically equal but scientifically sound

Contribute to the technical direction of a small team, and write down the decisions that matter

Skills and Competencies

Skills:

Strong modern C++ with real numerical computing experience—linear algebra, signal processing, transforms, optimization, or inversion

Strong Python, including the scientific stack—NumPy, SciPy, and the array-programming idiom—and experience binding native code to it

A physics, geophysics, or applied mathematics grounding and the ability to read a paper and implement what it describes

Solid grounding in floating-point behavior, numerical stability, and error analysis

Parallel programming: threading, SIMD, and the trade-offs of data decomposition

Ability to work productively inside a large, unfamiliar, poorly documented codebase

Prototyping speed: able to get something working and demonstrable in front of a domain expert quickly and comfortable throwing it away

A test-first instinct and the patience to establish a baseline before changing anything

Strong written English and the habit of documenting asynchronously

Competencies:

Rigour, and comfort with being held to a numerical standard

Ownership and self-direction

Pragmatic judgement about where complexity is worth it

Collaboration across disciplines

Technical expertise (numerical and scientific computing)

Alignment with company interest

Qualifications & Requirements

Required:

Degree in physics, geophysics, geoscience, applied mathematics, or a closely related quantitative discipline, or demonstrable equivalent depth in a quantitative discipline. A postgraduate degree is welcome but not required

Minimum 5 years of professional experience in numerical, scientific or performance-critical computing

Strong Python, including the scientific stack, and experience at the native-to-Python boundary

Demonstrable modern C++ experience in a production codebase

Demonstrable experience with parallel programming and performance optimization

A genuine interest in making algorithms faster and in the research that leads there

Experience working directly with scientists or other domain experts and prototyping collaboratively with them

Able to work effectively in a small, remote, multi-time-zone team: writing things down, communicating asynchronously, and operating without close supervision

Fluent written and spoken English

Desired:

Geophysics or seismic processing background

Published research, or a research background in a computational discipline

Experience with inversion, deconvolution, transforms, or wavelet estimation

Distributed compute frameworks—Dask, Ray, or MPI—or GPU computing

Performance work with BLAS, LAPACK, FFTW, or Eigen

Petrophysics or well-log computation

Cloud-native, chunked array storage formats

Experience extracting library code out of a monolithic application

Fluent with AI coding tools for prototyping, test generation, and refactoring, with the judgement to know where their output must be verified rather than trusted

We value the unique ways in which we differ, and we are committed to equal employment opportunities for all professionals.

Original posting on GeoSoftware's site ↗

Listed on hirly, a job board. hirly is not the employer: GeoSoftware is hiring for this role.

Browse similar roles

Want this one?

Upload your resume and hirly rewrites it for this job and writes the cover letter — in about thirty seconds, before you sign up.

Tailor my resume for this job