Skip to content
StatusGet emergency help

Your developer is asleep. Production isn’t.

Senior engineering for production incidents, broken deploys and urgent bugs. You reach the engineer who does the work, not a ticket queue.

06:00–00:00 CET standard rates · 00:00–06:00 Wake Simon

P1Checkout returns 500Example call
21:47 CET15:47 New York
Impact
Since
21:31, right after release 4.18.2
Last change
payments-service deploy, migration 0142
Stack
Node 22, Postgres 16, Stripe webhooks
Contact
CTO, phone + Slack
21:58 CET11 min after the report
Simon Soka

I’ve accepted this as a P1 incident. I’m starting triage now at the Emergency Rescue rate. Please keep one decision-maker available and send access through the agreed secure channel.

Emergency Rescue · €300/h · 2 h minimum
22:24 CETcheckout 5xx back to 0.0%
  1. read-only DB + logs access granted
  2. 0142 renamed card_fingerprint; webhook handler still reads the old column
  3. rollback to 4.18.1, approved by CTO
  4. 5xx 0.0% for 5 min, payments flowing
22:41 CEThandoff note
What broke
Column rename shipped before the code that reads it
What changed
Rolled back to 4.18.1. No data lost, 0 payments double-charged
Prevent
Expand-then-contract migrations; webhook smoke test in CI
Billed
54 min → 2 h minimum · €600

An illustration of how a call runs, not a client incident.

Most developers have core working hours. I have core non-working hours.

06:00–00:00 CET

Move across the day to price any hour.

Two hours on a production incident: €600

Emergency, production down
€300/h
Priority, same day
€225/h
Scheduled
€150/h

2-hour minimum on daytime work. If it can wait until tomorrow, don’t pay emergency pricing. Full pricing and On Call plans

Systems people depend on

Payments, national customs, credit data, network services, e-commerce. Public figures only; client work under NDA stays unnamed.

11+

years building and operating production software.

1M+

API requests a day through payments infrastructure I shipped.

10k+

miners on a C++20 backend, users on 5+ continents.

2,300+

commits across four production codebases in 14 months, solo.

How a call runs, from report to handoff

Example timings from the call above. Yours depend on the system.

  1. T+0

    Tell me what broke

    Impact, when it started, what changed last, the stack, and any safe error or log context.

  2. T+11

    I confirm fit and urgency

    If I cannot responsibly help, I say so before you lose more time.

  3. T+19

    We set up safe access

    Temporary credentials, least privilege, one decision-maker on your side.

  4. T+24

    Triage first

    Find the failure mode, stabilize where possible, explain the next move.

  5. T+37

    Fix or mitigate

    The smallest safe change that restores service, then verified.

  6. T+54

    Clean handoff

    What happened, what changed and what should be prevented next.

What I tell people up front

When an incident is outside what I can own

“I don’t think I can responsibly own this incident fast enough in the current stack/scope, so I’m not going to burn your time pretending otherwise.”
Simon Soka
Simon SokaEngineer on every call · simon@bettercallsimon.eu

On guarantees

“I can guarantee the process and response level I sell. I cannot responsibly guarantee the resolution time of an unknown system before triage.”
From the On Call termsResponse targets: 15–60 min by plan

Software broke? Better Call Simon.

Impact and one way to reach you is enough to start. Everything else is optional.

Get emergency help
simon@bettercallsimon.eu
To simon@bettercallsimon.euSubject Incident
Impact: what is broken, for whom
Since: HH:MM CET (or your timezone)
Last change: deploy / config / migration
Stack: language, hosting, database
Severity: P1 down · P2 degraded · P3 urgent
If the form is blocked on your network, send this.Open in email