Projects & work

Things I’ve worked on.

Products, developer tools, and a few problems that needed figuring out. Here’s the short version — open a project for the details.

TilloSince June 2026 · September snapshot

Building an AI review tool for pull requests

I own the direction, model choice, design, and build of a TypeScript tool around OpenCode. A panel of agents reviews the change, with a verification agent and coordinator checking the findings.

The longer story

Senior Software Engineer, AI Enablement

The problem

Our AI Enablement team supports roughly 40 engineers. Code review is one place to offer useful feedback before a human reviewer starts.

Where it landed

The bot reviews every pull request in four to five repositories. We tried it in our own monorepo first, then expanded to existing and new bot users. Its feedback is advisory and does not block merges; quality gains are not yet measured.

  • Used across four to five repositories as of September 2026
  • Human reviewers keep responsibility for the merge
HandoverInvite-only · September 2026 snapshot

Taking a UI prototype to a working product

I built the backend with Convex and Cloudflare R2 and connected the interface to turn the prototype into a functioning product.

Visit Handover ↗
The longer story

Product and backend engineering

The problem

Handover helps people organise client assets and presentations, share deliveries, and track views and downloads. Sam and Ed supplied a UI prototype with no backend.

Where it landed

Handover is soft-live and invite-only, with a couple of testers. I am polishing it while learning from that early use.

  • Backend built from a UI-only starting point
  • Early testing; no established customer traction yet
TilloLeft beta in the week of 5 September 2026

Moving buyer Hub functionality to a REST API

I owned the migration of that functionality, working with the existing models and the Nuxt monorepo frontend.

The longer story

Senior Software Engineer

The problem

Buyer Hub functionality depended on older, non-standard interfaces. The Nuxt frontend needed to call services through a REST API.

Where it landed

Hub left beta in the week of 5 September 2026. The older embedded Hub still runs alongside it.

  • Owned the move to REST API calls
  • Built on existing models; the older Hub remains in service
TilloSeptember 2026 snapshot

Helping teams use shared engineering practices

I founded a PHP Guild of 25 developers across four teams and rolled out Pint in the main monorepo. In AI Enablement, I helped develop the team’s AI software development standard and built reusable planning and pull request preparation skills.

The longer story

Senior Software Engineer

The problem

Common practices need to work across product teams, including how engineers plan, prepare changes, and use AI tools.

Where it landed

Pint configuration came first as a rebase checkpoint, followed by a separate formatting change. Four teams have been onboarded to the AI standard and are expected to start using it; feedback and adoption are still developing. Larastan work remains in progress.

  • PHP Guild spans four product teams
  • Pint rolled out; AI standard adoption still developing
TilloQ2 2024

Reduced average API response time by 20%

Used Datadog APM to find bottlenecks, resolved N+1 queries, and moved slow external calls into background jobs.

The longer story

Software Engineer, Partners and API team

The problem

Slow endpoints serving more than 500,000 requests a day needed investigation in production.

Where it landed

Average response time fell by 20% on the affected endpoints, measured with Datadog APM in Q2 2024. This work preceded my promotion to Senior Software Engineer in April 2025.

  • 20% lower average response time on affected endpoints in Q2 2024
  • Datadog APM used to measure production behaviour
Tutorful2021–2023

Planned and built ad-hoc tutor availability

Planned and developed the Laravel backend infrastructure for ad-hoc availability, alongside wider work on search, messaging, and mobile stability.

The longer story

Software Developer

The problem

Tutorful added ad-hoc availability alongside its existing booking, search, messaging, web, and mobile systems.

Where it landed

The feature generated more than 5,500 bookable slots in six months on a platform with 11,000+ tutors and 200,000+ students.

  • 5,500+ bookable slots in six months
  • Backend planned and delivered in Laravel
Sonin2021

Re-architected the core iOS app structure

Re-architected the core structure around SwiftUI and MVVM, and worked with developers across platforms to resolve issues between mobile apps and backend APIs.

The longer story

Lead Software Developer, iOS

The problem

The app portfolio included MVC, MVVM, and Viper while the core structure moved to SwiftUI and MVVM.

Where it landed

The core app structure used SwiftUI and MVVM. Agency work also included infrastructure for remote inspection video.

  • Core app structure moved to SwiftUI and MVVM
  • Web and mobile agency work at Sonin
Hurstpierpoint CollegeApril 2015 – April 2017

Built a school portal handling 1,000+ daily check-ins

Planned and developed the school registration system as an Apprentice Web Developer.

The longer story

Apprentice Web Developer

The problem

The college needed a daily registration system for its students while staff handled other duties at peak times.

Where it landed

The portal handled more than 1,000 check-ins a day at a school with 1,000 students and 300 staff.

  • 1,000+ daily check-ins
  • Staff could carry out other duties during peak registration periods

For the career timeline and résumé, head over to About →