Jamie Phan

Software Engineer

Scroll to explore

About Me

I’m Jamie Phan (he/him), a software engineer with a degree in Computer Science from the University of Leicester. I work across the stack, from TypeScript and React front ends to Node.js services, containerised infrastructure and CI/CD pipelines, and I’m comfortable dropping down to native code when a problem calls for it. I’m equally at home in Linux and Windows environments, and in the networking and identity layers beneath most production systems.

What I enjoy most is automation and developer tooling: turning repetitive, error-prone work into systems that run reliably on their own, such as a GitHub Actions pipeline that tracks every game update, a serverless API on Cloudflare Workers, or a Node-API binding published to npm. I care about the details that make software pleasant to use and easy to maintain: clear interfaces, accessible and fast pages, and helpful documentation.

Outside of work, I build and maintain open-source tools for the Heroes of the Storm modding community, from a browser-based map generator to automated data archives that other modders rely on. It’s where I experiment with new tools and techniques, which often find their way back into my day-to-day work.

I write occasionally on my blog. You can connect with me on LinkedIn, reach me by email or browse my open-source work on GitHub.

Skills

Languages
TypeScript, JavaScript, Java, Python, C#, C++, SQL, Bash, PowerShell
Java & Spring
Spring Boot, Spring MVC, Spring Data JPA, Spring Security, Hibernate, Maven, Gradle, JUnit
Node.js & TypeScript
Node.js, Express, Hono, Next.js, Node-API (N-API) native addons, npm package publishing
Front end
React, Vite, Three.js, HTML, CSS, responsive design, accessibility (WCAG), web performance
Desktop
Electron, cross-platform installers and auto-updating release pipelines
APIs & architecture
RESTful API design, microservices, serverless functions, JSON / XML / YAML data processing
Databases & caching
MySQL, PostgreSQL, SQLite, MongoDB, Redis
DevOps & cloud
Docker, Kubernetes, Cloudflare Workers, GitHub Actions, CI/CD pipelines, infrastructure automation
Testing & quality
Unit and integration testing (JUnit, Vitest), linting, type checking, code review
Platforms
Linux and Windows administration, shell scripting (Bash, PowerShell, batch), virtualisation
Networking & identity
Firewalls, gateways, reverse proxies, DNS, Kerberos, Active Directory, Microsoft Entra ID
Tools & practices
Git, GitHub, Agile delivery, technical documentation, automation-first workflows

Projects

Much of my professional work lives in private repositories, so this is a selection of my open-source projects. You’ll find more on GitHub.

  • jamiephan.github.io

    This website: a prerendered React and TypeScript site built with Vite, set against an interactive Three.js solar system rendered in real time.

  • simple-multicast-share

    A self-contained file and text sharing app for local networks, distributed as a single binary backed by SQLite, with multicast DNS discovery so devices find it automatically.

  • cf-bnet-version

    A Cloudflare Workers API built with Hono that fetches the latest application versions from Battle.net and serves them as JSON, including Shields.io badge endpoints.

Heroes of the Storm: Modding

Heroes of the Storm, Blizzard’s MOBA, runs on a modified StarCraft II engine. Unlike StarCraft II, it ships without a public map editor, but it inherits undocumented support for loading custom maps.

With more than 3,000 hours in the game and many more spent modding it, I build open-source tools that make custom maps accessible to the community.

  • CascLib & StormLib for Node.js

    Modern cross-platform Node-API (N-API) native bindings for CascLib and StormLib, the libraries for reading Blizzard game archives. Published on npm as @jamiephan/casclib and @jamiephan/stormlib.

  • Storm Map Generator (source code for Storm Map Generator)

    A web app that generates .stormmap files without any local tooling. Choose a template map, add AI players, enable debug mode, set a welcome message and attach custom XML game data, which you can edit and validate in the browser.

  • Try Mode 2.0

    A drop-in replacement for the in-game Try Mode that adds debug mode, unit spawning and live editing of game values, and builds map variants (including AI variants) from custom modding data.

  • Try Mode 2.0 Installer

    An Electron desktop app that simplifies installing Try Mode 2.0 and fetches the latest maps from GitHub Releases.

  • Game Data

    An automatically updated archive of all non-binary game data. It also generates an XSD schema that enables validation and editor auto-completion for custom mods.

  • S2MA

    A GitHub Actions pipeline that downloads each game update and extracts the map and mod files used by Try Mode 2.0 and AI Maps.

  • AI Maps

    Automatically injects AI players into maps from the S2MA repository, generating team compositions such as 1v5 and 3v3. The 5v5 variant is used by Try Mode 2.0.

  • Game Data HTTP

    A Cloudflare Workers API that serves the Game Data repository in multiple formats, with badge endpoint support.

  • Tools

    Utilities and scripts that support my Heroes of the Storm modding workflow.

Thank you for visiting my website. (Source code)

Hehe, you found me!

You can now fully control the universe.

Rotate
Drag with mouse or one finger
Zoom
Mouse wheel / pinch / hold − +
Pan
Right-click drag or drag with two fingers
Roll
Hold Q / E or the roll buttons
Fly to a planet
Click or tap it, or pick from the list