Skip to content
View JROtto5's full-sized avatar
🫠
🫠

Block or report JROtto5

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JROtto5/README.md

JROtto5: product engineer and game developer. AI dev tooling, data platforms, real-time netcode, Linux.

I'm a product engineer who builds production systems end to end: AI dev tooling, data platforms on Postgres and AWS, and the real-time apps on top.
By day I build a production compliance platform and the AI tooling around it. On nights and weekends I'm building a browser FPS with its own authoritative multiplayer server.

crucible v0.3 crucible, the open-source AI PR reviewer I built: every finding has to survive an attempt to disprove it before anyone reads it
3,030 PRs · 88% merged The past year on GitHub: 6.2k commits across 41 repos, 242 active days
94k lines · 1,190+ commits Dragon Front: a browser FPS I built from an empty folder, solo, with AI pair-programming under my review
~5k-line authoritative server My own Node netcode: binary delta snapshots, client prediction, lag compensation, bot backfill
4 live apps you can open now DotSlayer, NEON SPIN, The Edge Board, Draft War Room, plus my own Arch Linux distro

crucible Activity How I work Dragon Front Production engineering Products Games & creative code Linux

crucible Dragon Front Dot Universe The Edge Board Draft War Room Sith OS NEON SPIN

crucible

crucible is the AI code reviewer I built and maintain. Every open-source PR I send goes through it first; it never posts, I submit. MIT, Python standard library only.

Version What it added
v0.1 The core loop: a reviewer on a different model from the one that wrote the change, a verification pass that tries to disprove every finding, verdicts pinned to one commit, and an answer (fixed, refuted, deferred) for every finding
v0.2 Runs the project's own build and tests, learns its house style and maintainer rules from merged PRs, executes code to verify a finding, and checks PR readiness (linked issue, tests, description)
v0.3 A labelled eval of planted bugs that every change is scored against, tiered verification (a cheap model first, the strong one on what survives: same recall, 24% cheaper), and incremental re-review of only what changed
next One-command install, cheaper routing for docs-only rounds, a warning when another open PR edits the same lines, and Python execution in the verifier

A recent catch. It flagged a signal race in Valve's gamescope reaper. The same window was in another contributor's fix for that bug; they reproduced it under gdb, fixed it and credited me (Reported-by).

pipx install git+https://github.com/JROtto5/crucible

Selected open-source contributions

  • three-mesh-bvh: packed WebGPU vertex attributes tightly into one u32 buffer and added getVertex/getVertexPosition shader functions; a second UV set used to read zeros from padding, and a position + two UV sets now takes 28 bytes per vertex instead of 48. The maintainer is porting his path tracer to it. #969, merged.
  • colyseus: stopped the matchmaker from telling clients a room was "already full" whenever a seat reservation failed for another reason (a throwing remote room, an IPC timeout on a healthy process, a local throw); the real cause now reaches the client, 3 new MatchMaker tests fail without the fix. #1001, merged and released in @colyseus/core 0.18.28.
  • three-mesh-bvh: made a failed parallel BVH build reject instead of hanging, which also left the worker stuck for every later build; reworked to the maintainer's single-handler design in review, worker change down to ~25 lines, new WorkerPool tests (2 of 3 fail without the fix). #963, merged.
  • three-mesh-bvh: made WebGPU geometry packing copy vertex attributes straight from their backing arrays instead of through per-vertex accessors: 2.1x faster for positions and up to 7.2x with normals and UVs on 12.6M vertices, byte-identical output. #958, merged.
  • Lutris: repaired broken Pango markup that left nine UI strings blank in five translations (Greek, French, Brazilian Portuguese, both Chinese), plus a test that parses every translated markup string. #7006, merged.
  • Lutris: stopped a missing Wine version from silently upgrading a game's plain Wine prefix to Proton, a one-way conversion; reworked to the maintainer's narrower rule in review, 7 tests (3 fail without the fix). #7004, merged.
  • three-mesh-bvh: fixed WebGPU camera rays losing precision far from the world origin (up to 42 px off at 1080p). #956, merged.
  • MangoHud: added cpu_max_core_load, so a single-thread bottleneck shows up next to the averaged CPU load. #2198, merged.
  • colyseus/schema: found an ArraySchema.sort() client desync with a differential fuzzer; co-author of the fix in 5.0.44, with my regression tests in the release (#250). Also reported a splice() desync, fixed in 5.0.45 (#252).

Activity

Contribution telemetry, last 12 months

Contributions per month Activity breakdown: commits, PRs, issues, reviews

Many of these PRs are opened by coding agents I orchestrate. Every one gets AI review and a human approval before it merges. Generated from the GitHub API by tools/gen_stats.py.


How I'd work with your team

  • I write it down first. Dragon Front has 35 design docs. At work, changes to customer-facing paths start with a short design note and a golden-output diff.
  • I test like a player. Headless bots play my game and screenshot every match; I'd bring that habit to your QA and perf budgets.
  • I measure before I automate. Shadow mode, precision targets, then rollout.
  • I work across the whole stack: rendering and netcode, Postgres and AWS, kernel and driver debugging.
  • I use AI tools with guardrails, and I can tell you exactly where they help and where they don't.

Dragon Front

Dragon Front trailer: Forbidden Court, Neon Kowloon, Great Wall Pass

A fast, boots-on-the-ground military FPS that runs in the browser. Jade Dragons vs Crimson Tigers, 2049. It has Steamworks integration, is in pre-release, and its source stays private until launch. There's no engine: Three.js plus plain ES modules, so I own the render loop and the network loop.

📈 Scale 1,190+ commits · 324 modules · 94k lines of JS · 150 test scripts · 35 design docs (art bible, balance, campaign scripts, store page, release checklist)
🌐 Netcode My own authoritative Node match server (~5k lines): binary delta-snapshot codec, client prediction, lag compensation, lobby host hand-off, server browser, parties, spectator/caster mode, bot backfill, and a packaged dedicated server
🎮 Content 10-mission campaign with cutscenes · 20 maps · 52 weapons · Domination, Hardpoint, S&D, CTF, Gun Game, Infected, Gunfight 2v2 · Ranked seasons · Dynasty Defense co-op horde · Ground War: 20v20 with bot backfill, five flags, vehicles
🤖 AI Squad-level bot director (attack/defend orders) and per-bot LOD (frustum + distance tiers) for 40-combatant Ground War matches
✨ Rendering Custom post pipeline (GTAO, bloom, SMAA, color grade), procedural PBR textures, HDRI lighting, per-map weather
🕹️ Platforms Gamepad with aim assist and rumble · Steamworks, Workshop and Steam Input · Steam Deck mode · touch controls for phones
🧪 Quality Headless bots that play matches and screenshot them · map validators · perf harnesses · a deterministic trailer pipeline (the clip above is its output)
📜 Licensing Every third-party asset is logged with its source and license, with CC0/CC BY credits in game

Dragon Front key art Neon Kowloon in a thunderstorm Ground War on Yangtze Front

→ Read the engineering case study: the netcode, the bot AI, rendering budgets and automated playtesting. I'm happy to demo it live.


Production engineering

Day job. I build and run a production compliance platform end to end: Postgres (Supabase) with the business logic in the database, scheduled and queue-driven AWS Lambda jobs in Python, TypeScript/React clients, and the AI development tooling the team uses to ship it.

Proprietary work, so no details here. I'm glad to talk about it in person.


Products

A sports forecasting system for the NFL and college football with a public, self-grading track record. It's an installable PWA.

  • ~30 measured signals (weather, role-weighted injuries, line movement, rest, live in-game pace), combined by evidence weight. When signals conflict, the board shows the conflict instead of hiding it.
  • Its own model: least-squares power ratings blended with a matchup model and adjusted for injuries.
  • Audited record: every prediction is frozen when published and graded against the final score and closing line, with a per-signal self-audit.
  • It abstains when no signal clears the threshold, instead of ranking the least-bad option.

JS · Vercel serverless + cron grading · Vercel Blob · web push · MIT

The Edge Board: model power ratings

🔬 crucible: my open-source AI PR reviewer (details above).

🏈 Draft War Room: a fantasy-football decision tool. It runs Monte Carlo survival and title odds, builds a start/sit consensus across three providers, and has a waiver radar and trade sims. It's an MIT-licensed, zero-build PWA that auto-deploys to Vercel.

✂️ Clipper: paste a video link and get vertical, captioned highlight Shorts. Claude picks the moments from the transcript, FFmpeg renders them, and the YouTube Data API uploads them as drafts. Re-runs are idempotent and cached.


Games & creative code

Two browser games on one account: DotSlayer, a 150-floor roguelike shooter with 6 classes, a boss every 10 floors, challenge modes and global leaderboards, and Dot Clicker, an idle empire with prestige. Progress in each one boosts the other.

DotSlayer gameplay

Next.js 14 · Phaser 3 · Supabase auth, cloud saves, leaderboards

An idle/incremental game in one self-contained HTML file with no build step: up to 7 reels, 40 upgrades, 39 achievements, VIP perks and an Ascension prestige layer.

🎬 LUMEN: a short film rendered from code

A 4-minute animated short where every frame is drawn in Python (pycairo + numpy, 1080p/24fps). It uses a timeline-driven scene system, synthesized voices, and a mixed score and SFX. A tiny robot lighthouse keeper gives up its own heart to light the lamp.

LUMEN lighthouse in a storm LUMEN still

Linux

SITH OS: my own Arch Linux distribution

It's built with archiso: an installable live ISO with a Calamares graphical installer, ~240 curated packages and 11 custom commands, themed end to end from bootloader to Plymouth, SDDM, KDE Plasma and the Kitty terminal.

I daily-drive Arch on a 4-monitor RTX 5070 Ti workstation, write my own Plasma 6 widgets and KWin effect patches, and debug the kernel/driver/compositor stack myself. One example: tracing a multi-monitor lag problem to an nvidia-open driver regression that dropped the GPU's PCIe link to Gen 1.


Open to product engineering, platform and game dev roles. I'm happy to demo Dragon Front or walk through any architecture above.

Pinned Loading

  1. sith-os sith-os Public

    🐧 SITH OS: my own Arch Linux distro. archiso + Calamares installer, ~240 curated packages, 11 custom commands, themed end to end from bootloader to terminal.

    Shell

  2. crucible crucible Public

    Evidence-first AI code reviewer for upstream PRs: deterministic checks, a different-model reviewer, a verification pass that tries to disprove every finding, and verdicts pinned to one commit. Neve…

    Python 1