// selected work

Projects that earned their keep.

Select any project to read the problem, the solution and the hours saved.

live run · morning inbox
Inbox· on this machine
Sarah PatelQuote for the Miller job reply
Trade WeeklyYour Tuesday newsletter is here no reply
Daniel HartCan you move Thursday to 3pm? reply
Draft saved — Re: Quote for the Miller job. Waiting for your approval.
FEATURED AI agent · runs on your machine

Email triage and draft-reply agent

It sorts every new message into reply or no reply, and writes a draft for the ones that need one. The model runs on your own computer, so no email leaves the building.

5 hours
saved each week
0 sent
without approval
Private
nothing sent to a cloud
Python Local model Gmail & Graph API
View the full detail →
live demo NACA 23012
Reynolds no. 1.0×10⁶
Velocity 50 m/s
Angle 4.0°
Neural network · model

Aerofoil-shape prediction network

A PyTorch network that predicts the best aerofoil shape for a set of flight conditions. Move the sliders to see the shape change.

saves 1+ hour for each run
View the full detail →
json_to_csv.py
resp = requests.get(API_URL, timeout=10)
resp.raise_for_status()  # errors on 4xx / 5xx
rows = resp.json()["results"]

with open("export.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=FIELDS)
    writer.writeheader()
    writer.writerows(rows)
API integration

Database-to-CSV export pipeline

Built for a leading Canadian university. It replaced hand scraping: the program reads the records through the API and writes correct CSV files.

2 weeks of scraping saved a year
View the full detail →
SoC Raspberry Pi request result API model & cloud
Hardware · API integration

Raspberry Pi hardware API bridge

An API layer that connects Raspberry Pi hardware to modern model and cloud services, so a small board can do new work.

new work, not saved hours
View the full detail →

// let’s build

Have something you would rather software did?

Tell me the slow job. I tell you how I would automate it. I reply in one working day.