19 Oct
|
GeologicAI
|
Calgary
19 Oct
GeologicAI
Calgary
Intermediate Software Engineer
Department: Software Development
Employment Type: Permanent - Full Time
The Platform Infrastructure team owns the infrastructure, tooling, and engineering practices that let us ship software safely and scale our systems reliably. This role sits at the intersection of software engineering and DevOps: you will build the CI/CD pipelines and deployment automation that get code to production, and you will go deep into the platform itself, profiling performance, identifying architectural bottlenecks, and refactoring the systems that limit our ability to scale.
We have the foundations, but we need someone with the instincts to find what is slowing us down next whether that is a fragile deployment pipeline, an unscalable data processing pattern, or a legacy component that needs to be modernized and the engineering depth to fix it
Design, build, and own automated deployment pipelines from development through test, staging, and production, including deployments to field-based hardware at remote mine sites.
Implement infrastructure as code (IaC) and configuration management practices that make environments reproducible, auditable, and easy to reason about.
Drive environment parity across local development, test, staging, and production so that deployment failures are caught early and consistently.
Automate release processes to reduce manual steps, eliminate deployment risk, and improve release cadence.
Maintain and improve deployment reliability to distributed and edge environments, including trailer-mounted compute units operating in the field.
Scale, Performance & Distributed Systems
Profile and analyze distributed processing systems to identify performance bottlenecks across compute, I/O, memory, and network layers.
Design and implement optimizations that allow our data pipelines and processing workflows to handle growing data volumes without degrading performance
Contribute architectural thinking to discussions about how to scale components that were not originally designed for current data volumes
Containerize Python-based scientific processing applications to improve portability, isolation, and deployment consistency.
Reduce technical debt incrementally and pragmatically, with a bias toward changes that improve scalability and maintainability simultaneously.
Establish and promote platform engineering standards around code structure, dependency management, and deployment readiness.
Testing & Release Quality
Build and maintain test environments that accurately represent production at scale, including large-volume data processing scenarios.
Improve release confidence through rigorous pre-production validation, automated quality gates, and controlled rollout mechanisms.
Create shared testing utilities and reusable fixtures that lower the cost of writing high-quality tests across the engineering organization.
Establish reliability baselines and SLOs for critical processing pipelines and track progress against them over time.
Conduct post-incident analysis and translate learnings into systemic improvements, not just one-off fixes.
Reduce friction in the development workflow: faster feedback loops, better local tooling, clearer onboarding, and self-service access to environments.
3–6 years of professional software engineering experience, with meaningful exposure to platform, infrastructure, or backend systems work.
- Strong Python development skills; comfortable working in a Python-centric codebase at scale.
- Solid understanding of distributed systems: how they fail, how to profile them, and how to reason about performance across multiple components.
- Hands-on experience building or significantly improving CI/CD pipelines and automated deployment workflows.
- Experience with Docker and containerized development and deployment environments.
- Experience with performance profiling and optimization, you know how to find the real bottleneck, not just the obvious one.
- Strong grasp of software testing: unit, integration, end-to-end, and what makes tests helpful at scale versus brittle and expensive.
- Experience with infrastructure as code and configuration management practices and tools.
- Linux-based development and operations as a daily practice.
Assets:
Familiarity with MLOps practices: model serving infrastructure, experiment tracking, or ML pipeline tooling.
Experience with scientific computing, high-throughput data processing, or analytical software systems.
Experience with edge or distributed hardware deployments — shipping software to systems outside a data centre.
Experience with Databricks, Spark, or similar large-scale data processing frameworks.
Our products and services are helping find the hydrocarbons that power our world today, and the metals and minerals required for the energy transition of tomorrow.
A casual and fun work environment
Flexible schedule and opportunities for remote work (depending on role)
Extended health and dental benefits (confirm for geographic location)
📌 Software Development Engineer - Platform Engineer (Remote Working) (Calgary)
🏢 GeologicAI
📍 Calgary