Hi, I'm Stephen Thompson, a software developer living in south-east England. I'm currently working on a number of projects, including a new verification-aware programming language, and an indie roguelike game. Previously, I have worked as a programmer (mostly in C++) in the videogame and finance industries, and before that, I was in academia, working on solar physics research.

One of my interests is in using mathematical proof techniques to verify the correctness of computer software. To this end, I am currently constructing a new programming language, named "Babylon", which is basically a simplified version of C, with verification features (e.g. pre and post conditions) added.

I am also interested in how computers can be used to assist mathematicians with more traditional mathematical proofs, either through formal theorem proving packages (e.g. Lean or Isabelle), or through the so-called "human-oriented theorem proving" approach (e.g. Tim Gowers' project). This is an area that I would like to investigate further in the future.

I have worked professionally as a programmer for two game development companies: Frontier Developments and Creative Assembly. At Frontier, I worked mainly on the company's game engine technology (which was used across a number of games), while at Creative Assembly, I contributed to "Total War: Arena" and "Total War: Warhammer", as well as working on their back-end server systems (the latter was a mix of Python and Erlang programming).

I have also worked on a number of independent game projects, including "Knights" (an open source remake of an old Amiga game by Kalle Marjola) and a couple of game related demos. (Some code from one of those demos has been incorporated into the "Bullet" open source physics engine, used in many games.)

Currently I am working on a new indie roguelike game, which is still in the very early stages of development, but if all goes well, I may be able to release it on Steam one day.

Before I worked in videogames I was in the finance industry for a few years, working for a company called APT (later bought out by SunGard). Their main products were a statistical risk model (quantifying how much money might be at risk of loss, for a given set of investments) and an optimiser (which helped in choosing a portfolio that would minimise the risk, given various constraints). I helped out with the programming of these products, working in C++, Fortran and Delphi.

My degree was in mathematics at Christ's College, Cambridge. I also took a Ph.D. at the same university, completing a thesis on solar physics, and specifically, the dynamics of convection in sunspots. Whilst in the end, I don't think I had that much of an impact on the field, I did get the Ph.D. so I must have done something right! The work involved running large-scale numerical simulations in Fortran, as well as more traditional mathematics (i.e. solving equations with pen and paper).