ALAN BAGEL

I write code that runs fast and breaks less.

East Coast student. I do competitive programming, frontend work, and game dev. Most of my time goes toward shaving milliseconds off solutions, squeezing ideas into strange esolangs, or watching cellular automata eat themselves. I also play chess, play piano, and eat a concerning number of bagels.

Open to frontend and systems work.

Currently building tiscord.

*

tiscord

Rust / Ratatui / Crossterm

Discord in your terminal. Connects to the gateway over WebSocket, renders everything with Ratatui. Browse servers, send messages, react, search, see typing indicators. Images show inline if your terminal does Kitty or Sixel.

  • * 12k+ lines of Rust
  • * real-time gateway with heartbeat and resume
  • * encrypted token storage via OS keyring
  • * inline images via Kitty / Sixel protocols
View project ↗
tiscord TUI showing a Discord server with channels, messages, and inline images
*

Microcosm

Python / Pygame / OpenGL

2D roguelike where runs escalate through denser waves and tighter resource windows. I spent most of my time on two things: making combat feel responsive (clear telegraphs, tight hit feedback) and keeping frame pacing stable when there are 50+ entities on screen.

  • * enemy waves, bosses, and upgrade runs built from scratch
  • * combat tuned around clear telegraphs and sharp hit feedback
  • * stable frame pacing with 50+ active entities on screen
  • * custom AI and balance work for late-run difficulty scaling
View project ↗
Microcosm gameplay screenshot showing the player surrounded by enemy waves, projectiles, and combat effects
*

ACSL Academy

SvelteKit / Tailwind / Supabase

ACSL competition prep platform I built to teach students at my school. The existing study resources were scattered across random PDFs and forum posts, and none of them tracked what you'd actually learned. Used by 10+ students for contest prep.

  • * 30+ lessons across all four contest categories
  • * timed practice sets that mirror real contest format
  • * per-account progress tracking with Supabase auth
  • * mixed quiz mode pulling from every topic at random
View project ↗
ACSL Academy screenshot showing lesson cards and quiz interface
>

algo

Scala 3 / C++17

Write Python-like syntax, get C++17 out. I built this because writing C++ under contest pressure is mostly fighting syntax. The compiler only emits the stdlib functions your code actually uses, so the output is short enough to submit directly.

  • * Python-like syntax that compiles down to contest-ready C++17
  • * output only includes stdlib helpers your program actually uses
  • * designed to cut syntax friction when speed matters most
  • * compiler/runtime work split between Scala 3 and C++17
View project ↗
algo screenshot showing the language site and compiler interface
$

Sauna

Svelte 5 / TypeScript / Tailwind

Frontend dev on a browser-based game library. Play PC games without downloading anything. I built the library UI and a custom desktop window manager, then migrated the codebase from vanilla JS to Svelte 5 to TypeScript.

  • * built the game-library UI and custom desktop window manager
  • * helped ship browser-based PC gaming without installs
  • * migrated a vanilla JS codebase to Svelte 5 and TypeScript
  • * focused on making a dense app-like interface feel coherent
Visit ↗
Sauna screenshot showing the browser-based game library interface and windowed app layout
$

Unbound Labs

EJS / Express.js / Frontend

Frontend dev for Uncensored, Unbound Labs' web product with a game library, chat room, proxy, and AI tools. I worked on the product interface and frontend UX, not the browser engine itself.

  • * frontend work on the Uncensored product surface
  • * helped ship UI for the game hub, chat room, proxy, and AI tools
  • * focused on making a dense multi-tool web app feel coherent
  • * contributed to the user-facing experience, not the browser internals
Visit ↗
Unbound Labs browser screenshot showing the product interface, navigation, and browsing surface