LP://SYSTEM.RESUME UPTIME 29Y

// Product engineer with a PhD in distributed systems. Building reliable products end-to-end.

[ROLE] Lead Software Engineer
[LOC] Cambridge, UK 52.21°N — 0.12°E
[STATUS] Actively looking
[0x01]

./work

7 entries
  1. Lead Software Engineer

    @ Whimsical 2021 — 2026

    Collaborative visual workspace — boards, docs, and project management. Full-stack work across a Clojure/PostgreSQL backend on AWS and a ClojureScript/React frontend, in a small team where engineers and designers owned projects directly.

    • Tasks & Projects Lead backend engineer on the project-management expansion, a Linear-style surface built to turn Whimsical from an occasional diagramming tool into part of users’ daily work. Designed the project data model — configurable statuses, custom fields, and a task filter language — and extended the backend with My Tasks and a file-attachment API.
    • Entitlements & monetisation Built the feature-gating system that controls which capabilities each plan tier unlocks, from Free through Enterprise — the enforcement layer tying product features directly to revenue. Built the credit-based metering for the AI features, and added prompt caching after noticing Whimsical’s own demo prompts would exhaust a free user’s monthly credits on first use.
    • Platform modernisation Instigated and drove the conversion of the backend web layer from asynchronous to synchronous — faster compiles, readable stack traces, fewer concurrency mistakes. A strangler-fig approach kept the migration transparent to ongoing delivery. The migrated surface handles several hundred thousand requests/week in production, with the busiest endpoint at p50 16ms / p95 70ms.
    • Reliability infrastructure Built, on my own initiative, a watchdog service that pages the team when a recurring background job silently stalls, and a queue-based migration framework on which I ran tens of production data migrations.
    --clojure--clojurescript--react--postgresql--aws
  2. Principal Software Engineer

    @ BigPay 2019 — 2021

    Fintech challenger bank. Worked on personal loans and payments. Identified that the core monetary transaction flow, spanning multiple microservices, was too fragile to extend safely with new products, and redesigned it to be fault-tolerant with a clean API for new client services.

    --java--kotlin--rust--kafka--postgresql--cockroachdb
  3. Self-Employed Contractor

    @ Moss Oak Software 2015 — 2019

    Full-stack web contracting across a wide range of technologies, typically hired for breadth and to coach junior engineers. Projects included an IoT connectivity service (Go, RabbitMQ, React), a GIS data service (Node, PostgreSQL), and an OAuth2 client management service (Go, Ember).

    --go--node-js--react--ember--postgresql
  4. Software Engineer / Team Lead

    @ Listora 2014 — 2015

    Tech lead on a Clojure/Datomic event data (e.g. theatre show times) API. Built the Elasticsearch search, Redis-based rate limiting, and JWT authentication. Owned the team backlog, drove design consensus, and reviewed code.

    --clojure--datomic--elasticsearch--redis
  5. Software Engineer

    @ Red Gate Software 2010 — 2014

    Built multiple C# database-tooling products — SQL Scripts Manager, SQL Virtual Restore, SQL HyperBac, SQL Storage Compress. Implemented Azure web services for analytics event processing. Member of the engineering steering group; ran the internal Clojure user group.

    --c#--clojure--azure--ruby
  6. Senior Software Engineer

    @ Progress Software 2008 — 2010

    Core engineer on the Apama Complex Event Processing platform. Implemented green-thread scheduling with continuations to replace a native-thread model, and built a hierarchical logging system.

    --c++--python--java--apama-cep
  7. Senior Engineer

    @ Cambridge Consultants 2006 — 2008

    Designed and implemented a proprietary network element for a mobile operator with five-nines availability and soft real-time requirements. Implemented a Ruby DSL for generating C event-type structures. Administered a 20-server Solaris development environment.

    --c--ruby--solaris--tcp-ip
> ./older — 4 entries
  1. Software Developer, Internship

    @ IBM Research 2004

    Middleware on the OSGi platform acting as an event aggregator at the edge of sensor networks.

    --java--osgi
  2. Software Developer

    @ Meridea Financial Software 2002 — 2003

    Eclipse IDE plug-ins for a proprietary configuration editor — analysis, design, implementation, and testing.

    --java--eclipse
  3. R&D Engineer → Product Development Manager

    @ First Hop 1999 — 2002

    Three progressive roles: R&D building distributed Java systems, Customer Care Team Leader, then Product Development Manager — introduced unit testing and requirements management.

    --java--rmi
  4. Software Engineer

    @ More Magic Software 1997 — 1998

    Implemented the prototype MProxy product as an Apache module in C.

    --c--apache
[0x02]

./education

2 degrees
2003 — 2008

PhD, Computer Science

University of Cambridge

Thesis on decentralised access control in multi-domain publish/subscribe systems. Six publications in ACM, IEEE, and Springer venues.

1995 — 2001

MSc, Computer Science

Helsinki University of Technology

Major in computer networks and security. Thesis on temporary and anonymous authorisation with XML-encoded SPKI certificates.

[0x03]

./projects

3 projects
[0x04]

./contact

Get in touch