Hello there! This is the personal site for Nicholas Welch. I'm a software developer — for the web and beyond — from Hudsonville, MI, USA. I am not currently looking for any work, but you can reach me at nc.welch@icloud.com if you have any other inquiries. Below is a selection of some interesting projects I have worked on.

Recent projects

Xanje is a virtual pet collecting game and discussion community. Initially hired as a freelancer to fix up what was a heavily modded SMF forum, I went on to reimagine the entire website from the ground up. I developed the proprietary web-based game, discussion boards system, and management tools. Xanje has been open since 2013, running my codebase since 2016. It has approximately 6,000 monthly active users.

Xanje screenshot

Xanje's backend uses the Laravel PHP framework, client-side is written in JavaScript (ES6). Real-Time messaging and notification system runs on NodeJS, communicating with client via WebSockets.

An iOS application is in the works (Swift). The app communicates with the central PHP backend via a new HTTP API which all Xanje platforms are transitioning to in order to take advantage of hypermedia practices.

Xanje's servers run on Amazon Web Services, with five EC2 Ubuntu instances. Amazon's CloudFront CDN is used to reduce the traffic burden of our most accessed pet images.

AWS • PHP 7 • Laravel 5 • ES6 • NodeJS • MySQL • Swift • Java [pet processing tools] • Payment integration

GoldVine is a web app for accessing the 6-second video sharing service Vine's archive. Press a button to show a random funny vine, or search by username.

GoldVine screenshot

Videos play when hovering on desktop, or while finger is touching on mobile. Videos loop, updating the count after each loop.

Past projects

WebTunes is a web app that allows users to store and listen to music from anywhere with web access, inspired by iTunes circa 2010. You can drag and drop tracks onto the library to have them uploaded into your library, then they can be played back exactly as you'd expect from a music library program. Allows for playlist management.

WebTunes library screenshot

WebTunes library/player

The backend uses the Laravel PHP framework, and the front end is custom Javascript (ES6). A fun, simple hobby project that I work on whenever I need a break from other things. Began writing this in 2014.

YeezySupply.com Shopify bot created to automate the process of purchasing the popular low-quantity Yeezy shoe. A CLI tool written in PHP, uses the Selenium ChromeDriver and spoofed Curl requests to automatically purchase items from a Shopify shop, namely YeezySupply.com, based on the user's configuration. Works great for low-demand releases, but one challenge is how to circumvent Shopify's throttle system during high-demand/low-quantity shoe releases.

Below is an early video of the script running, prior to the addition of multithreading (late 2017).

OpenVMK was a hobby project in which I led a movement to create a clone of Disney's defunct Virtual Magic Kingdom (VMK) multi-player online game. VMK was a Shockwave isometric MMORPG that let players hang out in a virtual Disney theme park, modeled after Disneyland.

Isometric tile testing in OVMK client

Isometric tile testing in OVMK client

The game client originally was all DOM-based, but switched to the HTML5 canvas in later iterations. Similarly, the server connection was originally AJAX calls from the client to PHP scripts, but I later adopted WebSockets and ported the game server to Java.

Progress video by me, Feb 2013

The project changed directions in 2013 when I found someone with a Director Shockwave disassembler, allowing us to actually modify and host the original game client mined from community-sourced browser caches. Although my client didn't go public besides "staff" previews and alpha testing sessions, I will forever be grateful for the loads of experience I gained during this project with JavaScript and PHP, not to mention learning how to work with others remotely and managing an online community.

I worked on OpenVMK on and off from April 2011 to September 2013. Early Pre-Alpha Testing video

PHP • HTML/CSS/JS • JS 2D Canvas • Java • MySQL • vBulletin

Random stuff

Nancy Drew game clone WIP warning: not optimized, big downloads