Intermediate Software Engineer (Alberta)

Intermediate Software Engineer (Alberta)

16 Aug
|
GeologicAI
|
Alberta

16 Aug

GeologicAI

Alberta

GeologicAI is a Calgary-based start-up developing and deploying exciting new technologies for the energy and mining sectors. We build nifty geological robots that scan rocks, train AI to analyze the scan data, and make fancy software that makes all our results incredibly useful for finding and extracting natural resources. We are well-funded and growing rapidly and looking for amazing people to join our team.
We're a quick-growing well-funded company working on interesting products that are making difference to the world. 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.
About the Role: 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.
This is not a role for someone who wants to maintain the status quo. 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
What You'll Do: CI/CD, Deployability & Infrastructure as Code 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
Develop pattern detection tooling to proactively surface systemic issues, resource contention,



throughput degradation, failure modes before they become incidents.
Contribute architectural thinking to discussions about how to scale components that were not originally designed for current data volumes
Refactoring & Platform Modernization Work within and improve legacy codebases, identifying the highestleverage refactoring opportunities and executing them without disrupting production systems.
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.
Develop automated regression, integration, and end-to-end validation frameworks across multiple processing systems.
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.
Observability & System Reliability Instrument systems with structured logging, distributed tracing, and metrics that make it possible to understand system behaviour under real workloads.
Build dashboards and alerting that surface the right signals, not noise and enable the team to detect and respond to issues quickly.
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.
Document what you build, runbooks, architecture decision records, onboarding guides — so knowledge is accessible and the team can operate independently.
Collaborate with engineers across the organization to understand pain points and translate them into platform improvements with real impact.




Required Qualifications 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.
Demonstrated ability to refactor complex, legacy codebases safely and incrementally.
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 useful at scale versus brittle and expensive.
Experience implementing or working with observability tooling: logging, metrics, tracing, alerting.
Experience with infrastructure as code and configuration management practices and tools.
Linux-based development and operations as a daily practice.
Nice to Have: Experience with Azure or other cloud platforms, particularly around managed compute and storage at scale.
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.
Exposure to specific IaC tooling such as Terraform or Ansible.
Experience with Databricks, Spark, or similar large-scale data processing frameworks.
Why This Role The scale challenges here are genuine. We process large volumes of scientific data across
distributed systems that were not originally designed for the throughput we need today. The
deployment environments range from cloud infrastructure to compute hardware installed
inside scanning trailers at remote mine sites around the world. The engineering work to
make all of this scalable, observable, and reliably deployable is largely still ahead of us.
You will have meaningful ownership over the systems and practices that determine how fast
and safely GeologicAI can ship and scale. If you want a role where your work directly shapes
the trajectory of a platform not just maintains it - this is it.
Working at GeologicAI you will enjoy the following benefits: A casual and fun work environment
Extended health and dental benefits
Flexible schedule and opportunities for remote work

#J-18808-Ljbffr

📌 Intermediate Software Engineer (Alberta)
🏢 GeologicAI
📍 Alberta

Reply to this offer

Impress this employer describing Your skills and abilities, fill out the form below and leave Your personal touch in the presentation letter.

Subscribe to this job alert:

Get the latest job offers by email for: intermediate software engineer (alberta) / alberta