The On-Call Runbook: Engineering Practices That Make Incidents Survivable
A practical guide to building an on-call rotation that works for small SaaS teams, covering runbook format, alert design, escalation, and incident review.
Read morePractical insights and guides on PHP/Symfony, React/Next.js, legacy modernization, and software architecture, drawn from 18+ years of building web applications for European businesses.
A practical guide to building an on-call rotation that works for small SaaS teams, covering runbook format, alert design, escalation, and incident review.
Read moreWhat legal tech SaaS actually needs to hold up in court: immutable document storage, eIDAS-compliant e-signatures, audit trails, and the GDPR retention conflict nobody warns you about.
Read moreA practical guide to measuring PHP code coverage with PHPUnit, reading the report correctly, and using mutation testing to check whether your tests actually catch bugs.
Read moreA performance audit tells you what is slow today. Symfony performance monitoring tells you what is about to get slow. This guide covers the six metric categories worth tracking continuously, the Prometheus recording rules behind them, and an alerting threshold that catches real regressions without paging anyone at 3am over noise.
Read moreA practical workflow for building a Symfony OpenAPI setup that starts with the spec, keeps code and docs in sync, and catches drift in CI before it reaches production.
Read moreTypeScript types what a function returns and says nothing about what it throws. A Result type built from a discriminated union closes that gap, and the compiler starts refusing to build when a caller ignores a failure path.
Read moreMost developers read two numbers off the Symfony Web Debug Toolbar and move on. The tabs they skip hold the answers to slow event listeners, cache key collisions, and access control bugs that only show up in production.
Read morePHP 8.1 added Fibers, and most explanations stop at a hello-world that suspends and resumes. This is the practical version: what a Fiber can do that a generator cannot, a scheduler short enough to read, and concurrent Symfony HttpClient calls without Swoole.
Read moreMost SaaS teams treat email as one thing until a newsletter blast lands their password resets in spam. This post separates transactional, marketing, and product-triggered email, and shows the Symfony architecture that keeps each tenant's sending reputation intact.
Read moreGerman software agencies vary wildly in quality and most of them price opaquely. Here is the evaluation process I would use as a buyer: which portfolio signals count, which interview questions expose seniority, and which contract clauses to refuse.
Read more