Technical insights on software engineering, AI, cloud computing, and more.
My first instinct was to use a boolean lookup array to mark which numbers are present.checker = [False] * (n + 1)For every number x in the input:checker[x] = TrueFinally, scan from 1 to n and return the only index whose...
A Vapi + FastAPI + Qdrant health assistant for rural India. Most of the design work was prompt engineering, and the rest was a rotating key pool that lets a fistful of free-tier LLM tokens carry the load.
A GregMAT-style study card for every prompt in ETS's Analytical Writing Issue Pool. One Python script parses the pool PDF, classifies each prompt into 19 hand-authored concept templates, and bakes 2.2 MB of essay scaffolds into index.html.
A three-agent test harness that watches a Git repo, spins up a fresh Docker container per marked file, and lets an LLM simulate bad conditions like low storage, no network, and OOM.
A VS Code extension for Google's Antigravity IDE that auto-accepts every AI agent step. Settings injection, command polling, focus juggling, event reactions, and a CDP webview walker. Plus a blocklist for rm -rf.
Blitz was a Swift+iOS mobile-dev tool. I retargeted it: Windows desktop controller in Electron + TypeScript, Android companion in Kotlin/Compose, and a full swap of the ADB/screenshot/Play Store pipeline.
Decision tree, k-means, Naive Bayes, neural network. Each one turned in twice, once in Python with sklearn and once in Java with Weka. The syllabus taught the model but not the tooling.
A pill that lives at the top edge of your monitor, expands into a searchable clipboard shelf, and holds up to 50 items in memory. Built in PySide6, shipped as a signed-ish 47 MB exe.
A parallel writer subagent per post, a single fact-checker subagent per batch, and a stop-hook loop that would not let me pause. What the fact-checker caught. What still slipped through. And why the fact-checker is the reason I would do this again.
A single-page React app that bundles a hand-scraped database of hackathon winners from 1999 to 2026. Zero backend. Every visitor downloads the whole dataset and filters locally. Also a candid diary of what the scraper couldn't recover.
24 hours to build a support-ticket triage agent. The interesting parts weren't the retrieval. They were the fast-path rules in front of it and the regex grounding verifier behind it.
A companion Streamlit food-delivery app from the same July 2022 DBMS mini-project week. Same MongoDB Atlas cluster, plus a PlanetScale token in main.py and admin.py. Hardcoded admin PIN in the panel. f-string SQL every query. The full pattern.
A 111-line Python CLI from 2022 that compared every pair of PDF pages by extracted text to find duplicates. Shipped as a 2.86 MB Windows .exe because friends kept asking me for a build.
Both live on my GitHub as a monument to how many 'I'll come back to this' folders never got a second commit. One is eight OpenCV mouse-callback scripts from October 2022, the other is four CSES Introductory Problems from June 2025.
About 90 lines of Python, one Procfile, a Selenium instance that stops working every time LeetCode changes a Tailwind class, and a MongoDB Atlas connection string I committed in plain text. All of it educational.
A 110-line Selenium script that logs into the Cyberoam captive portal at 172.17.0.1:2280. Also a public repo where I committed my roll number as my password. Both are educational.
Generate the foreground and background separately, use Segment Anything to cut out the subject, and pick the sharpest mask by Laplacian variance. A one-commit pipeline of a couple thousand lines.
A 265-line Streamlit food-ordering demo. Users lived in MongoDB Atlas, orders lived in MySQL. Both connection strings were plaintext in main.py, in a public repo, since 2022. Also f-string SQL, because it was a lab.
A no-signup Secret Santa app scaffolded from Bolt.new, then extended with a constraint-satisfying derangement solver, a Selenium Amazon Best Sellers scraper, an n8n pipeline that auto-posts to Facebook, and three monetization rails.
Two MongoDB Atlas connection strings and a PlanetScale password turned up while I was writing retrospective posts on old college repos. A wider sweep added a fourth public Atlas cluster and a pile of finds in private repos I first mis-framed as public. Corrected.
A Streamlit + MySQL to-do app built in 36 hours in April 2022. Twelve commits, nine numbered Python files, one 9 MB webm recording checked in, and a bug I had to solve because Streamlit reruns everything on every button press.
A 720-step autoscaling environment with hardcoded seeds, curriculum injections on the hard track, and a commit history dominated by stdout-format compliance.
Three 2022 repos: a scratch pad, a clean library that returns the heatMarkerRenderer triples, and a Selenium-driven demo that opens the peak clip in a new tab. What the intensity curve actually looks like decoded.
A memoir about the two earliest repos on my GitHub. A profile README with hostel-era wakatime badges, and a Discord bot for the ev.io skin rotation.
Before the Postgres vault and the HMAC certs, there was a Python library that read .env, sorted providers by free-tier priority, and rotated on 429.
Two projects both named Atomix. One a Python pipeline that turns a biography into a documentary. One a monorepo shell hosting four render apps.
Why I built a Kotlin period tracker with Room + SQLCipher, Android Keystore, and a local-first architecture. Health Connect on the write side, no cloud sync.
How I built Carbonwise, a Next.js carbon agent where an SVG garden reacts to your daily budget. Five questions, Gemini via CipherStack, one honest bundle-audit gap.
Three private repos from the run-up to CMU MS-AIE. Two Slidev decks for a program that starts in August, and a research JSON of graduates who went before me.
A memoir about three single-file Python scripts I wrote in college to kill three specific annoyances. Nobody else was the user. That was the point.
The raw 27-cell Kaggle notebook for the Naamapadam PII fine-tune. What eleven Indian languages of NER data actually gave me.
Six half-built Android apps from late 2022 and early 2023, all in Java. Why I picked the wrong language for the right reason and what an APK teaches you.
Every abandoned portfolio repo I made between June 2024 and August 2025, what each iteration was trying to fix, and what got carried forward into kaushik.cv.
A React dashboard that opens a HANA EarlyWatch report, pulls the checks that actually page an engineer, and lets an agent act on them.
JacHacks Spring 2026: how a graph-memory research agent pivoted mid-hack into a triage tool, and why contraindication is a graph-edge problem.
Twenty-odd repos on my GitHub are dumps, drafts, backups, and half-thoughts. I keep them because the useful bit surfaces two years later.
A Gemma 4 fine-tune that rewrites discharge summaries at Flesch-Kincaid grade 3.8 while holding 94% information preservation. Deployed as a Hugging Face Space.
A memoir about the drift of one-weekend Vite and React repos in early 2026. Some had users. Most did not. Each one taught one specific thing.
A React image-map viewer of K Block at PSG College of Technology, born from the annual fresher orientation panic of finding room GH 305.
Every time I clone-and-rename a project I leave the old repo behind. A tour of the graveyard and what it actually costs me.
Before the multimedia indexer, there were four scratch repos: a KPI dashboard, a Streamlit noise map, a HTML skeleton, and a coursework dump.
A tour of the CP infrastructure I built for myself from 2022 to 2026: a build system, a stats scraper, a notes vault, a Hacker Cup template, a return to CSES.
Three student repos across a year, aimed at deaf accessibility. The technical arc looked clean. What I actually shipped was rougher and more honest.
Four template repos on my GitHub, what each one saves me from re-deciding, and what one of them accidentally taught me about leaking credentials.
Building a multi-fandom tracker in React with Zustand: why one unified media table beat separate collections, and where the model breaks for multi-user.
A tour of two dozen private repos I opened and mostly abandoned across eighteen months. What the shape of the arc says about how I actually work.
A pass through my PSG Tech coursework repos from 2022 to 2024. Which classes turned into real projects, which stayed on the shelf, which teachers I owe.
How I built Yokoso, an AI-driven demo generator that runs real code in the browser, exposes 31 tools over MCP, and now lives inside Atomix as a page.
Four days of an autonomous adversarial ship-loop against my own portfolio, what shipped, what silently broke, and what a self-correcting loop can't do.
How kaushik.cv renders MDX posts, generates per-post OG images, and ships RSS, Atom, JSON Feed, and a dynamic sitemap on Next.js 14.
Skills without a matching self-image slide back to the old baseline. Change the identity first, or the practice just bounces off.
How the Cmd+K palette on this site indexes every page, section, post, project, and external surface into one fuzzy-searchable list of 122 items.
If it feels difficult, you are learning. The friction is not a problem to route around. It is proof the pathway is being written.
I put a phone number on the internet and an AI answers it. A memoir of what actually happens on the other end of the line, six months in.
Firebase Storage sat behind Blaze. The Fine Arts Club Android app base64-encoded every image and stuffed it into a Firestore document. A memoir about that.
Two players with equal skill walk on court. One wins. The difference is often what they were staring at when the point started.
An honest look at the RCA agent on my HANA VM. What the shared-secret design gets wrong, what the guardrails cover, and what still scares me.
Notes on the twin pain of a serialized Python object that refuses to come back to life, and a Go program that wants a library nobody has written.
Signals that never fired, workers garbage-collected mid-run, QFileDialog freezing the event loop. Field notes from a PyQt5 UI on a media indexer.
Practice is not about getting good. It is about moving the movement out of the conscious brain so the conscious brain can watch the game.
The multi-agent PR scanner I built in March. What it caught on its own, what it kept missing, and where the human still had to make the call.
How I built a phone-first proof-of-work capture tool that binds a photo, a voice memo, GPS, and a signed PDF, then pins the digest to Polygon Amoy testnet.
A workshop curriculum built around the failure modes I hit in production, not the demos in a keynote. What I taught, what worked, and where the syllabus fell over.
The full boxes and arrows behind my portfolio phone number. LiveKit, Deepgram STT, Groq LLM with three tools, Cartesia TTS, and roughly two cents per minute.
A WebRTC voice interface that had to survive a corporate proxy blocking UDP. Token flow, TURN-over-TLS defaults, and why mic-permissions ate my week.
A FastAPI perf story from a 2024 SAP Labs internship. Async fan-out, one shared connection pool, and warm OAuth tokens cut a nightly batch from 76 to 13 min.
The full design of the SIH 2022 evidence indexer for MP Police, how each modality was handled with its own OCR/ASR family, merged into a single TF-IDF index, and served through one query surface.
Why I stopped hardcoding API keys in .env files and built CipherStack. The four-state machine behind LRU vending, and the PostgreSQL lock that saved it under concurrency.
I gave my phone number to an AI. Gemini Live speech-to-speech didn't survive reality. Here is the three-stage pipeline I fell back to, and how it hides 700ms.
The end-to-end architecture of a privacy-preserving RAG at SAP Labs: preprocessing, HNSW retrieval, metadata pre-filter, PII redaction, generation, audit trail.
The LRU state machine is one component. This is the whole vault, Postgres AEAD rows, the Fly.io API, cert handshake, dashboard, and the /metrics endpoint.
The architecture behind the Go client, local socket, encrypted cache, async refresh, vault-outage fallback, and the canary rollout that caught the bugs.
The recall-versus-memory decision behind a GDPR-compliant RAG at 2M docs. Why I stopped reaching for IVF-PQ, and what HNSW cost me past a million vectors.
Scrubbing PII at index time destroys recall on any query naming a public entity. Move it downstream. How DeBERTa, HNSW, and a cross-encoder fit under 2s p95.
The multilingual model was the obvious pick and it lost by six F1 points on Bundesdatenschutzgesetz entities. Tokenizer coverage beat parameter breadth on German.
Why I stopped shipping Python to 9,000 Linux servers, what static linking buys at fleet scale, and how a stripped Go binary beat the container it replaced.
ICCIES 2025 paper: swarm heuristics over MARL for cooperative intersection control. What shipped, the RL baseline that stalled, and what I'd extend at CMU.
My phone number is on the internet and an LLM answers it. Six months in, the guard-rails that actually mattered, and the one rule I had to soften mid-flight.
Same input, same pixels, every render. The non-negotiable behind HyperFrames, and the places non-determinism kept sneaking back in: fonts, rAF cadence, GC pauses.
I Couldn’t Get Claude Code to Start on Windows. It Took Me Way Too Long to Figure Out Why.So there I was, trying to start Claude Code on my Windows machine.I typed:claudeHit Enter… and nothing.The trust prompt just sat...
If you’ve tried following PortSwigger’s official documentation for installing Burp Suite’s CA certificate in Chrome, you probably noticed the screenshots and instructions don’t match what you see on your screen. That’s...
How a missing ChatGPT transcript sent me through DevTools, Burp Suite, and OpenAI endpoints, until I found my recordings inside a data-export ZIP.
Subscribe nowYou do something you were confident about, but suddenly your momentum falters. Now, it’s up to you to identify the issue and restore yourself to your previous stable state.I Reverse-Engineered ChatGPT’s Voi...
Missing transcripts to Zip filesTL;DRI had an 8-minute voice conversation with ChatGPT. The transcript was missing, and I wanted to recover my original voice input. That simple idea spiraled into hours of reverse engine...
This is ampersnow. a space for ideas, thoughts, and questions. Here, every post is a spark, every thought gets a second glance, because curiosity drives us. Follow me for the journeyI am going to nerd out here, no more...