Portfolio of Tom Burridge

About Me

Hi, my name is Tom. When I was about 9 years old I played Colin McRae Rally on PlayStation, and it became my dream to make video games. After high school I went on to study game development, but then I found that I wanted to know more about how computers work, so I went to study computer science at university. After university in Australia I wanted to try something different for a little while, so I moved to Canada and got caught up in the bike industry. A little while turned into 7 years, and then the global pandemic came along and shook everything up.

Growing tired of working as a mechanic, and feeling out of touch with the computing industry, I decided to go back to school and pursue a master's degree in computer science. Here I got a deeper appreciation for how operating systems and hardware work, and I indulged my fascination in the games console hacking scene by taking cybersecurity and reverse engineering classes.

So here I am, exactly 10 years after graduating from my undergraduate degree I am graduating again. I'm still interested in making games, but more than that, I am simply interested in making (and breaking) just about anything! That's where my interest in software lies, in the sheer joy of creating things that I, and other people, can use.

When I'm not working on digital things, I like to be outside, it's hard not to when you live in a place like British Columbia. I'm involved in the usual things like hiking, biking, and snowboarding. But that love of rallying from my childhood never died, and in an effort to always learn new and different skills I got my amateur radio license in 2023 so that I could help volunteer at the western rounds of the Canadian Rally Championship. And hopefully at some point in the future I'll be able to experience the thrill from inside the car as well.


Education

Master of Science in Computer Science

Location: Georgia University of Technology | Online
When: August 2021 - May 2024

7 years after graduating from my undergraduate degree I finally found myself wanting to get into the computing industry, but I felt like too much time had passed and that I would no longer be a competitive candidate when applying for jobs. This was also during the second year of the pandemic and I was fortunate enough to still have a stable job so I was not immediately in need of the career change. I discovered Georgia Tech's online master's program and found that it was the perfect fit for me due to the challenges posed by the pandemic and my geographic location.

I chose to take the computing systems specialisation onto which I added a number of cybersecurity focused electives. This allowed me to improve my knowledge in:

  • How computer hardware works in High Performance Computer Architecture

  • The design and implementation of operating systems Graduate Introduction to Operating Systems and Advanced Operating Systems

  • Cybersecurity defense strategies in Introduction to Information Security, Network Security, System and Network Defenses

  • Cybersecurity attack strategies in Advanced Malware Analysis and Reverse Engineering and Binary Exploitation

Much of what I worked on at Georgia Tech was small individual projects. However, during my final semester I completed a video game project in a team of five people which you can learn more about here.

My proudest moment during my master's studies was completing Graduate Algorithms, a class with a reputation for both its high quality and high difficulty, the first time around with an A grade despite my noted weaknesses with mathematics.

Bachelor of Computer Science in Games Technology

Location: La Trobe University | Melbourne, Australia
When: March 2011 - May 2014

After a single semester at Deakin University in 2009 I chose to instead enrol at La Trobe University starting in 2011. Here I was able to undertake some of the classic computer science classes like operating systems, discrete mathematics, linear algebra, and data structures and algorithms. I also took more game technologies classes, and learned some new languages like C# and Java.

During the second year of the course I did a study abroad semester at Linnaeus University in Sweden, which was one of the most valuable life experiences I have ever had and is still a fond memory. Jag kan talar lite Svenska, men varje år jag glömmer lite mer.

During the final year of the course I completed a year long industry project, the Digital Lab Assistant, which you can learn more about here.

Advanced Diploma of Professional Game Development

Location: Academy of Interactive Entertainment | Melbourne, Australia
When: 2007 - 2008

The Advanced Diploma course offered by the AIE was a 2 year course which taught both software and game development skills. During the first year of the course I learned C++ while working on small game projects. I'll forever be grateful that I learned programming this way, rather than starting out with a text editor and a terminal like I did in so many later university courses.

In the second year of the course I worked on a year long game project from which the team I was in produced Shadow, a 3rd person puzzle game where the player moves through a light and dark version of the same world, where they must remain in the shadows at all times. All remnants of this project have been lost, but if I ever manage to find them on an old hard drive somewhere I will add Shadow to the projects section.

During the second year of the course I also undertook an internship at a local development studio, Transmission Games, which you can find out more about here.


Professional Experience

Vorsprung Tuning Hub | Whistler, British Columbia

Location: Vorsprung Suspension
When: December 2021 - November 2023
Technologies: C# | Visual Studio | Blazor | MudBlazor | IIS | Entity Framework | SQL Server | Plotly | + more

I designed, developed and deployed 'Tuning Hub', a web application that will assist Vorsprung staff, dealers, and customers in tuning the new Telum mountain bike shock damper and spring.

Key technological features:

  • Built on Microsoft's Blazor framework with MudBlazor providing consistent and clean user interface components

  • Uses Microsoft SQL Server for data persistence, and Entity Framework for object-relational mapping

  • Deployed on an IIS webserver running on Windows Server 2019

  • 2D and 3D data visualisations implemented with Plotly.Blazor, a C# wrapper for the Plotly graphing library

This was a solo project where I was responsible for all aspects of design and development. I learned a lot during this project, not just about new technologies but also how to move and adapt quickly in the face of changing requirements and schedules.

Damper tune calculator

Vorsprung Web Store Tools

Location: Vorsprung Suspension | Whistler, British Columbia
When: December 2021 - November 2023
Technologies: C# | Visual Studio | Blazor | MudBlazor

This is a set of 3 tools developed at different times for the Vorsprung Suspension web store. Each fulfils a different role in helping customers with the bicycle suspension upgrade components that Vorsprung sells. The tools are built on the same platform as the Tuning Hub.

Smashpot Spring Rate Calculator
The Smashpot is a coil conversion kit for mountain bike suspension forks. The spring rate calculator was developed in response to numerous phone calls every day asking for the spring rate recommendations because the published chart was too difficult to decode. Better yet, the tool is able to collect far more information about a riders preferences to produce better recommendations. For example, two riders of the same weight on the same fork but with vastly different riding styles may require totally different setups which lean towards a stiffer or softer spring rate. Since adding the tool to the Smashpot product page on the web store the number of daily calls and emails regarding spring rates dropped significantly.

Smashpot spring rate calculator

Compatibility Checker
Vorsprung makes 3 primary upgrade components that can be installed in suspension forks from 4 up to different manufacturers, with up 13 different fork models per manufacturer, spanning up to 8 model years. Needless to say this can make it difficult for customers to know which upgrades are compatible with their forks. For a long time each upgrade component product page had a chart that listed the compatible fork models, but the charts were often hard to read and were also difficult to maintain.

The compatibility checker tool takes the 3 basic pieces of information that are needed to determine compatibility and compares them against a master spreadsheet with all the compatibility information encoded into it. This takes much of the guess work out of determining product compatibility and greatly reduced the number of calls an emails received regarding compatibility.

The compatibility checker tool can be found on the various product pages on the Vorsprung web store.

Product compatibility checker

Product Recommender
The final tool is the Product Recommender. Often a customer won't even know which upgrade component is right for them, let alone if a particular component is compatible with their fork. The Product Recommender asks prospective customers a number of questions about their bike and their riding preferences and then uses this information along with the master compatibility spreadsheet to make product recommendations. Sometimes there may only be one option available to a customer, but often there all 3 fork upgrade components will be compatible, so the tool recommends the products in order based on what it thinks is going to best suit the rider given their answers to the questions asked.

If a customer still isn't sure what direction to head in they can email Vorsprung directly from the tool. Their query is sent as a regular email, but with tags added to the subject line so that the email can be correctly categorised by Vorsprung's CMS tool.

Product recommendations - initial view
Product recommendations - end result

Projects

Portfolio Website

When: April 2024 - Ongoing
Technologies: C# | Visual Studio | Blazor | MudBlazor | Linux | NGINX

I started this portfolio website around the time I finished my graduate studies as a way to showcase my skills with more detail and less noise than nwhat is found on LinkedIn. You can find the repository for it on GitHub. The site is built on the latest version of Microsoft's Blazor framework. As I am much better at backend than frontend development the site uses the MudBlazor component library to create a more consistent look and feel than I could ever hope to achieve on my own. The site is deployed on a virtual private server running Ubuntu 22.04 with the NGINX webserver.

Kleptocrat

Location: Georgia Institute of Technology - CS6457 Video Game Design | Online
When: January 2024 - April 2024
Technologies: C# | Visual Studio | Unity

Kleptocrat was developed as part of Georgia Tech's Video Game Design Class. This was a semester long project where groups of 5 students were tasked with designing and implementing a 3D game in the Unity game engine. Kleptocrat is a stealth game where the player must navigate a level, steal and item, and make it to an extraction point. Along the way the player will encounter AI guards that patrol the level who can sense the player by sight and sound. If they catch you it's game over and you'll have to try again.

My major contributions to the project were

Trailer & Gameplay Video

Digital Lab Assistant

Location: La Trobe University & Quantum Victoria | Melbourne, Australia
When: March 2013 - May 2014
Technologies: C# | Visual Studio | Monogame | Xamarin.iOS

Digital Lab Assistant was my final year project as part of my Computer Science degree at La Trobe University, and I continued work on the project as an intern with Quantum Victoria.

In summary Digital Lab Assistant is an iPad application designed to increase learning engagement in secondary school science classes. Students receive instructions for their lab practical classes through the application and input their results back into pre-defined result fields. The results of the lab class are compiled into a digital report for marking purposes.

Key features of Digital Lab Assistant

  • Lab Editor - Allows content creators to produce new labs on the iPad

  • Lab Viewer - Allows students to participate in labs

  • MyDLA - Provides search capabilities to let creators and participants find existing labs, create new labs, and manage their profile.

  • Server Backend - Performs data storage and data management operations

Key Technical Features

  • Written on top of Mono - Allows the application to be compiled for iPad and PC, with plans for an Android implementation after the initial release.

  • Implemented using XNA - The use of XNA has meant that the application can be structured more like a game and aids in the development of "gamification" features

My position on the project primarily involved:

  • Application Design - Along with the rest of the team I was involved in designing the overall look of the application

  • Domain Modelling - In partnership with another team member I had a large input into the overall design of the software components of the application

  • Cross Platform Framework Development - One of my major coding responsibility was writing the framework code that allowed the application to compile and run on both iOS and Windows

  • User Interface Development - To further increase the usability of the application I wrote a custom UI system for the Digital Lab Assistant, which allowed the team to forgo the use of the business like iOS user interface system

Screenshots

Digital Lab Assistant is no longer available on the App Store. Here are a few screenshots from the final product.

Login screen
"MyDLA" lab search and management
Lab editor with open widgets drawer
Lab Viewer with example widgets

Tilde

When: December 2013 - January 2014
Technologies: Objective-C | iOS | Xcode

Tilde was a short term project I worked on during the summer holiday following the end of university in 2013.

Tilde is an iPad application that was commissioned by the founders of Tilde (www.tilde.net.au). The application was used as an interactive gallery during the first Tilde New Music Festival in 2014, where patrons could listen to audio works produced by artists exhibiting at the festival. Patrons could also read more about the artists, their works, and learn more about products the artists had for sale at the festival.

The app was on display to the public at the Tilde New Music Mini Festival on January 26th 2014 and based on feedback taken from surveys at the festival the app was considered an overall success.

This was the first iOS application I designed and developed and can be considered a prototype featuring a vertical slice of the full functionality desired for future versions of the Tilde app.

Screenshots

Unfortunately I do not currently have access to the original source for the application (it's likely on an old hard drive in storage in Australia) but I did find a few screenshots of the UI while it was under development.

Example artist bio screen
Example product purchase screen

Internships

Programmer on Digital Laboratory Assistant

Location: Quantum Victoria
When: January 2014 - May 2014

Quantum Victoria, the client for the Digital Lab Assistant project, invited me to join them as an intern to continue work on the project part-time for an additional 6 months. During this time I finalised incomplete features, fixed bugs, wrote documentation and prepared the application for release on the App Store. You can read more about the Digital Lab Assistant project here.

Audio Programmer on Heroes Over Europe

Location: Transmission Games
When: September 2008 - December 2008
Technologies: C++ | Visual Studio | Windows | Xbox 360 | PlayStation 3 | Perforce | SN Systems ProDG

As part of a four month internship at Transmission Games I worked on the game Heroes Over Europe, released for XBOX 360, PlayStation 3 and PC in 2009.

During the internship I was part of the audio programming team and wrote and debugged C++ code. I worked alongside two other programmers and the project sound designer. I also reported to programming leads and the project producer. My contributions to the project included:

  • Implementing boat sound effects

  • Adding sound effects to levels using the in house level design tools

  • Tweaking sound effect parameters in the project database

  • Adding volume ducking to improve in games voice overs

  • Debugging various in game sound effects during the project beta phase

Game Trailer

Skills

Programming Languages

C# - Advanced

This has been my primary language for many years. I used it to develop the Vorsprung Tuning Hub, Kleptocrat, Digital Lab Assistant, and this website!

C++ - Intermediate

Still my first love when it comes to programming. I used it regularly when I was more heavily involved in game development. I'm a little rust these days, especially regarding modern standards like C++11 and beyond.

C - Intermediate

Operating systems courses during my graduate studies had a heavy emphasis on using C and multithreading.

Python - Intermediate

A lot of classes during my graduate studies used Python. My favourite use for Python was writing pwntools scripts for a binary exploitation class.

x86/x64 Assembly - Beginner

I read a lot of assembly language during malware analysis and binary exploitation classes at Georgia Tech. I can read it, I can find information in the Intel reference manuals, but I'd be hard pressed to write anything beyond a simple program.

Tools

Visual Studio - Advanced

I have used Visual Studio for just about every project I have worked on since 2007.

Visual Studio Code - Intermediate

I still prefer Visual Studio for most projects, but I find that VS Code has more information available when it comes to remote development and debugging for Linux.

Git - Intermediate

I remember when SVN was cool, and I was probably a bit late to the Git game. The biggest team project I have done that used Git only had 5 team members, so I haven't gotten deep into the weeds with it yet, but I try to be a good citizen when using it.

Ghidra - Intermediate

I spent quite a bit of time in Ghidra during malware analysis and binary exploitation classes at Georgia Tech, including using its Java scripting interface, and I hope to use it more in the coming years to improve my reverse engineering skills.

GDB - Intermediate

I'll admit it, I was scared of GDB for a long time. But after having my head buried deep in GDB (and more specifically GDB with the pwndbg plugin) for a semester during a binary exploitation class, now I love it. The sheer amount of information that can be gleaned about the state of a process is amazing and using it improved my general debugging skills greatly.

Unity - Beginner

I'd like to say that I am an intermediate level user with Unity, but after a semester developing Kleptocrat in it I feel like I only just scratched the surface of its enormous toolset.

Operating Systems

Windows - Advanced

Windows has been my daily driver for as long as I have used a computer. I use it for development and am familiar with the Windows API documentation. I have deployed websites and databases on Sever 2019, which pushed me to improve my Windows system administration skills.

Linux - Intermediate

I dabbled with Linux as a kid when I would build basic websites on a LAMP stack. But when I got to Georgia Tech my Linux skills really took off as I did systems programming in C, some basic kernel module development, and reverse engineered x86 and x64 applications compiled for Linux.

Other Skills

SolidWorks - Beginner

I've done a couple of Udemy courses on SolidWorks and made a couple of basic objects that I had 3D printed.

An unhandled error has occurred. Reload 🗙