#1, what languages?

Web Languages

HTML5

Modern Markup Standards
  • Two years of HTML lectures at degree level.
  • Multiple years of working within the standards.
  • Understanding of semantic elements for ease of design.
Web Languages

CSS3

Styling, Animations and Design
  • One year of CSS lectures at degree level.
  • Multiple years of working within the standards.
  • Experience with CSS on legacy systems.
Web Languages

JavaScript

Dynamic Client Pages
  • Two years of JS lectures at degree level.
  • Multiple published works.
  • Proficiency with both pre and post ES6 Javascript.
  • Experience with both server and clientside JS.
Web Languages

PHP

Dynamic Server Pages
  • Management of legacy systems (5.6)
  • Multiple open source libraries.
  • Work with simple PHP, class based development and complex libraries.
  • Development of embedded systems including REST APIs, Database Migration and CLI tools.
  • Two years of degree level education.
Data Manipulation

SQL

A language for querying structured data.
  • Experience in multiple variants (SQLite, MySQL)
  • 6 months of degree level education.
  • Experience of database management.
  • Data normalization & deduplication.
General Purpose Programming

Python

Science, Prototyping and Rapid Development.
  • 5 years experience.
  • Published package.
  • Deployed production scripts.
General Purpose Programming

Lua

Embedded Scripting.
  • too many years experience.
  • Use of embedded environments. Garry's Mod, ComputerCraft, Stormworks.
  • Stand-alone systems. Linters, Reformatters.
General Purpose Programming

Shell

Command Lines.
  • Two years experience.
  • Skills in diverse environments. Unix Shell, Bash, Batch, PowerShell.
General Purpose Programming

Visual Basic (.NET)

please i dont want to use it again
  • Development of business software.
  • no seriously please dont make me use vb again.

#2, what technologies?

Stack - Base

Linux

Ubuntu and Debian.

Use of Ubuntu and Debian as a base OS for other layers of the stack, including hardening, maintenance and other administration.

Stack - Connectivity

Apache 2

Serving files.

Serving files, which included setting up VirtualHosts, proxies, caching, additional security, rewrite rules and more to ensure more reliable service with improved uptime.

Stack - Storage

MySQL

also MariaDB.

Ensuring that data was stored, secure and accessable, involving general database administration, backups (of both data and the data folder) and other modifications to increase efficiency and reliability.

Stack - Dynamic Responses

PHP

Both for Apache and CLI.

Whilst generally this only involved writing code, this could also include making configuration modification to allow for better service.

Stack - Containers

Docker

Containers, Compose and Swarm

Generally, Docker worked well by itself, with my interactions being limited to the creation and management of services and containers, ensuring they interacted well with the rest of the system.

Stack - Dynamic Responses

Node.JS

Javascript on the Server

Working with node ranged from single purpose microservices and command line applications through to large systems incorporating multiple datasets to provide information to end users. This also included setting up management (for those systems not ran through Docker), and ensuring they worked with pre-existing systems.

Job Role

DevOps

SysAdmins who Develop, and Developers who SysAdmin.

Working with the multiple technology stacks on the server, combined with DevOps software such as GitLabs, my role as a developer shifted over to DevOps, writing code, ensuring it deployed, testing it, and making sure works.

Technology

Version Control

git and svn, through GitHub, GitLab and BitBucket.

VCS ensures that changes can be tracked back, breaking changes can be reverted and everything's logged, whilst also improving productivity through branches, merges and other protections from overwriting code.

Technology

REST APIs

Remote Data via HTTP.

Throughout my development career, I've both had to ingest REST APIs to find data and make changes, whilst also writing REST APIs to expel data and ingest changes.

Technology

Webhooks

"tube schoomper" -Discord

Webhooks are just REST APIs that push data, really. Just like with regular REST APIs, I've had to both write code that pushes webhooks and ingests them. This includes webhooks from multiple sources, such as GitHub, Ghost and GitLab.

#3, what work?

Photon Lighting Engine

Though only a recent addition to the Photon Core team, I've put in large amounts of effort, from improving use of VCS within the team, to building notification services. This is combined with code provided to the Photon Lighting Engine core.

The Photon Lighting Engine Github/Gitlab Notifiers.

The Photon Lighting Engine Github/Gitlab Notifiers.

L² Plates

L² plates is a system written from the ground up in Garry's Mod, using Lua as an embedded scripting language. The plugin itself is sold on GModstore, with a more advanced build system having been built around it. This system includes a set of docker containers, running a database and API service for the development tool, and a GitLab pipeline for building and deploying the addon versions, along with both the ingame system and development tool.

L² Plates Background Image

L² Plates Background Image

Limelight Gaming

Development Lead

Within Limelight Gaming, as the development lead, a major part of my role has been improving team efficiency. Our team is compromised of a small number of developers, most of who work on Limelight as a secondary or tertiary job.

The list of developers I manage.

List of developers I manage.

With this has led to an improvement in the soft skills: People management and conflict resolution. This has been of key importance here, if one person leaving drops staffing by 15%, each person is key.

Limelight Gaming

Workflow Optimisation

With such a limited staffing level, we've also have to develop custom stacks in order to improve our workflows. For example, a system I developed was the suggestions management console, a key part of improving our suggestions workflow.

Suggestion Review Manager.

Suggestion Review Manager

This has led to a 50% decrease in the time spent processing internal suggestion reviews. Many part of this system are also fully automated, from polls to requesting review to automatic closing.

Limelight Gaming

Data Protection

Whilst for many a boring subject, data protection is of key interest to me, hence why I put myself forward for for the data protection role. Within the role, I worked on improving compliance with regulations (including the GDPR), implementing workflows for subject requests and training other staff to improve data protection throughout the company.

Preface for the LL Data Report Green Paper.

Preface for the LL Data Report Green Paper.

Limelight Gaming

The Emergency Vehicle Update

One of the major updates I worked on for Limelight was the Emergency Vehicle Update. This involved working with myself and three other texture artists to create new liveries and configurations for over 80 vehicles, creating over 70 liveries and hundreds of configurations.

A 2013 Taurus with Rockford Police Livery.

Just one of the vehicle configs.

Despite some issues with one of the texture artists becoming unavailable, and some disagreements between the artists and other staff members, the update only released a few weeks late (impressive considering multi-week delays that happened during development), this not only allowed me to work on other development skills such as texture work, but also allowed development of the soft skills.

The full set of State Trooper liveries.

The full set of State Trooper liveries.