Interfaces and workflows
I build interfaces where there's a lot going on behind the scenes: complicated interactions, business rules and systems that need to work together.
I work mostly with TypeScript and React. I enjoy the awkward engineering problems, particularly figuring out how all the moving parts should fit together, whether I'm building something new or working with what's already there.
Available for freelance and contract work.
Get in touchI build interfaces where there's a lot going on behind the scenes: complicated interactions, business rules and systems that need to work together.
I'm quite happy getting stuck into code I didn't write. I like figuring out what's worth keeping, what needs improving and when it's better to start again.
I like getting to the bottom of difficult problems, whether that's an application that's become hard to maintain, an architecture that's getting in the way, or something that simply isn't performing as it should.
I led front-end engineering for Kraken's phone system, used by agents during live customer calls.
I designed and built a Flux-inspired approach to keeping call state consistent across multiple CRM browser tabs in real time.
Zooniverse / University of Oxford
I started Zooniverse's reusable React classifier library, building its initial viewers, state stores and tests. I later worked on its layouts and viewer selection, and integrated it into the main application.
Source commitZooniverse / University of Oxford
Some Zooniverse projects needed to give volunteers feedback on their answers. I built a configurable system that let project teams define their own rules, rather than needing custom code for each project.
Pull requestI started out in journalism before finding my way into software. I still like asking questions, understanding how things work and getting the details right.
I'm based in Oxfordshire, UK.