This post is a consolidation of everything I built during my learning years, the POCs, the side projects, the “let me try this thing” experiments. They’re rough around the edges, but each one taught me something.
2025 #
GoSeek #
Go, Gemini, VectorDB, RAG - 2025
An SSH app that searches the web and delivers AI-powered answers straight to the terminal. Like a self-contained Perplexity-like pipeline, accessible over SSH.
The data flow: user query → Google search → concurrent web scraping → content chunking → embedding generation → semantic search over a vector store → LLM prompt population → streamed answer. Every step hand-rolled in Go.
The interesting parts were the concurrency design (scraping multiple pages in parallel without blowing up on rate limits) and the retrieval pipeline. Also, chunking web content meaningfully so the LLM gets useful context rather than raw HTML noise.
Planned to do a bit more with this, though fell off.

2024 #
Microservices #
Go, gRPC, RabbitMQ, GraphQL - October 2024
A monorepo of microservices for an e-commerce webapp. The project where I first implemented distributed system design on my own. Three independent services (users, products, orders), each with their own Postgres instance, communicating via gRPC for synchronous calls and RabbitMQ for async events. A GraphQL API gateway aggregates everything for the client.
This is where I internalized event-driven design: who owns what event, who listens, and why you can’t just call everything directly.

Socratic Code #
Go, Svelte, JavaScript - October 2024
A Chrome extension that helps you solve LeetCode problems on your own, using the Socratic method i.e., it asks you questions instead of giving you answers. Built for Google’s GenAI Exchange Hackathon 2024.
The interesting technical challenge was getting the Monaco editor’s input from inside a Chrome extension’s sandboxed content script. The window object isn’t shared between the extension world and the page world, so getting the code the user had typed required careful DOM querying rather than the obvious window.monaco approach.
Also set up CI for both the extension build (pnpm → GitHub Releases) and the backend Docker image (ghcr registry).

Raytracer #
C++ - August 2024
Followed Ray Tracing in One Weekend to build a raytracer from scratch in C++. Just curiosity and wanted a low-level feel for how graphics actually work before it gets abstracted away. Outputs PPM images, converted to PNG via ImageMagick.
No clever tricks here. Just math, pointers, and respect for computer graphics.

Pacman TUI #
Go, Bubbletea - July 2024
A single-level Pacman game that runs in the terminal, built with the Charmbracelet Bubbletea library. Also runs as an SSH server, you can ssh directly into the game.
Built mainly to explore the Elm-like architecture that Bubbletea enforces: pure update functions, immutable state, message-passing. A surprisingly clean mental model for TUI apps.

Balance #
Go, HTMX, SSE - June 2024
A website that compliments and insults you at the same time, in real-time, across all connected users. Built with HTMX and Server-Sent Events for live updates - no WebSockets, no JS framework.
A dumb idea that made me learn some stuff alongside executing it.

Huffbit #
Go - April 2024
A command-line Huffman encoder/decoder written in Go. Takes a file, builds a Huffman tree from character frequencies, encodes it bit-by-bit, and writes the compressed output. Decompression is the reverse.
Classic algorithm, but implementing it yourself (especially the bit-level I/O) makes you appreciate how much the standard library handles for you in daily work.
Achieved ~62% theoretical compression on the test string “huffbit\n”.
2024 (Early) / 2023 #
Okaychat #
JavaScript, React, Socket.io, MongoDB - January 2024
A real-time public messaging webapp with a few quirks: pressing Enter on an empty message sends “Ok” automatically, and there’s a “Generate with AI” button that uses Gemini to generate a message based on the last five in the conversation.
Backend in Node/Express with Socket.io, frontend in React with Redux. First project where I built a full authentication system (PassportJS) and wired real-time messaging end-to-end.

Memory Game #
React - November 2023
A responsive single-page memory card game built in React. The point was learning useState, useEffect, and component composition properly and realizing I hate JavaScript.

Todo List #
Vanilla JavaScript, Webpack - October 2023
A todo app in vanilla JS with projects, tasks, local storage persistence, theme switcher. Built while learning OOP patterns in JavaScript and Webpack.
The classic “every developer has built this” project. But doing it without a framework was fun.
