Craig Hawkes, lead developer

Open to lead, principal and head of engineering roles

Quoin's live site, open on the portrait monitor
Late-night rotation · Nujabes · Coheed and Cambria · Primus

--:--Hamilton

they know how to scroll, they're not idiots

Right now it's --:-- in Hamilton, Scotland

The other side of meMy Designs Email me

Lead developer · fifteen years in web · developer first

I cut a live payment flow from four screens to one, and mobile payments went up 80%.

Open to lead, principal and head of engineering roles

Everything on this desk is real work. Scroll, or pick something up.

BPO Collections · Full Stack Developer, contract · Sept 2025 to Apr 2026

Mobile payments up 80% from launch, and 70% of those on Apple Pay.

For every 10 people who used to pay on their phone, 18 now do. I cut a four-screen payment flow to one on an FCA-regulated debt collection estate, and it kept taking live money the whole time.

When my work is great, I'll tell you that it's fucking great, because I'm good at my job.

Why it matters: "when it breaks, somebody already in arrears can't pay, and they'll assume that's on them."

Your accountSecure

Hi Sam. Here's where you are.

Left to pay

£1,284.60

£715.40 paidOn track

Pay today

Recent

  • 1 OctApple Pay£120.00
  • 1 SepApple Pay£120.00

Total today£120.00

or pay another way

A payment that times out can't be taken twice.

BPO COLLECTIONS

Payment infrastructure
Sept 2025 to Apr 2026

Payment screens
4 → 1
Mobile payments
+80%
of those, Apple Pay
70%
Failed cutovers
0
SagePay to Fiserv migration
developers who tried first
about 6
attempts that reached testing
0
done by
me, solo
C# written
2,046 lines
gateway operations
8
request and response types
20
request signing
HMAC-SHA256
retries
idempotent
Note
The client request ID stops a timeout charging someone twice.
Legacy estate, PCI-DSS SQL Server
VB files
299
Web Forms pages
101
SQL scripts
131
stored procedures
97+
Front end
ASP.NET → typed Next.js
Note
Moved while it kept taking live money. 3D Secure, Google Pay, Open Banking, Direct Debit and bank validation, all in one flow.

"Six people had tried it. They asked me. I said yes."

Read the full case study

BPO Collections · the payment flow

Four screens. Now one.

Someone already in arrears used to get through four screens to pay. Now it's one: Apple Pay, Google Pay, card with 3D Secure, Open Banking, and Direct Debit with bank validation, all in the same flow.

I moved the front end from ASP.NET onto typed Next.js while it kept taking live money, and the SagePay to Fiserv migration went over with 0 failed cutovers.

inclusive.io · Co-⁠founder and Design Systems Engineer · Feb 2024 to now

My own company. 117 components, built solo, twice.

A design system and the applicant tracking software built on it, rebuilt from scratch for V2. A three-tier OKLCH token system holds from 280px to 5K, and my own verification found nine real defects nothing else had caught.

  • 26ATS workflows
  • 174routes verified
  • 0axe violations, both themes
  • AAAWCAG 2.2
  • 360contrast pairings, every run
  • 9defects nothing else caught

Read the case study

The inclusive.io dashboard, the real app, with its activity feed and pipeline
The real app, not a mock. I put myself in its demo data as a candidate, so its activity feed has Sarah reviewing me. "gatekeeping the web ... is essentially gatekeeping information for the pure intention of making yourself look good"

Quoin · open source · the benchmark, printed

Print's had baseline grids since metal type. The web still hasn't got one.

So I built Quoin to measure it. My old site came last of nine, at ninety distinct drift values, and I published that. Then I fixed it: ninety down to ten. Then I swapped that design for these two and measured again, the same way: 45 and 60, behind every design system on the list. That wasn't good enough, so both now seat themselves on the grid with Quoin when they load, and the list below is the result. The design systems are measured as they ship.

  1. 1My Desk, on a phone4
  2. 2Shopify Polaris5
  3. 3My Designs6
  4. 4Material Design9
  5. 5GOV.UK11
  6. 6Atlassian18
  7. 7Salesforce Lightning21
  8. 7Carbon21
  9. 9Ant Design24
  10. 10Tailwind27
  11. ​My old site, first run90

Paul McFadden Wealth · Dec 2022 to Jan 2024

Head of Web

I ran the web department for a property education group and its partner businesses, and built an atomic design system across web, email and courses.

  • 60%up on open rates
  • 27%up on cold-outreach replies

£10m+of revenue through the web funnels and event pages, and it was mine to answer for.

Hired 3 of the team. Co-managed 7: five videographers, a junior web designer and a social media intern.

At £1,000 a pixel, £10m is 10,000px of scrolling.

How I work · proof, marked up

I couldn't leave it alone.

Looking great doesn't always mean working great, but working great almost always includes looking great.

Readers need everything above the fold know how to scroll, they're not idiots.

I check my own work harder than anyone else will. On inclusive.io my verification found 9 real defects that nothing else had caught.

When my own site came last in my own benchmark, I published it, then fixed it to fourth.

"fuck ups do happen, we all make mistakes, and trying to pretend we never do is just lying through our teeth."

they know how to scroll, they're not idiots

The note I'd stick on anyone's monitor who asks for everything above the fold.

Playlist

On rotation

CMe · 5 artists

  1. 1NujabesArtist
  2. 2Coheed and CambriaArtist
  3. 3PrimusArtist
  4. 4Foo FightersArtist
  5. 5Andy McKeeArtist

Right now · Hamilton, Scotland

It's --:-- here.Hamilton, Scotland.

 

Late-night rotation: Nujabes, Coheed and Cambria, Primus, Foo Fighters, Andy McKee.

The work · fifteen years, developer first

Five folders, newest on top.

BPO Collections Full Stack Developer · Sept 2025 to Apr 2026
Raised mobile payments 80% by cutting a four screen flow to one, and led the move off legacy ASP.NET onto a typed Next.js stack.
inclusive.io Co-⁠founder and Design Systems Engineer · Feb 2024 to now
117 components, built on my own, twice. Then the gates that could take the claim back off me.
Paul McFadden Wealth Head of Web · Dec 2022 to Jan 2024
Ran the web department for the group and its partner businesses, accountable for eight figures of web revenue.
DesignBuddy UK Founder and Full-Stack Developer · Oct 2017 to now
My own studio since 2017. 50+ clients. The brand and the build, both.
Earlier TMD Media, 2022 · NOVAVAPES, 2016 to 2022
Agency pace at TMD, then six years owning one brand at NOVAVAPES while the company grew up around it.

All the work

Accessibility statement · checked, not claimed

What's tested, every time

  • Tested against WCAG 2.2 AA on every route, at phone, tablet and desktop widths
  • 45 colour pairings held at 7:1, the AAA level, by a gate that runs before every deploy
  • 66 accessibility tests, with the AAA rules reported rather than left out
  • Nothing scrolls sideways from 280 pixels wide
  • Forced colours, reduced motion and more contrast, all switched on in the tests

Partially compliant: one exception, on purpose, and it's published.

Read the statement

Privacy · sealed

Nothing about you leaves this page.

It sets no cookies, and the only thing it asks anyone else for is what I'm listening to, from my own little server. If you vote in the poll, that server adds one to a tally and keeps nothing about you. Which design you picked and how you voted stay in your own browser. There's no form on this site and no list to add you to.

Read the privacy note

Spec sheet · how it's built

A portfolio that gates its own claims.

Before anything ships
9 gates
Once the build exists
2 more
End to end tests
551
Accessibility tests
66
Colour
OKLCH, gated
This page
one file, no libraries

Three things most sites don't do

  1. OKLCH colour, gated. On 1.89% of sites, and the build fails if it gets flattened to sRGB.
  2. An llms.txt. On 5.61% of the top ten thousand. Nobody can show it does anything, so it stays because it costs a few kilobytes.
  3. Three separate builds. Phone, tablet and desktop each get their own component tree, not one squeezed three ways.

How it's built

Design system · the tokens, as declared

A statement is not a standard.

  • matoklch(0.30 0.035 245)
  • paperoklch(0.965 0.012 85)
  • coreoklch(0.93 0.03 85)
  • inkoklch(0.21 0.015 60)
  • accentoklch(0.78 0.15 62)
  • redoklch(0.43 0.18 27)

core on mat 11.05:1 ink on paper 16.04:1 red on paper 7.92:1

Fourteen colours, three typefaces and one curve, read out of this page's own stylesheet.

The design system

Earlier designs · 10 June to 5 September 2026

The Blueprint, kept whole.

Warm cream paper, ruled with a fine green grid, and one green that only ever meant something. It's the only page still drawn like this.

Earlier designs

What should go here next?

One of my two designs ends up in this box. You pick which, and the other one stays.

You're on it

Craig Hawkes · Lead developer · Hamilton, Scotland

Grab me before someone else does.

The other side · get in touch

craig@craighawkes.dev

Open to lead, principal and head of engineering roles, or first technical leader. Full-time or contract, remote or hybrid.

My Desk and My Designs are two sides of me, and I can't decide which you'll like better, so tell me: email me which.

It's --:-- in Hamilton right now.

More of the workAll workWriting