SOFTWARE ENGINEER · SYSTEMS EXPLORER

BUILDING SYSTEMSTHAT THINK.

PORTFOLIO KERNEL04PROJECTS IN ORBIT

Four repositories. Four different problem spaces. One obsession: making complicated systems feel direct.

01

Reverse engineering · Game state

Colonist Protocol Watcher

JavaScript

Turn a live binary protocol into explainable game state.

My WebExtension contribution in a fork of Bryan Collazo’s Catanatron observes Colonist WebSocket traffic and reconstructs a privacy-first, uncertainty-aware card tracker.

THE FRICTION

Binary frames, hidden information, and partial observations make it easy for a tracker to sound more certain than the evidence allows.

THE SYSTEM

Page-start WebSocket instrumentation, an in-browser MessagePack decoder, raw-first capture, event inference, and a local dashboard that distinguishes exact knowledge from conservative estimates.

THE SIGNAL

Makes uncertain game state auditable: decoded evidence survives, unknown cards remain unknown, and risk is explained instead of guessed.

WebExtensionWebSocketsMessagePackLocal-first
02

AI · Developer education

LeetMentor

TypeScript

Turn practice history into the next right problem.

A local-first study operating system that combines confidence-based mastery, spaced review, topic coverage, and hands-on complexity practice.

THE FRICTION

Most coding assistants collapse the learning loop by revealing the solution. Useful mentorship must improve the next decision without taking it away.

THE SYSTEM

A Next.js and TypeScript workspace with deterministic review scheduling, explainable weak-topic queues, public LeetCode activity import, and optional Gemini-assisted grading.

THE SIGNAL

Keeps the scheduling core deterministic and inspectable while using AI to improve ordering and feedback—not replace the mastery model.

Next.jsTypeScriptZustandGemini
03

Desktop · ML tooling

DataSet Pro

JavaScript

Build object-detection datasets without fighting the tooling.

An Electron desktop annotation workspace for drawing, labeling, and editing bounding boxes while keeping image data and project metadata on the local filesystem.

THE FRICTION

Dataset preparation becomes slow and error-prone when annotation controls and export formats hide the geometry users are actually editing.

THE SYSTEM

Direct-manipulation boxes, reusable color-coded classes, keyboard workflows, and bidirectional conversion between normalized YOLO coordinates and pixel-based Pascal VOC bounds.

THE SIGNAL

Moves an image folder toward training-ready labels through a transparent project format that remains interoperable with downstream ML tooling.

ElectronJavaScriptYOLO / VOCLocal filesystem
04

Operations · Safety tooling

Discordify

JavaScript

Preview a destructive operation before it becomes one.

A local-first control center for finding and removing a user’s own Discord history across servers and DMs with filters, throttling, retries, and observable jobs.

THE FRICTION

Bulk deletion is irreversible, rate-limited, and easy to target incorrectly. A safe interface has to make scope and consequences visible first.

THE SYSTEM

A dependency-free Node server and vanilla interface that compose text, regex, link, attachment, date, and exact-ID filters into previewable, stoppable jobs.

THE SIGNAL

Turns risky cleanup into an observable pipeline with preview counts, progress metrics, bounded logs, and explicit stop controls.

Node.jsDiscord RESTJob controlLocal-first
THE THROUGHLINE

CURIOSITY,
SHIPPED.

I like projects that force different kinds of thinking: teaching without taking over, simulating worlds with incomplete information, making data less intimidating, and turning utilities into community experiences.

The stack changes. The standard does not: understand the system, make the interaction legible, and leave behind something real enough to test.

Explore the engineering log
CURRENT SIGNALAVAILABLE

for ambitious software, AI, and systems problems.