Software engineer. Occasionally a teacher. Permanently curious.

I build things that work, then make them easier to understand.
Mostly JavaScript. Often full-stack. Always learning.

Currently interested in clean interfaces, thoughtful systems, and software that doesn’t shout at the user.

About me

I didn’t take the straight line into software, which turns out to be useful.

I’ve shipped production code in a large engineering organisation, taught computer science to humans who absolutely did not ask for it, and spent a lot of time learning how systems actually behave once they leave the whiteboard.

I care about clarity, maintainability, and making sensible trade-offs. I’m not allergic to complexity, I just don’t invite it round unless it has a good reason to be there.

Skills

Core

  • JavaScript (ES6+), with a realistic understanding of its edges
  • TypeScript for safer, more predictable code
  • React for building calm, usable interfaces
  • HTML and CSS, written deliberately rather than by accident
  • Git, pull requests, and explaining decisions in code reviews

Working knowledge

  • Node.js and Express for pragmatic backend work
  • REST APIs with sensible structure and naming
  • SQL and relational data modelling (PostgreSQL)
  • Testing and debugging in production-minded environments
  • Modern development workflows in Agile teams
  • Knowing when not to add another abstraction

Experience

Graduate Software Engineer

Flutter UK & Ireland

Worked in a cross-functional team on a large, production React and Node.js codebase.

  • Built and maintained features across the full stack, collaborating closely with product and design.
  • Contributed through code reviews, testing, and sensible incremental improvements (the boring stuff that makes software survive).
  • Got very familiar with real-world constraints: performance, reliability, and shipping without breaking everything.

Computer Science Teacher (Supply / Long-Term)

A-Level & T-Level Software Development

Taught programming and systems thinking, and learned fast that explaining something clearly is a stricter test than implementing it.

  • Planned and delivered lessons on HTML/CSS/JavaScript and Python, adjusting pace and scaffolding for mixed confidence levels.
  • Built structured resources and coursework support aligned to specification requirements.
  • Improved my communication and debugging under pressure, because a classroom is basically a live incident response exercise.

Projects

Side projects are where I experiment, over-engineer slightly, then simplify again.

drewBrew

A coffee tracking app focused on clean data modelling, flexible recipes, and calm UI.

  • Next.js + React for the front end
  • Node.js + TypeScript backend
  • PostgreSQL for data that behaves

This site

A deliberately simple CV site: semantic HTML, modern CSS, and just enough JavaScript.

  • Performance-first, no framework by default
  • Accessible structure and sensible motion
  • Built to evolve without becoming a rebuild