available // based in Montreal

Building reliable
systems that don't wake
anyone up.

I'm Hamza Karhat — a DevOps / SRE engineer. I design platforms that stay boring on purpose, automate the parts that shouldn't need a human, and write about it occasionally.

status
operational
years on-call
5.9
timezone
UTC-04 · EST
last deploy
3h ago · green
~/hamzakarhat — zsh — 88×24
Hamza Karhat

I've spent the last six years standing up infrastructure that has to stay up. The kind of work where success looks like nothing happening, and failure shows up on someone's pager at 3am.

My day job is making Kubernetes platforms boring — predictable, observable, automated, recoverable. My night job is the same thing, but on a homelab, for fewer users, with more interesting hardware.

I'm at my best when there's a system that should be simpler than it is, and the path forward involves equal parts YAML, Rust, and uncomfortable conversations about scope.

142d longest uptime · prod cluster
99.97% slo attainment · trailing 12mo
0 data-loss incidents · ever
$ kubectl get skills --all-namespaces   # 6 categories · 21 items
01orchestration
Kubernetes Talos Helm ArgoCD Flux
02infrastructure
Terraform Ansible Pulumi
03cloud / virt
OpenStack Proxmox AWS
04languages
Python Rust Bash
05observability
Prometheus Grafana Loki OpenTelemetry
06platform
Linux Docker systemd
2023 — present

Bell

Lead Site Reliability Engineer

Lead SRE on a portfolio of mission-critical telco services going through a cloud-native rebuild. Architect the microservices, event-driven APIs, and Kubernetes platform; automated the path from commit to prod with Terraform, GitLab CI, and Ansible — release times went from hours to minutes. Wrote the incident response and post-mortem playbooks the team runs on, and translate between architecture decks and ops reality when those two drift.

KubernetesTerraformGitLab CIAnsibleOpenStackPrometheus
Montreal · contract
2021 — 2023

CGI

Full Stack Engineer

Consultant on an enterprise SAP S/4HANA migration. Built the data integration flows, API services, and UI extensions that kept downtime survivable during cutover. Shipped a Partner Center add-on — ABAP modules and SAPUI5 Fiori components — that turned a paper-trail document workflow into something humans could actually use. Picked up that 'API governance' is mostly the art of saying no with a smile.

SAP S/4HANAABAPSAPUI5FioriREST
Montreal · full-time
2021 — 2022

Freelance

Full Stack Engineer

Built a unified payment platform stitching together two e-commerce sites — stateless Django microservices on Kubernetes, Prometheus + Grafana for the on-call dashboard. Also shipped a media-management site for independent musicians on Vue and Docker. Ran a few hands-on Kubernetes/Docker/Python sessions for soon-to-be-graduate developers; teaching is the fastest way to find the holes in your own mental model.

DjangoKubernetesDockerVue.jsPrometheus
remote · contract
2019

Welaika

Ruby on Rails Engineer

Backend services and APIs in Rails, with S3 for storage and Docker keeping the dev/prod gap small. Wrote the RSpec suites, shipped on agile cycles, and got my first real lessons in scoping client work — what to push back on, what to absorb, and when to escalate.

Ruby on RailsRSpecDockerAWS S3
Turin · full-time
2016

ValuePass

SAP Development Intern

Summer internship doing SAP system maintenance — database table management and functional support. First exposure to enterprise software, which mostly meant learning that nothing in production is ever simple, and most of the work happens in the seams between teams.

SAPABAPSQL
Casablanca · internship
/01 private

homelab-as-code

Everything in my homelab — Proxmox cluster, Talos K8s on top, OPNsense router, observability stack — defined in Terraform + Ansible. One pull request rebuilds the whole house.

TerraformProxmoxTalosAnsible
— source not public — v3.1
/02 in dev

havok

A Discord-shaped Matrix client aiming to replace Discord in my day-to-day. Familiar UX, federated backend, and none of the corporate trajectory.

MatrixFlutterWebRTC
— source not public — alpha
/03 live

dockctl

Rust-based REST API that controls Docker containers on the host it runs on. Started as an OpenStack experiment, kept around because it's a tiny static binary that does one thing well.

RustDockerREST
/04 archived

helios

Tenant-aware deployment conductor for OpenStack. A small Rust HTTP service that provisions Nova instances, bootstraps them with cloud-init, registers them behind a Caddy reverse proxy, and tracks tenants in Postgres. Built as a take on what a minimal cloud provider's control plane looks like.

RustOpenStackwarpDieselPostgresCaddy

What I do when I'm not on call.

A non-exhaustive list of things that occupy the rest of the disk.

nerd things
Self-hosting everything .srv
If a SaaS has a docker image, it lives on my rack now. Media, NAS, notes, LLMS, even DNS.
3D printing .stl
Mostly functional prints — brackets, mounts, the parts a vendor doesn't sell. Slicing is half the fun.
Indie games .exe
Smaller scope, sharper ideas, no live service. The kind of game you finish in a weekend and remember a year later.
regular life
Long-form reading .pdf
Currently working through The Linux Programming Interface. Slow going, on purpose.
Casual pool .cue
Bar table, low stakes, unreasonable confidence. Mostly an excuse to stand up between rounds.
A good cocktail .glass
Negronis, old fashioneds, anything with three ingredients and a long history.
physical
Muay Thai .pad
Showed up for the cardio, stayed for the humility. Turns out there are flavors of tired and painful I hadn't met yet.
Running .5k
Recent, Slow, short, consistent. The goal is to still be running in a year, not to hit a number.
Swimming .medal
Used to compete as a kid — picked up a few medals, mostly relay. No plans to chase that ghost again.

Let's deploy something together.

I'm open to contract SRE work, platform engineering retainers, and the occasional rescue mission for clusters that have gone feral. Drop a line and we'll figure it out.

expected response time: < 24h on weekdays

~/new-message.emlready
demo mode · set PUBLIC_CONTACT_ENDPOINT