What a technical audit is
A technical audit is a health check of a software system, carried out by someone outside the team that built it. It reviews the code, architecture, infrastructure, security and ways of working, and turns all of that into something you can use to make decisions.
It isn't a blame hunt. Every system piles up rushed decisions, shortcuts and parts nobody wants to touch; that's normal. The goal is an objective snapshot of where you stand, so the next decisions (keep going, improve, rewrite, switch vendors or invest) are made with information instead of in the dark.
In one sentence: a technical audit answers three questions: how is my software doing?, what risks am I running? and what should I do first?
When it makes sense
You don't have to wait for something to break. These are the situations where it adds the most value:
- You inherited a system: the developer left, you switched vendors or you acquired a company along with its software. You need to know what you have.
- Nobody dares to touch it: every change breaks something, development keeps slowing down and nobody quite knows why.
- The system is slow or goes down and the usual fixes aren't enough anymore.
- You're about to invest: before a rewrite, a big new feature or scaling to many more users.
- You got wildly different quotes and want an independent opinion on what's really needed.
- You're worried about security: you handle customer data, payments or sensitive information and aren't sure it's well protected.
- You're raising money or selling the company, and the software will be part of the evaluation (technical due diligence).
What gets reviewed
The scope is tailored to each case, but a full audit usually covers these areas:
- Architecture. How the system is organized, what its parts are, how they communicate and whether that structure supports what the business needs now and in the coming years.
- Code quality. Readability, duplication, complexity, conventions and tests. The underlying question: how expensive and risky is it to change?
- Security. Authentication and permissions, handling of sensitive data, passwords and keys stored in the code, dependencies with known vulnerabilities and API exposure, using the OWASP Top 10 as a reference.
- Infrastructure and deployment. Where and how it runs, how a new version goes live, whether there are backups (and whether anyone has tried restoring them), monitoring, alerts and cloud costs.
- Database. Data model, indexes, integrity, slow queries and growth.
- Performance. Response times, bottlenecks and how much load it handles before degrading.
- Dependencies and technologies. Unsupported versions, abandoned libraries and excessive dependence on a single vendor.
- Processes and documentation. Version control, code review, test environments, documentation and how much knowledge depends on a single person.
How the process works
- An initial call, free of charge. You tell me what worries you, what decision lies ahead and how the system is built. From that we define the scope.
- A written proposal. What will be reviewed, how long it will take and a fixed price.
- Access. Read-only access to what was agreed: repositories, infrastructure, database (or an anonymized copy) and whatever documentation exists. We sign a non-disclosure agreement if needed.
- Discovery. One or two short conversations with whoever knows the system best, to understand the context and the history behind the decisions.
- Analysis. Manual review of the code and infrastructure, complemented by automated tools: static analysis, dependency scanning and metrics.
- Report and walkthrough. I deliver the report and we go through it together in a meeting, with room for every question.
What you get at the end
- Executive summary. One or two pages in plain language, for decision-makers, no technical background required.
- Findings by severity. Each issue rated critical, high, medium or low, with the evidence and its concrete business impact.
- A prioritized action plan. What to do now (quick wins), what over the coming months and what in the long run, with the estimated effort for each.
- Recommendations. On architecture, tools, processes and, where relevant, what kind of technical profile to bring in.
- A walkthrough meeting to go over the results and answer questions.
The report is yours: you can use it with your team, share it with another vendor or use it as the basis for comparable quotes.
How long it takes and what it costs
It depends on the size and complexity of the system. As a reference:
- Small system (one application, one repository): one to two weeks.
- Medium system (several services, integrations, more than one environment): two to four weeks.
- Large or critical system: split into stages, starting with what carries the most risk.
The price is fixed and set after the initial call, based on the scope. That way you know up front what you'll invest.
What an audit is not
- It's not a blame hunt. The system is evaluated, not the people.
- It's not a rewrite. The audit diagnoses; it doesn't change the code unless agreed otherwise.
- It's not a full penetration test. It includes a security review, but if the system needs formal penetration testing, I'll recommend it.
- It doesn't commit you to anything. You can implement the improvements with me, with your team or with whoever you choose.
How to prepare
You don't need everything in order; that's what the audit is for. But it helps to have at hand:
- The list of what worries you or what you need to decide.
- Who knows the system best, even if they no longer work at the company.
- Whatever documentation exists, even if it's out of date.
- Recent incidents or problems: outages, slowness, frequent errors.
- The access that will be needed, or who can grant it.