Craig Hawkes
Four screens down to one.
Fifteen years in web, developer first and design in the middle. That phone is the payment screen I built for an FCA‑regulated debt collection estate, and I moved it onto typed Next.js while it was still taking live money.
Mobile payments up 80%.
Six people tried it before me. Go on, pay. It's a demo, nothing leaves the page, and it's the same one screen.
Seven in ten. One thumb.
Every screen in here passes WCAG 2.2 AAA in both themes. Make the text twice the size, turn the contrast all the way up, and it still works.
Glare: a rough idea of what bright screens do to some dyslexic readers. The words won't sit still.
Read it your way
- For
- Lead, principal, head of engineering, first technical leader
- Terms
- Full time or contract
- Where
- Remote or hybrid
It's 9:41 in Hamilton, Scotland. I'll answer today.
Pay attentioncraig@craighawkes.dev
Before · BPO Collections, 2025
It used to take four screens to pay a debt.
Find your account. Pick an amount. Type your card in. Check it, confirm it, then a 3D Secure redirect on top. Every one of those screens is a place where somebody already in arrears puts the phone down and decides it can wait.
Under it sat 299 VB files, 101 Web Forms pages, 131 SQL scripts and more than 97 stored procedures on a PCI‑DSS SQL Server. About six developers had tried moving it from SagePay to Fiserv. None of those attempts ever reached testing.
Six people had tried it. They asked me. I said yes.
After · from launch
Mobile payments up +80%
Mobile payments, from the day it launched.
For every ten people who used to pay on their phone, eighteen do now, and seven in ten of them pay with Apple Pay, because the button is right there on the one screen and it takes a thumb. 3D Secure, Google Pay, Open Banking, Direct Debit and bank validation all live in that same flow.
When my work is great, I'll tell you that it's fucking great, because I'm good at my job.
Under the button
I did it solo. 2,046 lines of C#, and not one failed cutover.
A library with 8 gateway operations and 20 request and response types, with every request signed using HMAC‑SHA256. The retries are idempotent: the client request ID means a timeout can't charge somebody twice. That's what you felt when you pressed pay twice up top.
Zero failed cutovers matters more to me than the 80, because of who is on the other end of it:
when it breaks, somebody already in arrears can't pay, and they'll assume that's on them.
inclusive.io · co‑founder, Feb 2024 to now
117 components. Built solo. Built twice.
inclusive.io is my own company, a design system and the applicant tracking software built on top of it. I built all 117 components on my own, then rebuilt the lot for V2, because I couldn't leave it alone. 26 ATS workflows and 174 routes verified, 0 axe violations in both themes, WCAG 2.2 AAA, on a three‑tier OKLCH token system from 280px to 5K with 360 contrast pairings checked on every run. That checking found nine real defects nothing else had caught.
The phone's running a slice of it. Put the text to 200%, turn the contrast all the way up, or switch on glare, the moving text some dyslexic readers live with, and it still works.
I'm not ONLY Design Systems and Accessibility. Those may be my specialisation, but I'm a phenomenal developer outwith just those.
Quoin · open source
Print's had baseline grids since metal type. The web still hasn't got one.
Quoin puts a web page on a baseline grid, and it measures how far a page drifts off one. I pointed it at my old site next to eight design systems, and it came last of the nine, at ninety distinct drift values, three times worse than the next worst. I published that. Then I got it from ninety down to ten, 9th to 4th. Then I swapped that design for this one and My Desk, measured again the same way, and they came out at 45 and 60, behind all eight. That wasn't acceptable, so both now seat themselves on the grid with Quoin when they load. This page drifts 6 ways at desktop widths, My Desk on a phone 4, and the design systems are measured as they ship.
fuck ups do happen, we all make mistakes, and trying to pretend we never do is just lying through our teeth.
Paul McFadden Wealth · Head of Web, Dec 2022 to Jan 2024
£10m+
of revenue through funnels I was personally accountable for.
I ran the web department for a property education group and its partner businesses. I hired 3 of the team and co‑managed 7, five videographers, a junior web designer and a social media intern, and built one atomic design system across web, email and courses. Open rates went up 60% and cold outreach replies up 27%.
Hire · open now
Grab me before somebody else does.
Open to lead, principal and head of engineering roles, or first technical leader. Full time or contract, remote or hybrid, from Hamilton. Fifteen years in web and 50+ clients through my own studio since 2017, and every number on this page is real.
My Designs and My Desk are two sides of me, and I can't decide which you'll like better, so tell me: email me which.
Looking great doesn't always mean working great, but working great almost always includes looking great.
- BPO Collections, full stack developer, contract
- inclusive.io, co‑founder, design systems engineer
- Paul McFadden Wealth, head of web
- TMD Media, senior web designer
- DesignBuddy UK, my own studio, 50+ clients
- NOVAVAPES, graphic designer, one brand for six years