Peter Bloomfield
Peter Russell Bloomfield, BSc (Hons), Phd


My name is Peter Russell Bloomfield. I'm a software engineer and a professional member of the British Computer Society. I'm also an amateur musician, all-round geek, and a member of British Mensa.

My main goal for this blog is to share technical articles about topics I encounter through my job, my professional development activities, or when tinkering with personal projects. I hope that the information is useful for others who are exploring similar areas.

Technical background

First and foremost, I consider myself a hardcore C++ programmer, although I’ve also got experience with C, JavaScript, PHP, Python, MATLAB, and C#. I get a lot of satisfaction from getting down into the low-level nitty-gritty details of algorithm design and implementation, and I’m a big believer in thorough automated tests.

I’m currently a Staff Software Engineer at Smoothwall which makes software for safeguarding school children online. We are largely moving towards cloud-based solutions, and I'm in charge of our native clients for Windows and macOS.

In the past, I’ve worked on optical computing for deep learning at Optalysys, back-end web development for healthcare apps at Advanced Digital Innovation, and virtual reality medical training software at Vertual. Additionally, I’ve had a number of small short-term contracts over the years.

I have a BSc. Hons in Computer Games Technology from the University of Paisley. (It has since re-branded as the University of the West of Scotland.) It was an intense 4 year course which focused heavily on C++ programming. It drew from several others areas too though, including maths, artificial intelligence, and physics. Despite the subject of my degree, I’ve never worked in the mainstream games industry, although I’ve had a few jobs in related areas.

I also have a PhD in computing from the same institution. My research topic was a somewhat niche area of educational technology which has more-or-less disappeared from academic circles now. It involved integrating an immersive virtual world with a web-based learning management system. I learned a lot during my PhD journey, although it ended up being quite an ordeal towards the end! I currently have no intention of going into a conventional academic career in future.

How I got started

I’ve been programming since I was about 5 years old. It was the late 80’s, and my dad (who worked for IBM at the time) bought us a ZX Spectrum +3 to use at home. Admittedly, I mostly played games on it (N.O.M.A.D. was one of my favourites), but I enjoyed occasionally trying to make stuff happen in BASIC. My dad was never a programmer but he had enough technical knowledge to help me get started.

I got a bit more adventurous with programming when I discovered QBasic on our first IBM PC in the 90’s. At one stage, I spent a long time figuring out the maths for a basic perspective projection. Somehow, I got it rendering rudimentary 3d wireframe graphics in real-time. I didn’t turn it into a full game or application. It was simply my very first tech demo!

As a teenager, I eventually moved on to C++, mainly because it was the main language used in games development. I made the mistake of starting with a book about Visual C++ though. As a result, I ended up getting bogged down in some very Microsoft-specific stuff instead of learning the language properly. Nonetheless, I made a few fun little games using MFC for my own amusement.

Later, I went back and started learning C++ properly from the ground-up. I started at university shortly afterwards.

Find me online