A DNS server built from scratch against RFC 1035, with no third-party DNS libraries. Supports recursive resolution, persistent caching, BIND zone file parsing, and transports including TLS 1.3+ and DNS-over-HTTP/2. Can double as a local ad-blocker through zone-level query interception.
Projects
A web app that recommends personalized activities based on your interests. Built the Django backend and semantic search layer, using GPT-4o-mini structured outputs with cosine similarity ranking over stored embeddings. Live at sas-pathfinder.org.
A pipeline that automatically groups large collections of unstructured text by meaning, without manual labeling. Uses SentenceTransformer embeddings, autotuned PCA and UMAP for dimensionality reduction, and hierarchical HDBSCAN clustering with recursive sub-clustering for finer granularity.
A polyfill for the CSS grid-lanes specification, bringing the layout primitive to browsers without native support. Uses a tolerance-based placement algorithm for layout stability, with debounced ResizeObserver and MutationObserver hooks.
A fully playable multiplayer Scrabble game where any seat can be filled by a GPT-powered opponent. Game state persists in Redis, with a terminal client rendering the board in ASCII over WebSockets.
A social platform with follows, profiles, and real-time chat. Built with Django Channels and Redis for WebSockets, Auth0 for authentication, and soft-delete auditing to preserve a full history of user actions. Deployed to Fly.io.
A Lisp dialect and interpreter written in Python, with a module system, scoped environments, and a standard library for arrays and strings. Built off of Peter Norvig's lispy.
A register-based virtual machine and custom assembly language, written in C. Executes programs across named registers with a compiler that maps assembly source to opcodes, label resolution for jumps, and a debug trace mode.
A rich text editor in vanilla JavaScript that replaces the deprecated execCommand API with direct DOM manipulation. Implements recursive style application, ancestor-aware selection logic, and a proof-of-concept virtual DOM layer.