{"id":3599531,"url":"https://alion.io/job/geosoftware-senior-software-engineer-computational-algorithms","title":"Senior Software Engineer – Computational Algorithms","company":{"id":4420481,"name":"GeoSoftware","domain":"geosoftware.com","url":"https://alion.io/company/geosoftware-2","size_band":"51-200","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"BambooHR","truth_index":null},"role":"Backend","role_family":"Backend","seniority":"senior","employment_type":"full_time","work_mode":"on_site","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["Calgary, Canada"],"countries":["CA"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":null,"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"C++","optional":false},{"name":"CI/CD","optional":false},{"name":"Dask","optional":false},{"name":"Eigen","optional":false},{"name":"MPI","optional":false},{"name":"NumPy","optional":false},{"name":"PyBind11","optional":false},{"name":"Python","optional":false},{"name":"Ray","optional":false},{"name":"SciPy","optional":false},{"name":"C","optional":true},{"name":"Cython","optional":true}],"status":"live","first_seen_at":"2026-11-02T07:25:32Z","employer_posted_date":"2026-11-02","last_verified_at":"2026-11-03T19:52:08Z","board_verified":true,"closed_at":null,"days_open":1,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":1},"description":"About GeoSoftware\nGeoSoftware 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.\nWorking 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.\nJob Summary\nWe are looking for an experienced computational engineer to join our Digital Platform team.\nYou 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.\nYou would write the tests that show an optimized version still gives the same answer.\nThis 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.\nWe are looking for a physics or geoscience background and strong Python alongside C++.\nYou would work in a small, senior, distributed team alongside platform and front-end engineers, and with geoscientists who use the results professionally every day.\nDuties and Responsibilities\nAlgorithm Development and Modernization\nSeparate established numerical code from the application framework it grew up in, producing headless, testable, independently deployable components\nWork inside a large, mature, sparsely documented C++ codebase and leave it better understood than you found it\nDefine 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\nExpose C++ to Python through pybind11, with attention to memory ownership, the GIL and zero-copy array handling\nResearch, Prototyping, and Optimization\nInvestigate 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\nFollow the relevant literature, and evaluate published approaches honestly against what we already have\nBuild quick prototypes in Python with subject matter experts, iterate with them on the science, and only then decide what deserves to become production C++\nProfile and optimize: vectorization, cache behavior, memory layout, threading and choice of numerical library\nDecompose algorithms for parallel execution, and reason rigorously about what that does to floating-point reproducibility\nWork with the platform engineers on how compute is distributed and on the seam between native code and the execution layer\nVerification\nBuild the regression harness that validates parallel and distributes output against the single-threaded reference\nDefine and justify the acceptance tolerance for each algorithm family\nWrite characterization tests before refactoring and regression suites that catch what code review will not\nCollaboration and Delivery\nWork in short iterations with continuous integration, code review and acceptance criteria agreed before implementation\nWork with geoscience domain experts to confirm that a result is not only numerically equal but scientifically sound\nContribute to the technical direction of a small team, and write down the decisions that matter\nSkills and Competencies\nSkills:\nStrong modern C++ with real numerical computing experience-linear algebra, signal processing, transforms, optimization, or inversion\nStrong Python, including the scientific stack-NumPy, SciPy, and the array-programming idiom-and experience binding native code to it\nA physics, geophysics, or applied mathematics grounding and the ability to read a paper and implement what it describes\nSolid grounding in floating-point behavior, numerical stability, and error analysis\nParallel programming: threading, SIMD, and the trade-offs of data decomposition\nAbility to work productively inside a large, unfamiliar, poorly documented codebase\nPrototyping speed: able to get something working and demonstrable in front of a domain expert quickly and comfortable throwing it away\nA test-first instinct and the patience to establish a baseline before changing anything\nStrong written English and the habit of documenting asynchronously\nCompetencies:\nRigour, and comfort with being held to a numerical standard\nOwnership and self-direction\nPragmatic judgement about where complexity is worth it\nCollaboration across disciplines\nTechnical expertise (numerical and scientific computing)\nAlignment with company interest\nQualifications & Requirements\nRequired:\nDegree 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\nMinimum 5 years of professional experience in numerical, scientific or performance-critical computing\nStrong Python, including the scientific stack, and experience at the native-to-Python boundary\nDemonstrable modern C++ experience in a production codebase\nDemonstrable experience with parallel programming and performance optimization\nA genuine interest in making algorithms faster and in the research that leads there\nExperience working directly with scientists or other domain experts and prototyping collaboratively with them\nAble to work effectively in a small, remote, multi-time-zone team: writing things down, communicating asynchronously, and operating without close supervision\nFluent written and spoken English\nDesired:\nGeophysics or seismic processing background\nPublished research, or a research background in a computational discipline\nExperience with inversion, deconvolution, transforms, or wavelet estimation\nDistributed compute frameworks-Dask, Ray, or MPI-or GPU computing\nPerformance work with BLAS, LAPACK, FFTW, or Eigen\nPetrophysics or well-log computation\nCloud-native, chunked array storage formats\nExperience extracting library code out of a monolithic application\nFluent with AI coding tools for prototyping, test generation, and refactoring, with the judgement to know where their output must be verified rather than trusted\nWe value the unique ways in which we differ, and we are committed to equal employment opportunities for all professionals.","description_format":"text","description_chars":7245,"description_truncated":false,"requirements":{"experience_years_min":null,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":{"level":"bachelor","optional":false},"security_clearance":false,"languages":[{"language":"English","level":"All levels","optional":false}]},"benefits":[],"hiring_locations":[],"hiring_excludes":[],"relocation_offered":false,"industries":["Petroleum & Mining Engineering","Oil & Gas","Scientific & Lab Software"],"lifecycle":[{"event":"open","at":"2026-11-02T07:25:32Z"}],"visa":[],"liveness":{"score":86,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.86,"p_room":1,"age_days":0,"expected_fill_days":36,"reasons":["conf:0","win:early"],"computed_at":"2026-11-03T05:54:40Z"},"pay":null,"html_url":"https://alion.io/job/geosoftware-senior-software-engineer-computational-algorithms","json_url":"https://alion.io/job/geosoftware-senior-software-engineer-computational-algorithms.json","meta":{"generated_at":"2026-11-03T21:22:52Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":505,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-11-04T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":4420481},"rest":"https://alion.io/mcp/rest/get_company?id=4420481"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fgeosoftware-senior-software-engineer-computational-algorithms"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Fgeosoftware-senior-software-engineer-computational-algorithms"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Fgeosoftware-senior-software-engineer-computational-algorithms"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/geosoftware-senior-software-engineer-computational-algorithms\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fgeosoftware-senior-software-engineer-computational-algorithms"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":3599531}},{"tool":"search_jobs","arguments":{"company":"geosoftware.com","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":3599531},"note":"people open to offers who fit this vacancy"}],"note":"The same data through MCP tools: https://alion.io/mcp/open needs no sign-in (compact searches, postings, people); https://alion.io/mcp with an Alion account has everything. Docs: https://alion.io/developers"}}