Technology Consulting & Strategy

Current Solutions Audit

An audit turns a vague sense that something is wrong into a ranked list you can act on: what is actually risky, what is merely untidy, and what will break first as you grow.

What an audit is actually for

Most companies do not commission an audit because everything is fine. They commission one because something has become noticeable: deployments that used to take an hour now take a day, a bill that grew faster than usage, an outage nobody could explain, or a supplier relationship ending and no clear picture of what is being handed over.

The purpose is to replace impressions with measurements. Not a general opinion that the system is dated, but a list: this query takes eleven seconds under load, this dependency has a known vulnerability, this job's runtime grows linearly with your order table, this backup has never been restored. Findings in that form can be argued with, priced and scheduled. General opinions cannot.

Static review finds what is visible without traffic

The first pass is reading. Repository layout, dependency versions, infrastructure definitions, the deployment pipeline, configuration across environments.

This catches a specific class of problem: packages years behind with published vulnerabilities, credentials committed where they should not be, staging and production configurations that have quietly diverged so that testing in staging proves less than anyone assumes, and manual steps in a deployment process that only one person knows how to perform. None of it requires load to find. All of it tends to matter at the worst possible moment.

Runtime review corrects the assumptions

Reading code tells you what should be slow. Measuring tells you what is.

These disagree more often than not. Teams optimise the function they wrote most recently and miss the ORM call that quietly runs once per row. We look at query plans, request traces, error rates and resource use under real traffic, and where the picture is incomplete we generate load to find the ceiling deliberately rather than waiting for a launch to find it accidentally.

The output is a number instead of an adjective. "The system supports roughly this concurrency before response times pass your threshold, and the constraint is the database connection pool" is something you can plan around. "It might not scale" is not.

Failure modes are where the serious findings are

The single most common serious finding in an audit is not performance. It is a recovery path nobody has tested.

Backups that run successfully but have never been restored. A failover that was configured two years ago and would not work now because the secondary is running a different version. A rollback procedure that exists in a document but has never been rehearsed, so the first attempt happens during an incident. A third-party dependency with no timeout, so when it hangs, your application hangs with it.

We work through these explicitly, because they are cheap to check and expensive to discover live.

There is a related category worth naming: the things only one person knows. A deployment step that lives in someone's shell history, a component nobody else has ever modified, a vendor account registered to an individual's email. These are not technical faults and they will not show up in any monitoring dashboard, but they behave exactly like single points of failure and they leave with the person.

What you do with the report

The report is ordered by impact against effort, and it deliberately separates three categories: what is dangerous, what is expensive, and what is simply irritating to work with.

That separation matters, because the third category is what teams naturally want to fix first. Tidying code is satisfying and visible. It is also frequently the least urgent thing on the list. An audit is most useful when it gives you permission to leave some ugly code alone and spend the same week making sure you can restore a database.

Some findings will be things your team already flagged. That is fine, and often the point. An outside measurement is what gets internally known problems taken seriously enough to fund.

What you get

Prioritised findings list

Every finding scored by impact and by effort to fix, so the report ends with an order of work rather than a hundred equally urgent bullet points. The distinction between 'this will cause an outage' and 'this is ugly' is made explicitly.

Performance and bottleneck analysis

Where response time actually goes: slow queries, missing indexes, N+1 patterns, synchronous calls to third parties, cold starts. Measured against real traffic rather than assumed from reading the code.

Scalability limits with the numbers

The point at which the current setup stops coping: connection pool exhaustion, a single instance that cannot be duplicated, a nightly job whose runtime grows with your data. We name the ceiling instead of saying it 'may not scale'.

Security and stability assessment

Dependency versions and known vulnerabilities, secrets handling, access control, exposed endpoints, and whether the backups can actually be restored. That last one is checked, not assumed.

Cost review

Over-provisioned instances, storage nobody reads, duplicated SaaS licences, and traffic patterns you are paying premium rates for. Often the fastest part of the report to act on.

Remediation plan

The findings turned into a sequence of concrete changes, each with a rough effort band and a note on whether it can be done incrementally or needs a planned window.

How we work

  1. 01

    Access and interviews

    Read-only access to code, infrastructure and monitoring, plus conversations with the people who maintain it. The team usually knows where the bodies are buried; the audit's job is to confirm it and rank it.

  2. 02

    Static review

    Repository structure, dependency tree, infrastructure definitions, deployment pipeline, test coverage and configuration. This finds the risks that are visible without traffic. Outdated packages, secrets in the wrong place, environments that have drifted apart.

  3. 03

    Runtime review

    Metrics, logs, error rates and database query plans under real load. This is where assumptions about performance usually get corrected, because the slowest thing is rarely the thing people suspect.

  4. 04

    Failure probing

    We work through what happens when specific pieces fail: a restore from backup, a dependency timing out, a queue backing up, a deploy that needs rolling back. Untested recovery is the most common serious finding.

  5. 05

    Report and walkthrough

    You get the written findings and a session to go through them with your team, so the reasoning transfers rather than sitting in a document. Disagreement in that session is welcome and often improves the priorities.

Tools and technology

Where a solid open-source tool exists, we choose it over a closed one. No lock-in to a single vendor, and costs you can actually predict.

  • Grafana
  • Prometheus
  • OpenTelemetry
  • k6
  • Lighthouse
  • OWASP ZAP
  • Trivy
  • PostgreSQL
  • Docker
  • OpenTofu
  • Terraform
  • Sentry

Frequently asked questions

More services in this category

Read testimonials from companies that trusted us

They're always a few steps ahead.

Mikołaj

CEO & Founder, GBS®

View on Clutch
GBS® logo

Delivered well ahead of the deadline.

Yasniel

CEO, IMEGA Sp z o.o.

View on Clutch

ZanReal's individual approach is impressive.

Adam

Executive, w-studio.pl

View on Clutch

Knowledge and business intuition make them a valuable partner.

Magda

Designer, DIGITALUNI

View on Clutch

Quick solutions that reduced costs by 99%.

Andrei Kapytau

Team Lead, busel.uk

View on Clutch

+20% deliverability for our email campaigns.

Joan Calabria

Sales Director, 36NORTH

View on Clutch
36NORTH logo

Not sure what will break first in your system?

Message us

Tell us what has become slow, expensive or hard to explain, and we will outline what an audit of your setup would cover and where it should start.

Zanek

Can't keep up with changes in AI world?

Let us do the heavy lifting. Every week we distill the most important AI developments into a focused 5-minute briefing — so you stay ahead without the noise.

Find out more
Weekly AIonline