Journal
Notes onthe work.
- 2026-09-247 min
How to reduce form abandonment: order, validation and recovery
I focus on field order, well-timed validation and recoverable errors to reduce avoidable exits, then measure completed submissions rather than clicks on the submit button.
- 2026-09-237 min
How to evaluate an ai feature before you ship it
I evaluate automated features with representative test cases, structured failure logs, and a completion metric that counts correction work rather than hiding it.
- 2026-09-237 min
How to choose injection moulding versus cnc for a first run
I compare first-run quantities, tooling commitments and geometry limits to decide when machining buys useful flexibility and when moulding justifies its higher upfront cost.
- 2026-09-227 min
Workflow automation versus design: which should I choose?
I compare interface fixes with automation by looking at decision quality, exception handling, maintenance cost and the work that should disappear before anything gets connected.
- 2026-09-227 min
How to serve images faster with responsive image optimisation
I treat image delivery as three decisions: which file to send, how much detail the screen needs, and when the browser should request it.
- 2026-09-217 min
How to use spacing tokens with a 4-point spacing system
I use a four-point spacing scale, shared layout rules and a small exception policy to keep design files and production layouts from gradually drifting apart.
- 2026-09-206 min
How to prioritise a backlog when everything is urgent
I use weighted scoring, explicit exceptions and a fixed capacity limit to separate urgent requests from work that deserves a place in the next delivery cycle.
- 2026-09-207 min
How to build an ai content pipeline that stays on brand
I use explicit voice rules, approved examples and automated review gates to keep generated content consistent, with human approval for claims and sensitive material.
- 2026-09-196 min
Design critique format: how to improve the work
I use a timed design critique with explicit roles, focused questions, and a decision record to turn competing opinions into changes worth making.
- 2026-09-197 min
How to build a ui type scale that survives real content
I choose type sizes around actual interface content, then test line height, text width and wrapping before turning those decisions into reusable tokens.
- 2026-09-187 min
How to choose one product success metric for a feature
I choose a feature’s accountable metric by defining the behaviour it should change, fixing the denominator, and checking the measurement before anyone gets access.
- 2026-09-187 min
How to ship accessible components with keyboard support
I build accessible components around native controls, predictable focus and documented keyboard behaviour, then test the rendered result rather than trusting the component library.
- 2026-09-177 min
How to add ai to a product without eroding trust
I treat disclosure, correction and recovery as product requirements, with practical patterns for showing what automation does and keeping consequential decisions under user control.
- 2026-09-177 min
How to design a high converting landing page without shouting
I build landing pages around a clear offer, evidence beside the relevant claim, and one action that makes sense for the visitor.
- 2026-09-167 min
How to automate client onboarding from contract to kickoff
I build client onboarding around verified triggers, recoverable actions and one human approval, with clear rules for missing information, duplicate events and failed handoffs.
- 2026-09-167 min
How to design a pitch deck that reads in 90 seconds
I build pitch decks around a short reading sequence, claim-led headlines and restrained graphics, then test what someone can recall after ninety seconds.
- 2026-09-157 min
How to improve Largest Contentful Paint: four fixes
I diagnose slow Largest Contentful Paint by separating server response, resource discovery, download time and rendering, then fixing the part that actually delays visible content.
- 2026-09-147 min
How to design readable data tables: density and defaults
I design readable tables around the comparison someone needs to make, then set density, alignment, scrolling and defaults to keep that task straightforward.
- 2026-09-147 min
Mobile first web design: layouts that work at every width
I start with content priorities, then use layout pressure, reachable controls and deliberate expansion to make mobile first web design work beyond a narrow screen.
- 2026-09-136 min
How to reduce JavaScript bundle size as a project grows
I keep growing web projects fast by budgeting initial JavaScript, splitting optional features, and checking browser work rather than trusting a smaller output folder.
- 2026-09-137 min
How to write ui microcopy that removes hesitation
I use specific labels, timely explanations and clear consequences to help people complete forms, recover from errors and make decisions without second-guessing the interface.
- 2026-09-127 min
How to set typography for reading long articles on screen
I set long-form screen typography by balancing line length, leading and paragraph spacing, then testing the hierarchy against real content and narrow screens.
- 2026-09-127 min
Web imagery art direction: how to choose meaningful images
I choose website imagery by its purpose, then test whether the crop, placement and alternative text preserve that purpose on small screens.
- 2026-09-117 min
How to map a user journey your team will actually use
I keep journey maps useful by limiting their scope, separating evidence from assumptions, and connecting each friction point to a decision someone can make.
- 2026-09-117 min
Product design brief template: six lines that reduce rework
I use six lines to agree the problem, user, outcome, time budget, boundaries and risky assumptions before design decisions become expensive to reverse.
- 2026-09-107 min
How to prepare artwork for print: colour, bleed and proofs
I treat print artwork preparation as a production check: agree the colour settings, build enough bleed, inspect image resolution and approve a proof that matches the job.
- 2026-09-107 min
How to scope an mvp without cutting its value
I scope a first release around one complete user outcome, then cut variations, automation and reach before touching the parts that make it useful.
- 2026-09-097 min
How to run a usability test with five users
I use five-person usability tests to find friction in a specific task, with a neutral script, consistent notes, and clear limits on the conclusions.
- 2025-03-106 min
The Quiet Interface
On the difference between a product that's busy and a product that's working - and why the best interfaces feel like they were always there.
- 2024-11-025 min
Design Systems Are Not the Point
Why most design systems collapse under their own weight, and what to optimise for instead.