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.
Pay by card
Checking with your bank
Your bank may ask you to confirm in its app. Nothing is stored on this phone.
£120.00 paid
Thanks, Sam. That's on your account now.
- Paid with
- Apple Pay
- Reference
- PX-4471-2290
- Left to pay
- £1,164.60
- Receipt
- Sent to your email
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."
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
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.
- 1My Desk, on a phone4
- 2Shopify Polaris5
- 3My Designs6
- 4Material Design9
- 5GOV.UK11
- 6Atlassian18
- 7Salesforce Lightning21
- 7Carbon21
- 9Ant Design24
- 10Tailwind27
- 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
- 1NujabesArtist
- 2Coheed and CambriaArtist
- 3PrimusArtist
- 4Foo FightersArtist
- 5Andy McKeeArtist
Right now · Hamilton, Scotland
It's --:-- here.Hamilton, Scotland.
Late-night rotation: Nujabes, Coheed and Cambria, Primus, Foo Fighters, Andy McKee.
Writing · the latest four
Written down, with the numbers that went against me left in.
- 6 Sept 2026Warm on purpose, and why I stopped trying to fit every screen at once
- 2 Sept 2026The tool scored my site 100%, and nobody owns a phone that wide
- 29 Aug 2026Eight typefaces gave me the same number, and I read it as consistency
- 16 Aug 2026My site came last in my own survey, so I went and fixed it
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.
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.
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.
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
- OKLCH colour, gated. On 1.89% of sites, and the build fails if it gets flattened to sRGB.
- 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.
- Three separate builds. Phone, tablet and desktop each get their own component tree, not one squeezed three ways.
Design system · the tokens, as declared
A statement is not a standard.
- mat
oklch(0.30 0.035 245) - paper
oklch(0.965 0.012 85) - core
oklch(0.93 0.03 85) - ink
oklch(0.21 0.015 60) - accent
oklch(0.78 0.15 62) - red
oklch(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.
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.
Craig Hawkes · Lead developer · Hamilton, Scotland
Grab me before someone else does.
The other side · get in touch
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.


