Available for new projects

Infrastructure that's boring by design.

I'm Otto — a systems and cloud infrastructure engineer. I design, automate, and operate Linux environments that stay quiet, even when traffic doesn't.

Remote-first · EU & MENA Replies ≤ 1 business day NDA-friendly
Linux Nginx Docker Kubernetes Terraform Python Go PostgreSQL Redis Prometheus Grafana GitHub Actions Cloudflare Ansible systemd WireGuard
01 Services

What I do, and when it helps.

Four disciplines, usually in combination. No dashboards nobody reads, and no architecture diagrams that never ship.

01

Cloud & systems architecture

Right-sized environments: private networks, load balancers, autoscaling, and Linux hosts tuned to the workload instead of the tutorial.

AWS · HetznerDebianKubernetes
02

Automation & delivery

CI/CD pipelines, declarative configuration, and small Go or Python tools, so a deploy is one command and a rollback is one flag.

GitHub ActionsDockerAnsible
03

Observability & reliability

Metrics, logs, traces, and alerting that pages only for real problems. SLOs agreed before the incident, not reconstructed after it.

PrometheusGrafanaLoki
04

Hardening & access

Least-privilege access, hardened hosts, TLS everywhere, secrets out of the repository, and patching that actually happens.

WireGuardTLS · OCSPIAM
Reference shape small surface area · boring failure modes
01 Edge Cloudflare · TLS · WAF
02 Proxy Nginx · routing · cache
03 Runtime Go · Python services
04 Data PostgreSQL · Redis
Delivery GitHub Actions → Docker → blue/green Observability Prometheus · Grafana · Loki Recovery nightly snapshots + restore drill
02 Selected work

Measured by what changed.

A few engagements, described by outcomes rather than tools installed. Client names withheld under NDA — details available on request.

01 A monolith, containerised with zero cutover downtime 14 services moved off hand-managed VMs onto Docker and CI, with a staged blue/green cutover and written runbooks. 0 mindowntime −41%infra spend 3×deploys

Scope

A 14-service monolith spread across six hand-tended VMs, deployed by SSH and hope, with no staging environment.

Approach

Containerised one service at a time behind a reverse proxy, then moved traffic in stages. Each stage had a tested reverse in under two minutes.

Outcome

Cutover with no downtime, 41% lower hosting spend, and deploys that moved from monthly to several times a week.

02 Multi-region failover for an API that couldn't go down Two regions, replicated data, health-checked routing — recovery measured in minutes instead of hours. 4 minRTO 99.98%uptime 48 msp95

Scope

A single-region Python API serving EU customers, backed by a four-hour manual recovery procedure that nobody had tested.

Approach

Promotable read replicas, DNS failover wired to health checks, and a scheduled restore test that ran whether or not anyone was watching.

Outcome

A documented four-minute recovery, p95 down from 210 ms to 48 ms after query and cache work, and drills that stopped being scary.

03 An Nginx edge layer that shrank the blast radius Caching, rate limiting, and a tuned TLS path for 40M monthly requests — origin load down by nearly two thirds. −62%origin load A+TLS grade 40Mreq / month

Scope

Origin servers saturating during traffic spikes, with no cache layer and a default Nginx configuration carrying production traffic.

Approach

Edge caching with surgical cache keys, per-route rate limits, HTTP/3, OCSP stapling, and a config split into auditable includes.

Outcome

62% less origin traffic, no 5xx through peak events, and TLS graded A+ across every endpoint.

04 CI/CD rebuilt around audited, reversible deploys Nine engineers, one pipeline, every release attributable and one flag away from a rollback. 34→4min deploy 100%traceable 0secrets in git

Scope

Three competing deploy scripts, credentials committed to a repository, and no consistent trail of who shipped what.

Approach

A single pipeline with pinned images, signed artefacts, vaulted secrets, and a one-command rollback rehearsed by the team, not by me.

Outcome

Deploy time from 34 minutes to 4, every release attributable to a commit, and secrets permanently out of version control.

03 Process

Four steps, no surprises.

Short engagements, small surface area, no surprise invoices. Most work runs four to six weeks, start to handover.

01 Audit

Find out what's really running

Hosts, traffic paths, failure modes, and spend — mapped in two weeks. You keep a written findings document either way.

Week 1–2
02 Design

Two options, priced and argued

A target architecture with the trade-offs written down, so the decision is made on facts rather than preference.

Week 2–3
03 Build

Small, reversible steps

Changes land behind flags in reviewable increments. You see the diff, the plan, and the rollback before production does.

Week 3–5
04 Operate

Handover that sticks

Runbooks, dashboards, alert routes, and a recorded session for whoever holds the pager next.

Week 5–6
04 De-risking

You keep the keys, the docs, and the exit.

Infrastructure work goes wrong when it's opaque. So the scope gets written down, the changes stay reversible, and nothing ships without a way back.

Talk through your setup
Written scope before work

Deliverables, acceptance criteria, and a change process agreed in writing before anything starts.

Reversible by default

Every change ships with a documented rollback. No irreversible first steps at two in the morning.

Documentation is a deliverable

Runbooks, diagrams, and an access map live in your repository — not in my notes.

Handover is the finish line

Your team can operate it without me. That is the definition of done, not an upsell.

99.99%
Availability target
≤1day
Typical response time
100%
Documented handovers
0
Proprietary lock-in

Operating principle

If it isn't monitored,
it isn't finished.
If it can't be rolled back,
it isn't ready.

Otto — infrastructure engineering

05 Questions

Worth asking before you hire anyone.

Straight answers to the things that usually get skipped in a first call.

01What does a typical engagement cost?

Most projects land between three and six weeks of focused work, quoted as a fixed price after the audit — so you're not watching a meter run. Small, well-defined fixes are fine too.

02Do you work alongside an existing team?

Usually. I'd rather improve your pipeline than replace it. I pair with your engineers, write in the open, and leave the architectural decisions with you — I'll argue my case, then respect the call.

03How do you handle access and secrets?

Scoped, time-limited credentials through your own vault or password manager. No production secrets in shell history, tickets, or chat. Access is inventoried at the start and revoked, in writing, at handover.

04Do you offer ongoing support?

Yes — a light monthly retainer for patching, alert triage, and small changes, plus a quarterly review of what's drifting. Month to month, cancellable with 30 days' notice.

05What if we're not sure what we need?

Start with the audit. It's fixed-price, it produces a document you own, and it regularly ends with "you don't need me for this" — which is a fine outcome for both of us.

06Are you available for emergencies?

Sometimes. Existing clients get priority; new emergency work depends on the week. Ask anyway — worst case I'll point you at someone who can help faster.

06 — Contact

Let's make your infrastructure unremarkable.

Tell me what's breaking, what's slow, or what's about to. You'll get a short, technical reply within one business day — no pitch deck, no calendar maze.

Telegram
@OttO4G
Response
Within 1 business day
Hours
09:00–18:00 UTC
Working
Remote · EU & MENA