Developer/Linux sysadmin in Gisborne/Tairāwhiti, New Zealand.
IT generalist, creative, VR enthusiast.
I've been building software and websites as a full stack developer for over 15 years, using a range of languages and platforms. My specialty is in architecting and building software and automation using Open Source/Free Software components.
My commercial experience is foremost in web development. On top of this, work on mobile apps (native iOS and Android), back-office software and automation, as well as a multitude of unreleased side-projects (with mostly older work released on GitHub). I'm proficient in many compiled languages (e.g. C, C++, Rust); along with many scripting languages (e.g. PHP, Python, Scheme) offering a good contrast and ability to use the right tool for the job.
I love learning about new domains, and I keep an eye on emerging and trending technology. Like many others I am looking carefully into AI and machine learning to expand software abilities, and have experience running many freely available models on Linux (both in ROCM and CUDA environments) and using these in practical applications.
I'm also very passionate about all things creative, and dabble in design, real-time graphics, 3D, and VFX projects when I can.
(Please note that this is not an exhaustive list, but is a representation of skills and technologies that I have used in production)
Building websites, software, and managing the infrastructure it runs on.
Website implementation with PHP (5.3-8.0) for a range of client sizes and backgrounds, primarily using the open source SilverStripe 4 CMS. Previously e-commerce and bespoke development using Magento, Symfony 2.x, Drupal 7, and WordPress. Custom integrations built for payment, shipping, and ETL into existing client systems and workflows. Consulting on technology and architecture.
Managing a fleet of Linux machines (Ubuntu), and local development environments through Docker.
Worked with a small team on a ride-sharing/hitchhiking style app idea, placing third at Startup Weekend Taranaki (November 2015).
Responsibilities including project management, implementation of systems (web, software, and mobile apps) for clients, and setting up and maintaining team infrastructure (servers, git and issue tracking).
Mobile work including native Android (Java) and iOS (Objective-C) apps, alongside JSON based APIs (PHP).
Developed a brand for this small startup in the first half of 2011 including a logo, web site, and business cards. Also responsible for implementation of web projects for clients.
Part-time work fulfilling web design and development projects (PHP, HTML, CSS, and JavaScript). Implementation of back-office software projects (Chicken Scheme, C, GDI, Win32 API).
The first automatic tiling window manager for the Windows operating system, as well as being one of my first (and poorly written) C projects. Uses the classic Win32 API to manipulate window frames and efficiently lay them out on screen. Inspired by some well-known tiling window managers on Linux such as dwm and Xmonad. Several hundred "stars" on GitHub and some large users. I previously had plans to rewrite this into a small core that handles layout logic, while allowing for platform "drivers", including a dummy driver, making HashTWM testable in the future. Available on Github.
A MUD-style text environment for world-building and experimenting with Large Language Model based NPCs. Also used as a "mind palace". Written in Common Lisp, and is used via CLI or IRC interfaces (with an optional custom web client). The world exists as a Lisp structure and is self-modifying. Navigation of items happens by moving them around this structure, with Dijkstra shortest-path-finding and other methods of walking the tree. Supports timers, hooks, a built-in web server, a map with Graphviz output, and an API for objects to use (some of this located in the world itself).
A tablet focused workspace, based on interactive "paper" like modules and multitouch. Features an embedded fantasy CPU, with a small assembly like language. The entire workspace can be serialised and deserialised on demand.
A PS1-inspired-and-styled bullet hell, featuring multiple vehicles and modes of transport. Gameplay modifiers as pickups. Randomisation via seeded RNG.
A self-hostable VR platform for networked worlds. A distributed scene-graph where bots are a feature, not a bug :)