About me

Welcome to my website! My name is Peter R. Bloomfield. I am a professional software engineer, amateur musician, all-round geek, and 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. With that said, writing about what I’m doing is also intended simply to help crystallise what I’ve learned.

I also like to share some of my musical compositions and recordings from my free time. Hopefully others will enjoy listening as much as I enjoy playing.

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 Senior Software Engineer on the filtering team at Smoothwall, where I help build software which protects school children from dangerous online content. 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 wasn’t a programmer at all, 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.

My old websites

In the past, I’ve kept my technical and music blogs separate. I called my technical blog “Avid Insight” , and my musical blog “Lycius Moment” or “prbMusic” at different times. I decided to bring everything together into one website so that it’s more clearly associated with me personally.