About

I’m Sean. I’m 32 years 9 months 1 day old, originally from Leeds but I currently live in Manchester with my partner Emily and my son Freddie who’s 3 years 5 months 7 days old.

My interests include programming, which I’ve been doing for approximately 20 years, level design and a bit of photography.

I first started programming and level design by creating mods and maps for the game “Medal of Honor: Allied Assault” in 2005. They weren’t great by any means but it taught me a lot. Around the same time my dad brought home a PLC and we programmed a traffic light on it together, both of which I attribute to the reason I am where I am today, and my continued interest in programming.

Between 2007 and 2009 I studied at Leeds College of Technology as a Software Practitioner, where I had my first encounters with C++ and OOP as well as improving my web development skills utilising HTML, JavaScript and PHP. During this time I was also introduced to the Source Engine, where I began experimenting with level design.

Enter gm_botmap

Having recently discovered the sandbox game, Garry’s Mod which is based on the Source Engine, I started experimenting with simple self driving vehicles but found the map selection was lacking for what I needed, so I created a purpose built map for it. It was my first map and was entirely utilitarian with absolutely no time spent on design, however it was perfect for me and a few friends. I decided to release it anyway, and to my surprise it quickly gained popularity. Over the next few years I kept developing and refining the map until it eventually got a bit of attention spent on design.

The final version (3) of the map in 2009, looking a bit better than the original
Another unreleased map showing an improvement in level design, geometry and lighting

In 2009 I started university at the University of Lincoln studying Computer Science, where I began to learn C#, as well as continuing web development in JavaScript, HTML, CSS and PHP. C# quickly became my preferred programming language and I began experimenting with it in my spare time, creating basic applications.

One of the first C# programs I created. It takes camera input using EmguCV to dim screen brightness based on ambient light, like a phone

I eventually moved onto my masters, where a colleague and I created a prototype system to identify and locate people using automated drones. It was unfortunately relatively limited due to the hardware available and the control systems, but it did teach me a lot about visual processing using OpenCV/EmguCV and basic AI systems.

The result of our work. Robots would search and move to any detected faces, with varying success

Post university I immediately started a job search. One of the first positions that seemed interesting was working on automated systems for detecting accidents on motorways. I decided to mock up a quick program to isolate and identify traffic on a road in order to be able to determine average speed.

Automated road detection and vehicle isolation

Despite the speed at which the program was developed it showed some promise for other applications. The program was able to identify roads based on motion of vehicles, then create an image of the road without vehicles present when there was no motion detected in an area. It would then subtract that image from the live feed to pick out vehicles without having to use more advanced identification methods, meaning less chance of errors. Unfortunately, the company I applied to never responded, but I still deem the process a success as it allowed me to produce a potentially commercial product from the challenge presented.

In 2013 I joined LFM Software (now AVEVA) as a Software Engineer and have worked there ever since, gaining a promotion to Senior Software Engineer in 2017. I currently work using mostly C++, but my role also covers Qt, C#, WPF, YAML, Azure continuous integration pipelines and managing virtual machines for build agents. During my time at AVEVA I have developed a few applications in my own time to aid the team and increase productivity, such as dashboards.

The dashboard originally started life as an alternative to “Percy the pushback penguin” – a toy penguin someone would obtain to perform a Git push in order to prevent clashing commits. Members of the team had no visibility on anything getting pushed to Git, which was becoming a problem so the dashboard was developed. It integrated the latest Git commits, a scoreboard for the people with the highest commit count of the week (to encourage frequent merging of the main line) and current build status.

The limited screen real estate quickly became an issue and the screen began looking cluttered. The data on the display was hard coded, so any changes would cause the display to stop working and the style needed simplifying. The software was iterated on and the final version above was the result. The dashboard was now dynamic, allowing the user to add and remove ‘widgets’, which would operate independently from each other. The dashboard evolved to show not only Git and pipeline information but also current traffic, weather and now played a short random video upon a new commit to encourage other team members to observe the commit for increased visibility.

The dashboard showing traffic maps, accidents, bus and tram times, travel times to frequent destinations and weather, all from different APIs

From this I started developing In Do Out in my spare time – a visual programming language where users connect simple function blocks together with wires to make a program. The core principle behind ADO is that it doesn’t require any coding knowledge, and is as simple to use as possible, which is reflected in the interface.

The logo for IDO

It is still in development, however the core of the program is mostly complete and it is fully usable. IDO is built from scratch using C# and WPF, and features a fully threaded application with networking, cross platform support and test driven development. It has allowed me to quickly prototype application ideas, and currently supports some smart features in my house, such as detecting the computer in the office has been switched on, checking the brightness outside and switching the office lights on if it’s dark enough, then back off again when it brightens up to reduce eye strain.

During this time I continued improving my level design skills, remaining with the Source engine. Portal 2 was released in 2011 with an improved level editor and integrated support for sharing levels with the community, so I started work on a map.

Following the release of the Source 2 engine with the VR game Half-Life: Alyx in 2020 I started learning the new and improved tools, in which the level designer had seen some major changes where it became much closer to a modelling tool such as Blender.

While my free time is now much more limited, I still make time to work on improving my programming skills where I can, and I still enjoy it just as much as I always have.