pagraham.co.uk

Independent developer · UK

I build iOS apps, small web products and the occasional over-engineered home energy system.

I'm Paul Graham. I make things for iPhone, iPad and Apple Watch in SwiftUI, run a booking platform for independent barbershops and salons, and spend my spare time teaching a Tesla Powerwall to make better decisions with Node-RED.

See the projects Read the Tesla write-up

The work

Most of what I build starts with a problem I've had myself: working out what tax I owe across more than one income, checking industrial IoT events without opening a laptop, or running a small business's diary without a stack of paper. I design, build and ship them end to end.

iOS · SwiftUI

TaxIQ UK

UK income tax and National Insurance worked out across employment, side hustles, rental property, savings and dividends.

App pages →
iPhone · iPad · Watch

IIOT Event Management

View, filter and update industrial IoT events and cases from your own Insights Hub tenant, on the go.

App pages →
iOS

Intimate Activity

A private, discreet log for adults. Built around privacy first.

App pages →
Web · SaaS

TrimBooking

Online booking for independent barbers and salons, each with their own branded booking site and owner dashboard.

trimbooking.co.uk →

The hobby

At home there's solar on the roof and a Tesla Powerwall in the garage. The Tesla app is fine, but I wanted the house to react to things on its own: tell me when the battery's full, when the grid goes down, or when it's worth changing the backup reserve before a cheap overnight rate.

So a small Linux box runs Node-RED, which talks to the Tesla Fleet API and sends alerts to my phone over Telegram. Getting Tesla's OAuth working from a home server took longer than building the flow, so I've written up how it fits together.

How the Tesla flow and auth work →

Toolbox

Apple
Swift, SwiftUI, watchOS, StoreKit
Web
Next.js, TypeScript, Vercel
Data
Supabase / Postgres, REST APIs, OAuth 2
Automation
Node-RED, Telegram bots, Linux