Making software behaviour easier to understand, test, and trust.

Software engineering · empirical research · technical education

I am a software engineering consultant, researcher, and former Computer Science teacher. I work across C++, systems behaviour, AI-assisted programming, software quality, and computing education, with an emphasis on evidence, reproducible experiments, and explanations that remain honest about the systems underneath them.

Professional portrait of Chris Goodings

Three parts of the same problem

I am interested in how software is built, how we know whether it behaves as intended, and how we teach people to reason about systems that are increasingly hidden behind abstractions.

Engineering

C++, software architecture, testing, DevOps, performance, maintainability, and the practical trade-offs involved in building reliable systems.

Research

Empirical software engineering, reproducible experiments, AI-assisted programming, software quality, and methods for separating plausible explanations from measurable evidence.

Education

Technical explanations and learning activities that make hidden behaviour observable without reducing complex systems to misleading rules of thumb.

Current research

AI-assisted programming and unexpected software behaviour

My current MSc research examines unexpected behaviours in AI-generated and human-written code through a reproducible empirical study. The work focuses on defects, rework, maintainability, technical debt, and the reliability of generated solutions.

The study is designed around transparent sampling, pinned tools and model versions, repeatable execution, and openly documented methodological decisions. Code, protocols, data artefacts, findings, and limitations will be published as the work matures.

Visible Systems

A developing research and educational direction built around one idea: when behaviour matters, people should have a way to observe it.

Memory layout, cache behaviour, concurrency, performance, compiler transformations, and undefined behaviour are difficult partly because the source code hides the mechanisms that produce the result. Visible Systems explores how carefully designed experiments, instrumentation, and visual representations can improve reasoning without pretending that one visualisation or benchmark explains everything.

Latest writing

About me

I have been programming for more than twenty years and now work professionally as a software engineering consultant. Before returning to industry, I taught Computer Science at secondary and sixth-form level. Those two careers continue to shape how I approach technical work: build carefully, measure what matters, explain assumptions, and stay willing to revise the model when the evidence disagrees.