Developer · Cyclist · Aotearoa NZ

James
Mowat

Software developer who thinks his VO₂ max is higher than it is.

I build things on the web during the week and chase Strava segments on the weekend. Sometimes I do both. Usually I lose the segment.

FTP 320W "VO₂ max" 73 🫣 Complaints / week
James Mowat on a gravel climb in cycling kit 📍 somewhere up a gravel climb · NZ
On the move

Always
somewhere
out riding.

Runs, rides, the occasional regrettable hill-rep session — it all ends up on Strava. If the kudos are flowing, the legs are usually suffering. Follow along and watch the data tell on me in real time.

8,420 kmThis year
112,300 mClimbed
312Activities
View my latest activity
James Mowat
@James Mowat · Who let 3 seat cook?
LIVE
Morning Gravel Hammer
Waterfront · Auckland City
0.0 km
Distance
0:00
Moving
0.0
km/h
bpm
Selected work

Recent projects

Three things I've shipped lately. Each one started as a "this should only take a weekend" — none of them did.

01
Rowlyze

A rowing analytics platform for coaches and athletes.

ReactTypeScriptGoPocketbase
02
Trains

Live departures, delays and platform changes for NZ rail in one glanceable board. Because the official app shouldn't make you miss the 8:07 to the city.

Next.jsGTFSLeafletPWA
03
NZEP

A private equity investor dashboard for managing investments in New Zealand.

Next.jsAWSTypeScript
James Mowat
About me

Hi, I'm James.

I'm a software developer based in Aotearoa New Zealand. I like building products that feel fast, look honest, and don't make people think — the kind of software you forget you're using because it just gets out of the way.

Off the keyboard you'll find me on two wheels, optimising a power curve I've decided is more impressive than it actually is. Garmin on the wrist, Strava on the phone, and a suspiciously specific opinion about gravel tyre pressure.

I care about the small details — the loading state, the empty state, the 2am bug — and I think good engineering and good design are the same discipline wearing different shoes.

TypeScriptReactNodeGoPostgresConcept 2 APIFigma