I leave the system faster, and with more headroom than I found
There is almost always headroom inside the system, and it costs less than hardware: a faster response, lower utilisation, a higher ceiling — usually all three come from changes in the code and in the chart. A query, an N+1, a cache, connection pools, timeouts and retries, resources for the pods. And once that headroom is spent, I give you the hardware numbers: how many instances of which type the forecast needs. Six years: a bank, an industrial platform on Kubernetes, an API-security WAF.
years of load and non-functional testing on platform systems
users instead of 200 — a banking system after seven optimisations that load testing found
the tolerance within which the load-testing service checks actual RPS against the requested figure — outside it, a scenario does not count as valid
What I am useful for
A diagnosis with the treatment attached, not a report marked "needs attention".
Response — faster
Query plans and heavy queries, N+1, locks, synchronous calls where the work should be asynchronous, cache warm-up after a restart. The cause is confirmed with application, database and infrastructure metrics, then carried through to a change in the code or the chart.
Utilisation — lower
Needless serialisation, missing keep-alive, a cache that isn't there, requests and limits set wrong. I measure RPS per vCPU by traffic type before and after the optimisations — and size the hardware from those numbers rather than from a hunch.
Ceiling — higher
Connection pools, retries without jitter, the limit of replica scaling, behaviour at 1.5× the breakpoint. One run shows what gives way first; the run after the fix shows how much headroom the change bought.
If your need is a different one
Functional and manual feature testing, UI test automation, product feature development — not my line of work, and it is fairer to say so up front. If you are not yet sure what you need: the conversation usually starts with one question — what load the system has to hold, and what happens if it does not.