A rider on a rearing horse on misty high plains while a flying-wing bomber passes overhead.

Software engineer · Space Coast, Florida

It’s a bad time to be a hard problem.

See the work

Latest weather observation at Melbourne airport: KMLB 121853Z 28008KT 10SM CLR 24/16 A2981

Melbourne, Florida, at 28.10°N 80.64°W

II / The frontierGround · Air · Orbit

The frontier isn’t finished.

  1. The Wright Flyer a few feet above the sand on its first flight, with Wilbur Wright standing to the right.
    01 · GroundKill Devil Hills, 1903. Twelve seconds, 120 feet.
  2. A black SR-71 Blackbird banking away above snow-covered mountains.
    02 · AirSR-71A, NASA 844, over the Sierra Nevada. 1997.
  3. The Earth, half lit, rising over the grey horizon of the Moon into a black sky.
    03 · OrbitEarthrise, from Apollo 8. December 24, 1968.
I’ve always wanted to know how things work, and what I could build with them.

Usually it starts with a question.

01What is this?

The first 224 bytes of a replay file. Two strings show through: a branch name and a map path.

02What does each byte mean?

The header, field by field. Select one to find its bytes.

03What can I build with it?

Everything after the header, decoded into the whole match.

Every player’s path through the first round, drawn as thin lines. The attackers’ red paths enter from the right and the defenders’ light paths from the lower left, and they tangle around the capture point.
  • Attackers
  • Defenders
  • Capture point
  • A kill
The first round of that same match, rebuilt from the replay: twelve players over five minutes from the first spawn, two samples a second for this page. Names are left out.

All real data, from one match. The decoding benchmark further down uses the same one.

III / Work2 paid · 3 of my own

Selected work

01 · Day job

Gogo Business Aviation

Billing platform and internal tools, full-stack

Role
Full Stack Developer
Since
Dec 2023, at Satcom Direct until Gogo bought it
Stack
Angular · ASP.NET Core · C# · SQL Server · Azure Functions
Where
Melbourne, Florida, hybrid
I’m building an internal billing platform: customer management, invoicing, collections, accounts payable and the product catalog. Most of that used to be done by hand.
  • Designed the SQL Server schemas and stored procedures for invoicing and collections, put ASP.NET Core APIs over them, and built the Angular UI on top.
  • Built the Azure Functions that run the scheduled and event-driven billing jobs, with Container Instances, Application Insights and Key Vault around them.
  • Shipped Mission Control features for customer and service data, replacing parts of the old Ops Center tooling.
  • Wrote architecture and onboarding docs for systems that didn’t have any.
70% less network traffic from the settings module, after reworking its data fetching and state management.
A simplified view of the billing platform and its Azure services.

02 · Founder

Wingwise

Ground school from private pilot to multi-engine instructor

Most ground school is a video course and a question bank. Wingwise combines interactive flight labs with your airplane’s handbook, checkride practice and the FAA’s own pages.
62
interactive labs built on the physics they teach
7,928
citations, each opening the FAA page it quotes
7
courses, private pilot to multi-engine instructor

Founder and architect · Private beta

Read the case study
The Turns and load factor lab: the airplane seen from behind banks steeper, the lift arrow tilts and grows, and the load factor curve climbs past 2 G toward the normal-category limit.

LabsBank the airplane and the lift tilts, the load factor climbs and the stall speed rises with it.

03 · Independent

Rivals Vision

Marvel Rivals replays, decoded and rebuilt into a match you can scrub, measure and review

The game saves matches as Unreal network-demo files, with no spec for the parts that matter. Rivals Vision takes them apart and rebuilds the whole match over time. Replay Studio, its viewer, plays it back in 2D and 3D. The breakdown above is its first step.
~360×
faster than the reference decoder, with identical output
647/648
deaths matching the official scoreboard, on held-out players
121.6M
sight lines traced across 68 matches

Creator · Rust, TypeScript, three.js

Read the case study
The 3D replay viewer orbiting above a corridor: twelve heroes with team outlines, health bars and ability effects, moving through a lit model of the map, seconds before the first kill.

3DThe match rebuilt in 3D: every hero, ability and health bar where the replay puts it, in a lit model of the map.

Replay Studio, on the same match as the breakdown above. One player name is blurred.

04 · Contract

Frontier, 1899

A Minecraft roleplay server rebuilt around connected game systems

Every system talks to the others. Hold up a store and the town’s wanted level rises, the sheriff’s office sends a posse, prices go up until someone is brought in, and the shopkeeper you talk to next has heard about it. All of it runs on the server’s 50 ms tick, with game state on one thread and every database and network call off it.
1.2–1.5 s
from your last word to the townsperson’s first
5 min
database write-failure limit before ledger activity stops
~45 s
down per deploy, which rolls itself back if unhealthy

Lead engineer, contract · Java 25, Paper, MariaDB, Node

Read the case study

Select a systemEach line is a real call from one system’s code into another’s.

Built onCharactersTowns and zonesContent in YAMLThreads and storage

05 · Independent

Entity tracking and render system

A multithreaded C++ overlay: live entity state from a running process, projected and drawn at frame rate

Two loops run at their own speeds: one reads the world, one draws it. The hard part is keeping either from waiting on the other, without ever drawing a frame that’s half old and half new.
  1. Snapshot swap. The reader builds each snapshot in its own buffer and swaps it in under a spin lock.
  2. Event-driven rendering. The renderer sleeps on a Windows event until a new snapshot lands.
  3. Projection. GLM rebuilds the view-projection matrix every frame.

Dec 2024 to Jan 2025 · C++, Windows API, GLM

Read the case study

A simulation of the problem, not the program’s output: one thread rewrites a row of entities while another draws them.

Try both. With one shared buffer, some frames catch the writer halfway through and the line bends.

Smaller things

  • Statistical anti-cheat Scores players on a curve with Z-scores instead of tripping a fixed threshold, so sensitivity becomes a dial. Source on GitHub ↗ Write-up ↗
  • Civ VI save reader Reads Civilization VI saves without the game: standings, every empire, and a territory map from the compressed plot table. Python · private
  • Inventory and orders Tracks stock by size and variant, and follows orders through fulfillment. Angular · Node · SQL
  • Fantasy football analyzer Values every roster in a Sleeper league and judges trades. Built twice, React and Node then Angular, to see how different they really are. 2023–2024 · private

IV / AboutMelbourne, Florida

Bryce Evans, smiling, in a navy polo shirt against a light grey backdrop.
Bryce Evans, Melbourne, Florida.

I’m Bryce, a software engineer on Florida’s Space Coast.

Since December 2023 I’ve written software for business aviation, first at Satcom Direct and then at Gogo after it bought Satcom. Mostly internal systems: a billing platform for the finance side, and the portals our support people and customers use.
Outside work I pick one complicated thing and stay with it longer than is probably reasonable. Lately that’s a game’s replay format and a better way to learn to fly.
I’m early in my career, and the list of things I want to understand keeps getting longer. That’s the part I like.
LogbookWork, and the things worth writing down
DateEntryRemarks
Oct 2026Contract: rebuilt a frontier roleplay serverVoiced townsfolk, the law, a ledger economy, trains.
Oct 2026Took Wingwise from prototype to platformSeven courses, PPL to MEI.
Sep 2026Started on the replay formatBecame Rivals Vision.
Jan 2025Multithreaded entity tracking and render systemC++. A spin-locked snapshot swap and an event-driven render loop.
Apr 2024Full Stack Developer, Satcom Direct / GogoBilling platform and Mission Control, first at Satcom Direct.
Feb 2024Wrote “Dissecting statistical anti-cheat”Medium.
Dec 2023Jr Full Stack Developer, Satcom DirectSD Pro 2.0, the flight operations portal: user settings, mission forecasts, outages, service alerts. Ops Center. The SQL behind all of it.
2020–2023IT Support Specialist, Computer Support TechnicianWrote an Active Directory tool for new-hire setup that the whole team ended up using. Python and PowerShell for the rest.

Tools

Languages
C#, TypeScript and SQL most days. C++, C, Java, Python, JavaScript.
Frontend
Angular, RxJS, React
Backend
.NET, ASP.NET Core, Node.js, Entity Framework, SQL Server, T-SQL
Cloud
Azure Functions, Key Vault, Application Insights, Container Instances
Tooling
Git, PowerShell, Windows API, Agile and Scrum
On my own
Rust, three.js, Next.js, Postgres, Java and Paper, the Claude API

V / ContactEmail is easiest

Say hello.

If you’re working on something hard, I’d like to hear about it.

[email protected]