Hello there! This is the personal site for Nicholas Welch. I am a software engineer specializing in web development. Below is a list of some noteworthy projects I have worked on. I am not currently looking for any work, but you can contact me at nc.welch@icloud.com if you have any other inquiries.

Recent projects

Xanje Logo
Xanje is a virtual pet collecting game and discussion community. Lead developer since 2015, CTO since 2016. Initially hired as a freelancer, I went on to rewrite the entire website from the ground up. I developed the proprietary web-based game, discussion boards system, and management tools.

When I was originally "hired," Xanje's hosting was being paid for out-of-pocket by the owner, only earning very little from Google AdSense advertisements. Xanje now pays for itself and earns a profit from game micro-transactions.

The main website is written using the Laravel PHP framework, client-side utilizes custom ES6 Javascript and SASS with a streaming build system. Real-time messaging and notification system built with NodeJS (communicates with client via WebSockets) and Redis.

I also write Photoshop batch automation scripts (ExtendScript, JS syntax) for Xanje, which our artists use to process their art and create large quantities of unique color variations.

The iOS application is currently in development (Swift). The app communicates with the regular web PHP backend via a new HTTP API which I plan to transition all Xanje platforms to in order to take advantage of hypermedia practices.

Our servers run on Amazon Web Services, with five EC2 Ubuntu instances. We also use Amazon's CloudFront CDN to reduce the hosting burden of our most accessed pet images.
AWS • PHP 7 • Laravel 5 • ES6 • NodeJS • MySQL • Java • Swift • Payment integration

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. A work in progress, and works great for low-demand releases, but still working out 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).

Past projects

iBattle screenshot Pokemon battle intro proof of concept. Seizure warning - view it here.

Another learn-by-recreation project, uses Javascript and the DOM to create an animated Pokemon battle scene. (Ends after "Go Bulby!")

Written around 2012.
Advertisement video created by a community member

OVMK
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. It was originally open from 2005-2008, and still has a huge cult community to this day.

Isometric tile testing in OVMK client Isometric tile testing in OVMK client

The game client I worked on was HTML5-based. Originally, the server connection was simply AJAX calls from the client to PHP scripts, but I later adopted WebSockets and ported the game server to Java. Client originally was all DOM-based, but used the Javascript 2D canvas in later iterations.

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.

Media & Links

Final OVMK Homepage
Early Pre-Alpha Testing video
PHP • HTML/CSS/JS • JS 2D Canvas • Java • MySQL • vBulletin

Other random projects

High school project on Walt Disney company (Early 2012)
Nancy Drew game clone (2015, unfinished, low-res displays only)
CIS 371 Firebase homework (2017)