Day 1
Access and worries
Read-only access to the repositories, and a short call about what worries you: the crash, the rejection, the slowness, the bill. Your worries decide where we read first. We also try to build and run the app from its source, because whether that works is itself a finding.
Day 2
Architecture and data
How the app is put together, how data is modelled and moves, where the business rules live, and what happens at the edges: errors, retries, time zones, money. This is where most expensive problems hide.
Day 3
Security, dependencies, tests
Sign-in and permissions, secrets in the code, known vulnerabilities in dependencies, outdated packages, and what the tests actually prove, as opposed to what their names suggest.
Day 4
Findings, ranked
Each finding written with its file and line, ranked by severity, with the effort to fix it. A verdict for each area: fix, refactor or rebuild. Anything urgent is flagged to you the same day, not saved for the report.
Day 5
Walkthrough and quote
A walkthrough with your team, questions answered, and a fixed quote to fix the app or take the project over. The report is yours to take to any team, and you are under no obligation to hire us for the work.
What one finding in the report looks like
- Severity
- Critical, high, medium or low, judged by what it can cost you, not by how ugly the code is.
- Where
- The file and line it comes from, so any engineer can check it without taking our word for it.
- What
- The problem in one or two plain sentences.
- Why it matters
- What could happen to users, data or money if it is left alone.
- Effort
- How long the fix takes, as a range, and whether it needs other fixes first.
- Verdict
- Fix, refactor or rebuild for the area it sits in.
A standard audit covers one app or one backend of up to about 50,000 lines; an app and its backend together take a little longer. The price and the larger size are on the code audit page. See the code audit. It is a careful code review at the scale of a whole product, with the technical debt priced rather than just named.