Work

Platform work, end to end.

Scoped, built, and handed over with docs and runbooks the teams actually use. Client names are withheld, and figures that would identify one are shifted; the work and the ratios are as described.

Migration · recent

Full enterprise migration to a new domain

Moved with zero downtime, and the shareholder deadline held.

Problem

An enterprise platform had to move to a new domain end to end, at scale.

Constraint

No downtime, a shareholder deadline that could not move, and the legacy stack in service throughout.

Contribution

DNS, API gateways created and reworked, managed certificates, ingresses, new microservices, and the networking back to the legacy stack.

Artifacts

The migrated platform, and the testing that proved nothing broke.

dnsapi gatewaycertificatesingress
Reliability · 2026

Self-hosted GitLab recovery

A one-hour recovery point objective, written down, with two recovery paths the team can rehearse.

Problem

A self-hosted GitLab instance needed CVE upgrades while a background migration had been failing for four months.

Constraint

The production service had to remain usable while the failure was traced through GitLab and PostgreSQL.

Contribution

Carried out the upgrades, diagnosed the migration as an upstream issue, and defined the recovery approach.

Artifacts

Hourly backup design, snapshot process, recovery runbook, and two documented recovery routes.

gitlabpostgresqldisaster recoverygce
Cost · recent

Kubernetes spend cut by a third

31 vCPU of reservations reclaimed across three clusters, with no application changes.

Problem

Nearly every service carried the same copy-pasted CPU and memory block, so nobody could tell which workloads were over-provisioned and which were starved.

Constraint

On GKE Autopilot the request is what gets billed rather than the usage, and the numbers had to hold for the workloads that needed more as well as the ones that needed less.

Contribution

Measured first: 30-day utilization dashboards built from container metrics already in the platform, with no new agents or collectors. Then sized each workload against its observed steady state, inside Autopilot's own request floors and memory-to-CPU ratios, lowering requests where the measurement supported it and raising the two that were throttling.

Artifacts

Utilization dashboards, a per-workload sizing worksheet, and a documented sizing rule the team reuses for new services.

kubernetesgke autopilotpromqlfinops
Cost · 2026

Kafka bill, measured: $58k to $9k a year

About 84% a year identified, against measured usage rather than a vendor projection.

Problem

Production Kafka ran on Confluent Cloud at $58k a year for 7% cluster load.

Constraint

The comparison had to hold at list prices against measured usage, not against vendor projections.

Contribution

Priced the real alternatives, corrected an estimate built on the wrong pricing model, and named the one dependency that actually gates the migration.

Artifacts

A measured usage baseline, a costed comparison, and the blocking dependency named.

kafkafinopsgcpflink
Safe testing · 2025

Production-like GCP sandbox

Customers validate their integrations end to end, and production is never touched.

Problem

Customers needed a realistic place to test public API integrations end to end.

Constraint

The environment needed production-like behavior without production access or risk.

Contribution

Built an isolated GCP sandbox with Terraform and mirrored the relevant API and Auth0 paths.

Artifacts

Versioned infrastructure, environment configuration, deployment path, and operational documentation.

terraformgcpauth0
Release flow · recent

Versioning and release automation

Production ships the exact image QA validated, and releases cut themselves.

Problem

Releases were cut by hand, so production did not necessarily ship the image QA had validated.

Constraint

It had to drop into any repository without bespoke wiring.

Contribution

Components and scripts that auto-increment develop's version, cut release branches, spin hotfix branches from any release, and generate changelogs through CodeRabbit.

Artifacts

Reusable components, a documented release flow, and generated changelogs.

componentssemverrelease flowcoderabbit
Feedback loops · 2026

Slack and Google Chat pipeline notifier

About 20% less developer time lost to failures: the fix starts the moment the pipeline goes red.

Problem

Pipeline results stayed in CI, so a failure waited until somebody went looking for it.

Constraint

It had to reach the team where they already work, across two different chat platforms.

Contribution

Every deployment, health check and rollback posted with the environment it touched. A CI or unit-test failure creates the Jira ticket itself, filled in with the failure detail and assigned to the right developer.

Artifacts

The notifier itself, the Jira integration, and per-environment links.

slackgoogle chatjira apigitlab ci
Visibility · 2026

Sprint dashboard for the whole company

Used by the CEO, the CTO and the engineering director.

Problem

Sprint data sat in Jira in a shape only the team itself could read.

Constraint

It had to be open to the whole company while staying access-controlled.

Contribution

Pulls sprint data from Atlassian and reorganizes it: filters, graphs, an archive of past sprints, and sprint-to-sprint comparisons.

Artifacts

The dashboard, hosted on GCP with access through IAP.

jira apigcpiapcharts
Observability · 2026

Centralized logging to BigQuery

Every log one query away, for triage and for postmortems alike.

Problem

GKE logs were spread across clusters, so triage began with hunting for them.

Constraint

The same data had to serve live triage and a long-term archive.

Contribution

Routed GKE logs into curated BigQuery datasets.

Artifacts

The datasets, the dashboards built on them, and a postmortem archive.

cloud loggingbigquery

Your platform, on this list next year.

Every one of these started as a team that knew something was wrong and did not have anyone whose job it was to fix it. See a sample audit report →

Get in touch

← Back to the home page