About

My name is Lea Hayes. I was born in 1986 and am extremely passionate about software engineering and development. I am experienced with managing the engineering function of a company but also enjoy hands-on design and development. I have worked on applications, games, websites, and APIs. I am always interested in learning and experimenting with new things and am always keen to push my skills to the next level.

Skills

  • Learning on the Fly
  • Line Management
  • Mentoring
  • Software Design
  • Clean Coding / Scripting
  • UI/UX Design
  • Testing and Diagnosing Issues
  • Performance Optimization
  • Web Design
  • Version Control
  • Documentation
  • Technical Support

Work Experience

2018-2020
SAM Labs Head of Engineering

I was responsible for hiring and managing the engineering team where we developed the SAM Space app with the Unity engine, a supporting API with Node.js, and a website with Craft CMS. I also worked closely with the other departments for cross-functional work.

2010-2019
Rotorz Limited Director

I started out by developing bespoke websites for clients and then gradually transitioned towards game development. Alongside client work I also developed tooling for the Unity engine which included a commercial product called Rotorz Tile System.

2004-2010
Rochester Cameras Sales and Website

This was the family business which was operated by my dad and grandparents where we sold new and used cameras.

Education

  • 2005-2007 BEng Games & Entertainment Systems Software Engineering
    First (Hons) + Engineering Prize - University of Greenwich

  • 2002-2004 AVCE Information and Communication Technology
    Double A + Highest achiever on the programme - Mid-Kent College

Personal Accomplishments

  • Leading the engineering function of an ed-tech company where I hired and line managed my own team of software engineers. I had weekly one-to-ones with each of my team members and mentored them to help them build upon their skillsets. I found it very rewarding to see how far they improved after just over a year of being in my team.

  • Leading the development of several games which are available on the various mobile markets as well as Steam for desktop releases.

  • Working with clients to develop games, websites and tooling to ease development workflows. This involvement has ranged from design and development; to optimising poor existing code bases; to porting existing code bases; to diagnosing and fixing issues; to training; to leading development.

  • Development, support, and maintenance of the Rotorz Tile System editor extension for the Unity game engine for over 6 years which has been used in the prototyping and production of numerous games on mobile, desktop and console.

  • I have developed a number of open source packages which have been used by the developers of commercial games, both indie and large studios alike. Several of the packages became quite popular and have been incorporated into a number of assets on the Unity Asset Store including PlayMaker which is used by extremely successful games like Hollow Knight.

  • I have been involved in the BETA testing of the Unity game engine for several years and have raised a number of issues with repro projects which were recognized and addressed.

Tools and Technologies

Over the years I have worked with a number of languages and technologies to facilitate the needs of the projects that I have worked on. Here are some of the most notable ones that come to mind:

Programming and Scripting

  • OOP
  • SOLID Principles
  • C#
  • .NET / Mono
  • Linq
  • Java
  • Node.js
  • npm
  • JavaScript
  • TypeScript
  • Blueprints
  • UnityScript
  • C / C++
  • Makefile
  • Lua
  • Visual Basic
  • DirectX
  • OpenGL
  • ShaderLab
  • GLSL

Web Technologies

  • CSS
  • HTML
  • BEM
  • Stylus
  • Nunjucks
  • Jekyll
  • PHP
  • Twig
  • Craft CMS
  • WordPress
  • ExpressionEngine
  • Joomla

Game Engines

  • Unity
  • UE4
  • Scirra Construct
  • Clickteam
  • GameMaker
  • 3D GameStudio A4

Code Editors / IDEs

  • Visual Studio
  • VS Code
  • Vim
  • MonoDevelop
  • Eclipse
  • NetBeans
  • SublimeText
  • Notepad++

Graphics and Audio

  • Photoshop
  • ProCreate
  • Blender
  • TexturePacker
  • 3DS MAX
  • Mudbox
  • Audacity

Version Control

  • git
  • SourceTree

Documentation and Data

  • Markdown
  • JSON
  • YAML
  • XML
  • XSL
  • MySQL
  • DITA
  • Word
  • Excel
  • PowerPoint
  • Google Docs

How I became interested in software development

I got my very first computer (a Dragon 32) at age 6 which my grandad gave to me one weekend when I went to visit him. My dad and I were really taken by this and spent countless hours playing some fairly tricky arcade games. Whilst a couple of the games that we had were on cassette tape, most of them were just source listings in books that we would have to manually key in each time that we wanted to play them. At the time neither of us understood any of the code but we had a lot of fun trying to get these games to actually work.

My dad bought me my first PC (an Intel 486) a couple of years later with a point-and-click game creation program called Klik & Play which was the first in a series of game development tools by Clickteam. Over the next 5 or so years my and my dad created quite a number of games using these tools in conjunction with other content creation tools such as 3D Studio Max, Photoshop, etc.

Screenshots of some of the games that my father and I made

Some of the games that my father and I worked together on when I was a kid in the 90s.

I started to become curious as to how software worked and an old friend of the family introduced me to Visual Basic. My dad bought me some pretty chunky books so that I could learn how to create my own software. I stuck with Visual Basic for several years and then when we got the Internet I started to become aware of other programming languages and started to learn C and C++.

After senior school I went to college to study computing with a focus on software development. My course tutors were very good in allowing me to focus on more complex and interesting topics whilst still fulfilling the requirements of the syllabus. I graduated college and moved on to study games and software development at university.

After university I worked down the family camera store to help them through hard times and so was unable to begin my development on a professional level. Although this didn’t stop me from exercising my skills in my free time.

Hobbies and Interests

I enjoy playing difficult games like Dark Souls and Hollow Knight with friends; we challenge each other to complete specific runs. I personally enjoy hardcore (aka permadeath or one-life) playthroughs because it forces me to play more carefully… death can be just around the corner at any time!

Whilst playing games I will typically watch and interact with a couple of close knit communities on Twitch where I am also moderator. Twitch is an amazing community and I have met some really amazing people on there.

I really enjoy being creative and pushing myself wherever possible with graphics creation. At the time of writing I am creating a 3D character model with Blender using the Adobe Mixamo service to automatically rig and apply animations. My “arting” skills are by no means as strong as my development skills but I am always looking to advance them.

Nothing pleases me more than to help get friends started with software development. I find it incredibly rewarding to see other people creating amazing things using knowledge that I have shared with them.