About

I am a software engineering consultant, researcher, and former Computer Science teacher. My work is driven by a simple idea: difficult technical concepts become more useful when we can understand, observe, and test them.

Engineering

I have been programming for more than twenty years, first as a self-taught hobbyist and later professionally. I specialise in C++ and work on software where correctness, performance, real-time behaviour, and maintainability matter. My wider engineering work also spans C#, Python, JavaScript, DevOps, technical leadership, and project delivery.

Education

Before returning to professional software engineering, I spent several years teaching Computer Science at secondary and sixth-form level. I hold a PGCE and Qualified Teacher Status. That experience still shapes how I think about software: explanations matter, mental models matter, and technical difficulty should never be confused with intellectual gatekeeping.

Research

I am studying for an MSc in Computing with a Software Engineering specialism and developing a programme of empirical work around software behaviour, AI-assisted programming, software quality, and reproducible experimentation. I am particularly interested in research that produces both credible evidence and practical engineering value.

Why this site exists

Human progress depends heavily on our capacity to be curious, to ask better questions, and to test our explanations against reality. Science and engineering turn that curiosity into methods. Education allows the resulting knowledge to travel further than the person who first discovered it.

This site is where those parts of my work meet. I use it to document research, publish educational material, share technical experiments, and argue for ideas I think are worth examining more closely.

Start here

Research

Follow my work on AI-assisted programming, software quality, reproducible experimentation, and the developing Visible Systems research direction.

Explore research

Education

Browse technical explanations and learning material designed to make difficult behaviour visible without reducing it to misleading rules.

Explore education

Writing

Read research notes, technical explainers, and commentary on software engineering, C++, AI-assisted development, and computing education.

Browse writing