DATABASE ENGINEERING

The layer everything else depends on, done right.

SQL Server schema design, query tuning and indexing — built correctly the first time, or fixed when an existing database is buckling under real traffic. If your app is slow, the cause is almost always here: a few queries and some missing indexes, not the hardware. Remote, worldwide.

Design it right, or make the slow one fast.

Two kinds of work: building a database that stays fast as it grows, and rescuing one that's already grinding. Here's what each covers.

MOST REQUESTED

Performance tuning

Find the queries actually costing you — missing indexes, N+1 patterns, blocking and stale statistics — and fix them, cheapest change first.

DESIGN

Schema & data modelling

Tables, relationships and constraints designed so the data stays correct and the queries stay simple as the app grows.

INDEXING

Indexing strategy

The right indexes for how the app actually queries — not one per column, and not none. Measured against real execution plans.

LOGIC

Stored procedures & T-SQL

Procedures, functions and triggers written to be readable and fast — with set-based logic instead of row-by-row loops.

MIGRATIONS

Migrations, zero-downtime

Schema changes and data migrations planned so they ship without taking the system offline or risking the data.

AUDIT

Database health audits

A structured review of a struggling database — indexes, queries, blocking and growth — with a prioritised fix list you can act on.

INCLUDED

What a database engagement includes

Whether it's a fresh design or a rescue, the work is measured, not guessed — every change justified by an execution plan or a metric.

  • Schema & relationship design (or review)
  • Query tuning against real execution plans
  • Indexing strategy & cleanup of unused indexes
  • Stored procedures, functions & triggers
  • Zero-downtime migration planning
  • Reporting & analytics queries
  • A prioritised health-audit report
  • Before / after numbers, so the win is provable
SQL Server · T-SQL · Dapper · Entity Framework Core
WHY ME

Someone who lives in the whole stack

A lot of "slow database" problems are really application problems — how the code queries the data. Because I build the backend too, I fix the real cause, not just the symptom.

  • I see the app and the database as one system
  • N+1 and ORM traps caught at the source
  • Fixes ranked cheapest-and-safest first
  • No "buy a bigger server" as the first answer
  • Clear before / after so you know it worked
  • You keep every script and the full report

From "it's slow" to "it's fixed", in five steps.

01

Understand

What's slow, when, and for whom. We separate a database problem from an application one before touching anything.

02

Measure

Execution plans, wait stats and the actual expensive queries — the diagnosis comes from data, not hunches.

03

Fix

Indexes, query rewrites and schema changes, cheapest and safest first, each one validated against the plan.

04

Verify

Re-measure under realistic load and show the before / after numbers, so the improvement is provable, not claimed.

05

Hand over

You get every script, the audit report and a short list of what to watch as the data keeps growing.

The thinking behind the work.

A write-up and related services that show how I approach data — where slowness really comes from, and the layers around it.

Database slow, or starting fresh?

Tell me what's happening — the app is crawling, or you're designing something new. You'll get an honest read on the cause and a clear quote, with no pressure.

Get a quote →