About
I'm Pradhumn Gupta. I'm in my final year of computer science at NIT Bhopal, and I build the whole stack of an AI product. The retrieval, the systems underneath it, and the interface on top.
Right now that means an AI food discovery platform, where I work on the retrieval and ranking, the backend, the web app, the iOS app, and the servers it all runs on. It is not public yet, so I cannot say much about it, which is frustrating, because it is the hardest thing I've built. Most of what I write here comes out of it.
Before that I made Ruma, an AI assistant for macOS that runs entirely on your own machine. No cloud, nothing leaves the laptop. Five beta releases, 31 stars, and then I stopped maintaining it. I got what I wanted out of it and something else got interesting.
That something else is beamdesk. It streams your desktop to any browser at 60fps over QUIC. No relay server, no VPS, no account. 7.4 KB a frame instead of 267.
I also build things in WebGL that have no particular reason to exist. There are 14 of them.
How I got here
- 2026
- beamdesk, and an AI food discovery platform I work on every day.
- 2025
- Ruma. First place at CIIS, top 5 nationally at Smart India Hackathon, second at Innovate.
- 2024
- GenzVibes, my first thing on a real domain.
- 2023
- Started computer science at NIT Bhopal.
- 2020
- First commits. Python, mostly badly.
Competitions
Smart India Hackathon
Top 5 nationally. Oct to Dec 2025, Jaipur.
CIIS 2025, first place
Cybercrime Investigation and Intelligence Summit. Nov 2025, Bhopal.
Innovate 2025, second place
NIT Bhopal. Feb 2025.
What I work with
AI: retrieval and ranking, vector search with Qdrant, embeddings, agentic systems, and on-device inference with MLX and Core ML.
Systems and backend: Python and FastAPI, real-time video over QUIC, and the Linux boxes it all runs on.
Interface: React and Next.js, Swift and SwiftUI for macOS and iOS, and Three.js and GLSL when something should look impossible.
This site
I write about what I learn building this stuff. The trade-offs, the things that broke, and the decisions that never make it into tutorials. I try to only publish when I actually have something to say.