Senior Lead Front-End Engineer at JPMorgan Chase, building the UI foundations other teams ship on.

About
Front-end engineer for 12+ years, 8 of them at JPMorgan Chase.
I lead an 8-engineer team building Risk Technology's UI infrastructure: a pattern and component library on top of the firm's design system, plus BI tooling and application scaffolding. Twenty-plus internal applications ship on it.
I care most about the parts that are hard to retrofit later: accessibility, API design, and sensible defaults.
Skills
- React
- Next.js
- TypeScript
- JavaScript
- HTML
- CSS/SCSS
- TailwindCSS
- GraphQL
- Storybook
- Figma
Experience
JP Morgan Chase
February 2024 - PresentSenior Lead Front End Developer
- I lead eight engineers. We build the component library and BI tooling that 20+ applications across the firm ship on.
- Built the scaffolding that turns a new project's setup from weeks into days. Pre-approved patterns, no blank page.
- UI lead for Risk Technology: I set the technology direction and argue for sensible defaults.
- On the Risk Technology AI working group, setting the standards for how the area adopts and reuses AI.
- Collapsed 10+ internal microsites into one documentation pipeline with a searchable index of components, AI skills, MCPs and APIs.
&Open
March 2022 - February 2024Lead Frontend Developer
Evotix
January 2021 - March 2022Senior Front End Developer
JP Morgan Chase
May 2019 - December 2020Senior Front End Developer
JP Morgan Chase
June 2014 - May 2019Frontend Developer
Education
Glasgow Caledonian University
September 2010 - May 2014Computer Games Software Development (BSc Honours)
Projects
Things I built because I wanted them to exist.
Plots career paths against projected earnings so you can see what each move is worth. Built with Next.js and TypeScript.
- nextjs
- typescript
- tailwindcss
- supabase
- vercel
- shadcn
- claude
My photography portfolio, built with Next.js and Tailwind CSS. Cloudinary handles optimised image delivery.
- nextjs
- typescript
- tailwindcss
- cloudinary
- vercel
- shadcn
Open-source link-in-bio tool built with Next.js. A lightweight alternative to the commercial services.
- nextjs
- typescript
- tailwindcss
- vercel
- shadcn
Log Dumper
A TypeScript logging library for React: typed context, error boundaries, a live DevTools panel and exportable logs. The console on the right is the published package, imported and running here.
- typescript
- Press a button below to emit an entry
466 contributions in the last year1-day streak, busiest in Aug

The Other Job
I shoot wrestling. Sometimes for WWE.
Shows I've worked on
- WrestleMania
- Royal Rumble
- Raw
- SmackDown
- Clash at the Castle
- Night of Champions
- Crown Jewel
- NXT

The monitor is what goes out.
Weekends and evenings I'm on a broadcast camera. Live, no second take, and the director is in your ear the whole time.
- November 2021 - Present
WWE
Camera Operator
- October 2020 - Present
Insane Championship Wrestling
Camera Operator
- January 2016 - Present
Steven McKinnon Photography
Photographer

Behind the production desk.
Contact
Hiring, or just want to talk shop? Send me a message.