nick-hill.com

Architect · Lead · Contractor
nick@hillsoftware.org | LinkedIn

Games Collection | Gift Mouse | Career History
Public Repositories | Skills | Applications

Games Collection

Here for the games? We've got you covered! Just click on the link below for the games home page.

games.nick-hill.com


Examples:

Nick's latest online games are written as SPAs in TypeScript.

Gift Mouse

A small social media website allowing friends to share gift ideas and secretly scheme to purchase gifts.

Sign up for free via the link below!

gifts.nick-hill.com

Technical Career History

Nick has over 20 years of experience in professional software development, most often as a full-stack lead specialising in C# .NET.

Over the years he has worked diligently with many businesses and organisations to architect, develop, implement, and maintain complex software solutions that meet business needs, focussing primarily on pragmatic, timely and cost-effective solutions. His history includes significant contributions to the risk, finance, government, public transport, and health sectors.

Nick has also been heavily involved in free and altruistic software development, having personally written many APIs, websites, tools and even games in his spare time.

If you're interested in Nick's personal development as a software engineer feel free to review the following chapters of Nick's history.

Getting Started (1990 - 1997)

Nick got his start on an Amstrad CPC 464 and learned how to write software on it and other machines.

Portfolio of projects for 1990 - 1997

Freelance (1998 - 2004)

During his college and university years Nick conducted a side business as a freelance software developer.

Portfolio of projects for 1998 - 2004

Early Career (2005 - 2008)

Nick vastly expanded his knowledge of hardware and software during this period, continuing his education, personal development and freelance work while starting a full time career in technology.

Portfolio of projects for 2005 - 2008

Senior Software Engineer (2009 - 2014)

Nick started to focus more heavily on his career during this time, rising up the ranks so that he was considered the expert on several large software integrations.

Portfolio of projects for 2009 - 2014

Lead SE and Contractor (2015+)

Nick is now typically a lead software engineer wherever he goes, though he has also dabbled in management, maintenance, DevOps and mentoring while continuing to build on his impressive personal independent portfolio.

Portfolio of projects for 2015 onwards

Public Repositories

A small sample of Nick's code on the web.

WebSocket Relay

C# TypeScript

GitHub: https://github.com/nick-hill-dev/websocketrelay

Supernova

TypeScriptC#PHP

4X strategy game that allows you to design your own ships and conquer the galaxy.

Play Supernova

Stardodge

Turbo Pascal

GitHub: https://github.com/nick-hill-dev/stardodge

A simple space travelling game from 1999.

Gift Mouse

PHP Smarty Postgres Javascript

GitHub: https://github.com/nick-hill-dev/web-php-gifts

Skylight

TypeScript

GitHub: https://github.com/nick-hill-dev/skylight

Skills

Technical Skills

  • C#: NET Framework and .NET Core, using Visual Studio 2003-2022 and VS Code.
  • Web: ASP.NET Core, MVC, HTML5/Javascript (and various popular libraries), TypeScript, PHP, CSS, IIS, Apache.
  • Web Services: Microservices, REST, Web API, AJAX, WCF, WebSockets, SOAP, Protocol Buffers, MSMQ.
  • SQL: T-SQL/MSSQL using SQL Server 2000-2017, PostgreSQL, MySQL.
  • Mobile: Mobile Web, Android/Java, Windows Phone, J2ME.
  • Cloud: Azure including Cosmos, VMSS, Service Bus, Active Directory, B2C, Kubernetes, API Management, App Configuration, Key Vault and others.
  • CI/CD: Azure DevOps, Docker, GitLab, YAML, TeamCity, Gitblit, Nexus, PowerShell, infrastructure.
  • Version Control: Git, Mercurial/HG, Subversion, Perforce, Jira.
  • Other: Java, WPF, Windows Forms, VB.NET, VBA, Silverlight, Delphi Pascal, C++, Raspberry Pi…etc.

Development Skills

  • Leading architecture, design, implementation, review, support and maintenance of complex, scalable software.
  • Continuous integration, test driven development, systems security, systems reliability, fault diagnosis, DevOps.
  • Experience of working to various development methodologies (Agile, Kanban, Extreme Programming (XP)).
  • Excellent communication skills and a healthy appreciation for the challenges of remote working.
  • Management, mentoring, product demos, running meetings, formal quotations, scheduling, prioritisation, HR.
  • Windows, Linux and Office.

Public TypeScript Libraries

Soon to be released into the public domain.

  • Tiley Atlas-oriented square tile, multi-layer map management and canvas rendering for JS/TS-based games.
  • Atlas Loading and rendering of individual square tiles from an image that can contain any number of tilesets at arbitraty locations.
  • AutoPage Automatic generation and rendering of a form based on JSON data and/or schemas for rapidly prototyping system functionality.
  • BitStream A binary reader and writer that works on the bit level and provides powerful facilities that can be used to compress the data as much as possible.
  • Compiler Allows strings to be tokenised according as per a DFA-based state machine, defined via a fluent interface in TypeScript.
  • Elements Simplifies the process of creating and managing HTML elements on a page, condensing the amount of code required to build a useful DOM.
  • FullScreenCanvas A simple way to add and remove a canvas that occupies the space of an entire window.
  • Geometry Exposes common objects used in programming that involves points, rectangles, squares, distance calculation...etc.
  • Hex Useful methods and classes for defining and manipulating a hex grid.
  • Loader Define how you want files to be loaded in a single place then let the library do the magic of loading them. Specialises in handling one or more JSON files and sections within a JSON file.
  • Query LINQ-like queries and operations for Javascript.
  • RichPictures Draw pictures using compact code executed at run time.
  • Singularity A layout engine for the HTML DOM. Let it manage the position and size of your elements and you can style them as you want! Adopts concepts from .NET WPF.
  • Sound Load and play sound effects. Supports sound maps (I.E. multiple sounds in a single file) and looping.
  • Stately A state engine which also provides facilities in the form of processors to help you break down what might be a large state with lots of code, into multiple classes.
  • WorldSpace Allows you to define the extents of a two dimensional virtual world and then map points forwards and backwards onto screen co-ordinates.
  • WSRelayClient Implements the WSRelay protocol and allows computers to communicate with one another so long as they all connect to the same WebSocketRelay server.

Applications

  • Phone Mouse
  • Traveline Scotland
  • TI Helper
  • GiftMouse
  • Password Generator

nick@hillsoftware.org | LinkedIn