Available for new projects

I design & build interfaces people enjoy

Senior frontend developer in Brisbane, with a bit over 20 years of it. Happy anywhere from the first sketch to the part where it goes live and has to keep working.

Clients and teams I've built for

  • Tools.com
  • Michael Hill
  • Neto
  • Bridj
  • JK Warehouse
  • Canetoad
  • Crafted Finance
  • Groundplan
  • Fire Management Solutions
// Selected work

Projects that ship & users that actually smile

View all projects →
DownThunder homepage with a 4WD on a beach, the 'Where to next?' search and member builds
Community platform · 2026

DownThunder 3.0

Rebuilt Australia's 4WD community from scratch and relaunched it after eight years. Every member account, rig, photo, forum post and reward point came along. Nobody lost a post.

Role
Just me. Design, build, data migration, hosting.
Stack
Nuxt 4, Laravel 13, MariaDB, Cloudflare
View case study
// What I actually do

I like turning messy problems into tools that work

The good bit is the moment a client realises their day just got a fair bit easier. That is most of why I do this.

01

Designing useful interfaces

Making something feel obvious is genuinely hard work. I sketch, test with real people and fuss over the details, so your users do not get lost or annoyed.

UX/UI · Interaction design · Usability · Accessibility
02

Engineering complex applications

The awkward bit of logic nobody else wants to touch. Front to back, wired into the systems you already run, and fast enough that nobody watches a spinner.

Frontend architecture · Backend integration · Real-time · Interactive tools
03

Modernising existing products

The old platform still works, mostly. I move it to something modern without losing the users, the data or the Google rankings, one sensible step at a time.

Legacy migrations · Performance · Maintainability · Incremental change
All services →
// The architecture

Complex tech, simple experiences

Three awkward problems from recent projects, and what I did about them.

Rocky climb track in TrailDays
TrailDays · today’s track, driven with your own rig

A physics engine for the 4WD in your garage

Problem
Every mod changes how a rig drives, but you only find out after you have paid for it and bolted it on.
Approach
A physics-based engine in TypeScript, running in the browser. It reads each member’s real build sheet: weight, centre of gravity, flex and traction.
Result
Members try a bar, a lift or a rooftop tent before buying, then drive their actual rig in a daily track.
Read the case study →
ploynt time travel map: Germany in October 2007, dense with LAN parties, next to a month-by-month histogram
884 LAN parties, 2006–2026, month by month

Twenty years of history that must not lie

Problem
A bulk import stamps every row with today’s date. Get that wrong once, and every “recently active” list quietly lies forever.
Approach
Every imported row keeps its legacy id, so the import can run again from scratch. Old LAN parties count by the date they happened, new ones by when they were added. The map is drawn from Natural Earth data with D3.
Result
Members reclaim their original profiles by email, and 884 LAN parties sit on a map and timeline that are actually right.
Read the case study →
FloorView live and replay session panels side by side
Watch live, or replay any past visit

Analytics you can watch, not just read

Problem
Dashboards report averages. What explains a lost sale is the order one particular shopper did things in.
Approach
The store’s real catalogue becomes an isometric floor in CSS 3D transforms. Little figures walk paths rebuilt from the session event stream.
Result
Owners watch shoppers live, or follow one visit from door to till, with nothing to set up beyond a Shopify connect.
Read the case study →
Torsten Schmidt
Torsten SchmidtSenior UI/UX Developer20+yrs
// The developer

The person who draws the screens also writes the queries

I'm Torsten, originally from Dresden and in Brisbane for 15 years now. I design and I build, so nothing gets lost between the mockup and the code, and a good idea doesn't have to survive a hand-off to make it into the product.

In practice that means one person to talk to, fewer meetings, and an interface that still looks like the design once it's dealing with real data.

More about me →
Open for work

Have something that needs building properly?

A shop that actually sells things, some awkward bit of logic nobody else wants to touch, or just a second opinion on what you already have. The workshop is open.

Start a Conversation →

Usually a good fit

  1. 01An old platform you can’t afford to break
  2. 02An internal tool your team would rather not dread
  3. 03A headless shop or POS that has to talk to everything else
  4. 04A second opinion on something you already have