atrussell.site
Contact

Aaron Russell

"Aaron Russell" redirects here. For the American professional volleyball player, see Aaron Russell (Volleyball). For the American baseball player, see Aaron Russell (Baseball).
Aaron Russell Aaron Russell

Official portrait, 2018

Born

Aaron Thomas Russell

September 28, 1991 (age 34)

New York, U.S.

Skills

Python • Javascript • PHP

PostgreSQL • MySQL

Docker • Kubernetes • AMPQ

Svelte • Vue • TailwindCSS

Three.js • GSAP

Software Engineer Advanced Information Management

March 2023 - March 2025

Engineering Intern Advanced Information Management

July 2021 - August 2022

Aaron Russell (born September 28, 1991) is an American full stack developer. He most recently worked at Advanced Information Management as a Software Engineer (2023-2025). Outside of work his main interests are the video game Path of Exile and cooking.

Work Experience

At Advanced Information Management (AIM), Aaron Russell helped develop a platform for third-party logistics businesses.

AIM's clients managed warehouses for alcohol and tobacco suppliers. AIM's software was responsible for managing inventory, submitting orders to final-mile couriers, and processing tracking information.

Among the larger tasks undertaken, Aaron helped integrate AIM's platform with the APIs of several shippers such as UPS and FedEx. He also designed a web-hook service to deliver push notifications to consignees.

Projects

Timeless Historian

The game Path of Exile is an action role-playing game (ARPG) where players fight monsters and loot items to make their characters more powerful. Players can trade items they've found to other players, and as a result the game has a rich and competitive economy.

Timeless Jewels are a class of item which has a unique quirk: it does not reveal what benefits it grants until equipped by the player. These effects interact with the Passive Skill Tree: a graph of thousands of nodes which players unlock as they progress their character.

There are hundreds of thousands of unique jewels, and each can be placed in any of 21 sockets on the Passive Tree. Because of these factors, it can be very difficult to appraise the worth of such an item.

Members of the Path of Exile community have captured the game's look-up tables and de-obfuscated these items. Using fan-made tools, players can search for desirable jewels based on the effects they want. However, there was no utility for the reverse: using a jewel's unique seed to quickly check for desirable effects.

Timeless Historian is a growing database of characters and the jewels they have equipped. By Copy + Pasting from in-game or by logging into the official game API, players can scan their jewels to see if someone has deemed one worth using, and why.

An archived character and their jewel drawing.

Technology

Timeless Historian is a web application built with Svelte, Flask and PostgreSQL.

A cron script collects characters from the ladder and processes them if they have a Timeless Jewel equipped. Path of Exile does not have a dedicated public API for character data. Instead, endpoints that serve the official game site are used.

Once the (type, seed, general) tuple has been parsed, TH builds a json object that the front-end can use to draw a graphic of the jewel later. The 'jewel drawing' is a section of the Passive Skill Tree being affected by the jewel.

In order to parse the effects of a jewel, the script needs the binary look-up table and a separate table of all node 'mutations'. For each node on the tree, the script checks the header section of the look-up file using the jewel seed as an offset. This location holds a reference to the mutations table as well as the magnitudes of these effects.

Once processed, the jewel drawing is stored as a JSON object. Queries do not need to do any further work to parse this information, and the data survives future alterations to the Passive Skill Tree.

The front-end supports searching for individual jewels, or bulk search using the game's inventory API. Players can log in using OAuth and search dozens of jewels at once.

The Hall of Many Vertices

The Hall of Many Vertices is a short demo showcasing WebGL rendering using Three.js and GSAP.

This was originally made as part of the interview process for a business based in Ukraine. The objective was to create something based on the promo site for Black Panther: Wakanda Forever, with a deadline of three days.

The 3D scene is made from open source game assets. Most animations in the scene were created using Blender, while GSAP handles camera tweening and UI transitions.

The Hall's entrance.

Technology

The page mimics the promo site's scrolling behavior by moving the camera along a series of paths. To make these paths, NURBs are drawn in Blender. Since Three.js cannot import path data, the NURBs are exported as a list of 3D coordinates in JSON.

As it progresses along each path, camera interpolates its facing direction towards the next point using GSAP.

Three.js does not perform occlusion culling, the process of not rendering objects out of frame. Due to this drawback, the original scene needed to be manually culled from 1.9M triangles down to a more manageable ~400K.