Source code audit

You inherited a piece of software, you are torn between fixing it and rebuilding it, or you want to know whether the code you are paying for holds up. An independent code audit answers those questions with verifiable facts rather than impressions.

Close-up of source code displayed on a screen

What is a code audit?

A code audit is a structured examination of an application's source code, database and infrastructure, carried out by a team that did not write it. It produces a documented picture: what is solid, what is risky, and what it will cost to fix.

This is not code review in the everyday sense (developers reading each other's work before a merge). It is a one-off, independent mandate answering a business decision: invest, acquire, rebuild or carry on.

What an audit tells you that nobody else will:

  • The real risk level of your application in security and compliance.
  • The amount of technical debt accumulated, quantified as remediation effort.
  • Whether your system can absorb the growth planned for the coming years.
  • What explains the slowness and recurring bugs, beyond the symptoms.
  • How long a new team would need to take the code over.

What we analyze

Three axes, always the same ones, because they are the three ways software ends up costing its owner dearly.

Two people working face to face with their laptops

When should you have your code audited?

An audit is justified when an important decision depends on the state of the code and nobody inside the organization can settle it neutrally. The situations recur:

Before an acquisition or an investment

Technical due diligence. You are buying a company whose value rests on its platform: you need to know what you are actually buying before signing.

After the developer or vendor leaves

The code is here, the knowledge is gone. The audit establishes what remains, what is missing and how long a new team will need to take the wheel.

Before deciding between fixing and rebuilding

The most expensive question to settle on gut feel. The audit compares both scenarios with numbers, then you choose knowing what you are choosing.

After a security incident

A breach, a data leak, a failed penetration test. The audit looks for the structural causes behind the symptom, not just the door that was used.

When delivery times keep stretching for no reason

Every new feature takes longer than the last. That is the signature of technical debt that has reached the point where it sets the pace.

Before a rewrite

A prior audit turns a rewrite into a costed project rather than a bet. It is also the first stage of our rewrite mandates.

Our audit process

A useful audit fits in a few weeks and ends with a decision, not with a two-hundred-page document nobody will open. Here is how we work.

01

Scoping and access

Together we define the question the audit has to answer: sell, acquire, rebuild, secure, accelerate. We then get access to the code repository, a copy of the database and the hosting environment.

02

Automated analysis

We run the code through our static analysis and vulnerability detection tools: complexity, duplication, test coverage, vulnerable dependencies, end-of-life versions. This pass produces the map, not the verdict.

03

Targeted manual review

We read the areas that matter in depth: authentication, permissions, financial modules, external integrations and whatever the tools flagged. This is where the real risks live.

04

Interviews with your teams

An hour with the people who use or maintain the system reveals constraints no tool can see: the daily workarounds, the modules nobody dares touch any more, the promises never delivered.

05

Report and prioritized action plan

We deliver a report an executive and a developer can both read, with every finding graded by severity, costed in effort and ordered by return on investment. We present it in person and answer questions.

What you receive

An audit is only worth what it lets you decide. Our deliverables are built to be used in a leadership meeting the following week.

A complete audit report

A one-page executive summary, then the technical detail: architecture, security, performance, code quality, infrastructure. Every finding is backed by a code excerpt or a measurement, never by an opinion.

A risk matrix

Every issue graded by severity and likelihood, with its business impact stated in plain language. You immediately see what must be fixed this week and what can wait until next year.

A costed action plan

The recommended fixes, ordered by return on investment, each with an effort estimate. You can hand it to your internal team, to your current vendor, or to us.

A findings presentation

We present the conclusions to your stakeholders, technical and business alike, and answer their questions. A report you cannot discuss is worth nothing.

What our clients say

Finding Witify was a real relief for us. Not only did they meet our specific needs with a tailor-made solution, but they also supported us in our organizational transformation. Their technical expertise and unwavering support were crucial to our success.

Maude Rondeau
Maude Rondeau
President, Luminaire Authentik

Questions and answers

Witify

Witify

Custom software development

info@witify.io

1 800 334 9031

Between one and four weeks in the vast majority of cases. The duration depends on the size of the codebase, the number of integrations and the depth requested. A scoping audit, meant to settle the fix-or-rebuild question, often wraps up in a week.

The price follows the effort, so the size and complexity of the system. It is a fixed-scope mandate: we agree on the perimeter and the deliverables before starting, and the amount does not move. Compared with the cost of a rewrite launched on a bad assumption, it is the most profitable spend of the project.

We mainly audit PHP applications (Laravel, Symfony, CodeIgniter, Zend, CakePHP, framework-less code), JavaScript and TypeScript (Node, Vue, React), along with MySQL, MariaDB and PostgreSQL relational databases. Our technologies page details our coverage.

Yes, a serious audit requires reading the code. We sign a non-disclosure agreement before any access, work on an isolated copy and destroy the copies at the end of the mandate. An anonymized database is enough in most cases.

That is in fact the most frequent case. Our independence is the value of the mandate: we did not write this code and we have nothing to defend. The report stays factual and belongs to you, including if you choose to stay with your current vendor.

No, and it would be suspicious if it always did. A share of our audits conclude that the system is sound and that a few specific points simply need fixing. When a rewrite or a modernization is the right call, the report explains why, with numbers to back it.

You decide. You can hand the action plan to your internal team, to your current vendor, or ask us to carry it out under a support and maintenance mandate. The report is yours, with no obligation to continue.

No, the two complement each other. A penetration test attacks the application from the outside and proves a flaw is exploitable. A code audit reads the inside and finds the structural weaknesses an attack has not reached yet. On sensitive systems, do both.

Witify Logo Icon

Want to know what your code is really worth?