Tim Leader

[email protected]

I always strive to advance my own knowledge, so that I can work at the very forefront of technological innovation and development. I'm keen and interested in learning new technologies or techniques, in particular lower level systems and optimizations, and have become a very quick learner and therefore an not phased when faced with a unknown technology. I work calmly in a high pace / high stress working situations.

I have a vast amount of experience of working with live, heavily networked and content heavy products. I enjoy throwing myself into any area of development and help those around me so that we may reach the best possible solution, not just the best technically but the best when balanced against business value, maintenance cost and flexibility. I have recruited and built various tech teams, onboarded them and provided them with technical direction.

I have experience in the following:
Languages: C#, C, C++, Obj-C, Java, Zig, Assembly (ARM), Javascript, Python, SQL, GLSL, LUA
Technologies: Unity3D (3.4 -> 2019.4), (worked with a number of other engines in non-commerical capacity)
Tools: Git, SVN, P4, Visual Studio, Rider, Intellij, VS Code, PyCharm, XCode, Android Studio


I'm currently open to new opportunities, and would very much enjoy a new challenge.

Professional Projects

Lockwood Publishing

Since we came to life in 2009, Lockwood has evolved into one of Europe's top mobile game developers. We are a multi-award winning, independent company, and our staff enjoy flexibility, autonomy and collaborate together using the latest softwares.

Technical Director (Client)

Mar 2020 to Now

  • Worked with the Head of Development and Engineering Director to improve and plan for future team structure, and refine existing processes
  • Worked with our in house recruiter and various leads in the Client department to hire new members for our teams and even new teams, this included carrying out the interviews, developing coding tests and evaluating candidates test results, and identifying candidate fit within the culture of the company and role.
  • Worked with various teams to build out our roadmaps
  • Performing code reviews and providing technical direction / assistance where required
  • Creating initial POC of our HLS Video Streaming solution, which informed / directed our final shipped solution
  • Prototyped LUA integration in the Client
  • Lots of profiling / optimizations / crash investigations and fixing
  • Working with Build Engineers to optimize and improve our VCS and CI systems

Lead Client Developer

Jan 2018 to Mar 2020

  • Worked with Head of QA to build a QA Automation team, and ran technical direction with this team initially to get them up and running.
  • Worked with Lead Backend Engineer to implement a stable websocket connection with the client.
  • Introduced an embedded DB for use across the app
  • Worked with UI team to develop a downloadable UI solution
  • Prototyped a data binding solution which the UI Team later integrated into their UI Solution
  • Investigated and prototyped HTTP2 and a streamed downloaded / caching solution
  • Took ownership and eventually rewrote our MP3 streaming and Shoutcast stream support

Lead Core Tech Developer

Feb 2016 to Jan 2018

  • Overseed the conversion of our Avatar generation code in C++, which I later had to complete the integration into game which involve numerous tweaks and optimizations.
  • Prototyped a VR feature for Avakin, which later lead us to bringing onboard another studio to pursue the DaydreamVR version of the game (unfortunately this was later cancelled)
  • This role involved focusing more on the foundation tech, while maintaining and advancing the
  • Worked with Princple Network Engineer to develop the foundation of what we now call our gameframework, included a custom content pipeline.
  • Overseed the migration between unity versions, which included automated validation of 20,000 virtual item after re-export.
  • Investigated Bink2 integration in the client.
  • Integrated WebP and Snappy, where I built a multi-teir caching solution which would help us more aggressively keep only the on screen UI imagery in VRAM, while keeping download size to a minimum
  • Wrote various foundation code, eg. generic async handles, to make async code easier to write and interface with.

Programmer

Aug 2013 to Feb 2016

  • This role involves programming in a modern game development environment, assisting with the mentoring of new members to the team. The role also requires strong communication with the art and management team to develop content pipelines and tuition around the game capabilities and game engine.
  • Worked alongside another skilled engineer to put together a CI / Build Solution for our content pipeline and client builds, later we brought on board a build engineer to manage and continue advancing the infrastructure we put together.
  • Took ownership of an externally developed NodeJS server.
  • Put together tooling to help Developers and QA test the app with various configurations.
  • Worked alongside environment artists to develop new and extend existing shaders to give the artists more ability to produce better visual results at a lower cost.
  • Maintained and advanced our realtime server for AvakinLife, working through various scalibility issues, through doing this I also interacted with SQL (Postgresql and MySQL) and Redis
  • Prototyped a Lobby Server that would work alongside our realtime server.

Junior Programmer

May 2012 to Aug 2013

  • This role involved quickly adapting myself to the team's standards. Gaining a good understanding of the current codebase and its direction.
  • Ported existing Avakin applications to Android and iOS

Technologies

C#, C++, Obj-C, Java, SQL, JavaScript, Python, Unity3D, Jenkins, Protobuf, LUA, Gradle, Makefiles, Maven, Android NDK, CG Shaders / GLSL, HTTP, TCP, Websockets, Appium, NUnit, NodeJS, Redis, HLS Video Streaming, WebP, Snappy, VR

Platforms

Android (Googleplay, Amazon), iOS, Facebook Gameroom

Links

https://avakin.com/

Nerfgames

An indie game studios that me a good friend founded, while we were still students at university.

Technical Director

April 2010 to May 2012

The majority of projects undertaken within NerfGames can be found at nerfgames.co.uk. Most were developed in C# and XNA 4.0. One of these projects is the NerfCore which is an in house games engine that is designed to replace, optimise and enhance many areas of XNA and make programming games for XBOX, PC and WP7 quicker and easier to implement more feature rich content. Throughout these projects SVN and then later TFS where used to make version control easy while working as a team on the same codebase.

This role within this small Independent game studio, had me mainly focused around core development, including core graphics programming. Though the role also extended to develop the company website, professional networking at attended events, team management, research and project management.


Technologies

C#, Java, HLSL, DirectX XNA, PHP, SQL HTTP

Platforms

Windows, XBOX 360, WP7, Android

Nottingham Trent University

Researcher (Cave Mapping)

This project was done for the Nottingham Cave Survey. Laser scanner's datasets were the point of interest for this project as this data could only be displayed as a pre-computed non-interactive video or a static virtual tour if wanted in real-time. The aim of this project was to establish a workflow for putting the scanner's datasets into a real-time environment such as a modern day game engine like Unreal Engine 3.


Technologies

UE3, XNA, C#, MeshLabs

Dissertation - Frequency Texture Mapping

This project involves implementing frequency-space textures on modern hardware in order to investigate if it is now possible to use this at real-time in order to remove aliasing from texture sampling. This project has involved heavy use of frequency-space transforms, to transform the 2D textures into frequency-space and synthesize the textures back from frequency-space.


Technologies

C++, OpenGL, GLSL, C#

Personal Projects

N64-Demo (in progress)

Overview

Most recent personal project is to build a vertical slice for the N64 hardware, so far I have got the official SDK with some tweaks up and running in docker that will compile Zig code for N64.
Again this is a project to like the GBA-Demo one to massive advance my skillset and knowledge-base.


Technologies

Zig, C, C#, Docker, Unity3D

Platforms

N64, Windows

GBA-Demo


Overview

This GBA demo is vertical slice built from the ground up, point and click adventure style demo with 3d entities over pre-rendered 2d backgrounds, also including video playback and 3d audio. The demo is based on an existing game made by Ben 'Yahtzee' Croshaw, 7 Days a Skeptic. This is a personal project to aid developing my own skillset, inspiration / desire for this project came about after seeing Raylight Studio's Blue Roses GBA Tech, in particular the Resident Evil 2 tech demo.


Below I have listed a subset of the challenges I faced:

  • Writing a custom malloc from the ground up to support the GBA's two different areas of RAM, also an apreication of memory alignment and DMA.
  • GDB debugging.
  • Fixed point numbers / maths and LUTs to help with divides and trig
  • 3D software renderer, some parts of which has been converted to asm where needed, also have included self modifying code to get some extra speed
  • 3D Audio engine, mixing, investigations around DPCM with Huffman encoding but it did make sense.
  • Video Playback, ported an open smacker decoding library to GBA, decided on the route after investigating a number of other options
  • Makefiles / Linkerscripts, so that we can ensure the various code and data can be placed in the right location.
  • Unity3D based Content Pipeline
  • And many more...

Technologies

C, ARM Assembly, C#, Makefiles, GDB, GCC, SDL2, Unity3D

Platforms

GBA, Windows

Source

https://github.com/timleader/gba-demo

Outrun (Android Port)

Overview

Took a Outrun ROM system and ported it to android, the big challenge here was making the right decisions where and what to wrap, in the end decided to use a android version of SDL and a subset of Boost.


Technologies

C++, SDL, Android NDK

Platforms

Android

Source

https://github.com/timleader/cannonball-android

Took part in a fair few game jams, we usually pursued game ideas that would involve some form of networking to produce a more fun / social experience.

We attended a number of more local game jams, and also a the more well known Global Game Jam for a number of year.


Technologies

C#, XNA

Contact Information

About

© Tim Leader