Web development: I've been making things for the web for over 20 years, with a focus on large highly interactive frontends, complex business logic & algorithms, and full-stack projects.
Rapid iteration, research & design: I've delivered the rapid prototyping and exploratory development necessary for several early-stage projects. I also wrote my own code editor, which I'm using to write this paragraph!
Thriving on complexity & uncertainty: I love stepping into unfamiliar problem spaces and using creativity and tight feedback loops to ratchet my way to a clear understanding.
Leadership & mentoring: I have some experience at the team lead level as well as various informal mentorship roles, and this is something I'd like to develop further in my next role.
- Languages: TypeScript, JavaScript, HTML, SCSS, Python, Bash.
- Frameworks: Svelte (5), React (modern versions).
- Other: Node, Electron, Linux, Apache, nginx, general sysadmin.
I led the effort to rebrand the InCAS assessments after Cambridge's acquisition of the CEM platform (which I also worked on in 2018, when it was part of Durham University).
Everything from figuring out how Rasch model stability works to wrangling audio sprites in Audacity!
I implemented and wrote the internal documentation for various parts of Valsys's financial modeling DSL, including syntax highlighting and autocomplete features using CodeMirror and the Lezer parser system.
I refactored and thoroughly documented the content transform system for mobile, leveraging Git diffs for easy visualisation of the changes made at each stage.
EdTech startup focused on spaced repetition practice for maths students.
Collaborating with a maths teacher, I designed and developed: a tablet-first and dyslexia-friendly quiz interface; a question editor with KaTeX support; admin interfaces; and an algorithm to generate a personalised revision schedule for each topic.
Flash to HTML5 transformation; improved DX & productivity; sysadmin.
Converted a set of adaptive assessment algorithms from ActionScript to TypeScript, retro-fitting unit tests to legacy code to verify that all behaviours were preserved. I completed this well within the projected time and was able to contribute to several other areas, pushing key timelines forward.
I developed the DropPoint site with the founders, quickly iterating through several prototypes based on feedback and concepts, and implementing core features such as the postage label service.
I was invited to join Chess.com’s globally-distributed team after Erik (CEO) came across my chess site. I was responsible for the frontend effort on variants, a prominent feature of the major V3 update.