Skip to main content

Blog

All posts

Technical insights on software engineering, AI, cloud computing, and more.

Synced

CSES Problem Set — Missing Number

2 min read

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...

AarogyaVaani: a voice-first ASHA didi that remembers who called yesterday

7 min read

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.

Voice AIVapiQdrantRAG

Issue Pool Atlas: baking 158 GRE prompts into one static page

7 min read

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.

GREStatic sitePythonStudy tool

AgenticDockerTester: giving an LLM NET_ADMIN inside a container and telling it to be creative

6 min read

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.

DockerLLM AgentsTest AutomationSAP GenAI Hub

Antigravity-AutoAccept: five strategies to click a button I got tired of clicking

7 min read

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.

VS CodeAntigravityChrome DevTools ProtocolAI IDE

Porting Blitz from macOS/iOS to Windows/Android in two commits

6 min read

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.

ElectronTypeScriptAndroidADB

The same four algorithms, in sklearn and Weka: a 2022 Data Mining lab archive

6 min read

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.

Data miningsklearnWekaJava

DynaClip: a Dynamic Island for the Windows clipboard

6 min read

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.

WindowsPySide6QtClipboard

Twenty-one retrospective posts in one sprint, and the fact-checker that read every draft first

7 min read

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.

Writing workflowAI-assisted writingFact checkingClaude Code

Hackathon Explorer: 10,014 winners in a 4 MB JSON, and why 78% of them are 'Global'

6 min read

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.

HackathonWeb scrapingDevpostReact

Grounding a hackathon RAG: rules, RRF, and a regex verifier

7 min read

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.

RAGHackathonHackerRankGrounding

Hotel Delivery System: the streamlit-dbms twin, with a PlanetScale token I left in the code

7 min read

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.

StreamlitMongoDBPlanetScaleCollege project

JET-PDF: an O(n²) duplicate-page remover that mostly worked

5 min read

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.

PythonPDFPyPDF2CLI

Two learning repos I abandoned in a week: OpenCV mouse callbacks and four CSES intro problems

5 min read

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.

OpenCVCSESCompetitive ProgrammingLearning

A Heroku clock dyno that scraped my own LeetCode profile at 3 AM, and the MongoDB creds I leaked with it

7 min read

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.

HerokuSeleniumMongoDB AtlasAPScheduler

The PSG hostel WiFi login script, and the password I committed to GitHub at nineteen

6 min read

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.

PythonSeleniumCaptive portalPSG Tech

SAMgen: two-shot AI image composition with Gemini and SAM

5 min read

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.

Segment AnythingSAMGeminiComputer Vision

Streamlit + MongoDB + MySQL for a 2022 DBMS lab, and yet another set of credentials I committed

6 min read

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.

StreamlitMongoDBMySQLCollege project

SwapGifts: a derangement solver, an Amazon affiliate scraper, and a paywall walk into a Bolt.new template

6 min read

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.

Bolt.newReactSupabaseSecret Santa

Three credential leaks (and one framing mistake) in my own public repos

8 min read

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.

SecurityCredential leaksMongoDB AtlasPlanetScale

Nine main_version_N.py files: how I did version control before git clicked

6 min read

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.

StreamlitMySQLCollege projectPython

VitaScale: a tiny autoscaling simulator built to fit an OpenEnv validator

6 min read

A 720-step autoscaling environment with hardcoded seeds, curriculum injections on the hard track, and a commit history dominated by stdout-format compliance.

OpenEnvReinforcement LearningFastAPIAutoscaling

Scraping YouTube's Most-Replayed heatmap, weeks after it went public

5 min read

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.

YouTubeWeb scrapingPythonSelenium

July 2021, October 2021: my first two GitHub repositories

6 min read

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.

MemoirGitHubPythonDiscord bot

aikeyrotator: what CipherStack looked like when it was a script

6 min read

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.

CipherStackPythonRate LimitingAPI Keys

Atomix, twice: a documentary agent and a shared shell for four apps

8 min read

Two projects both named Atomix. One a Python pipeline that turns a biography into a documentary. One a monorepo shell hosting four render apps.

PythonMonorepoLLMVideo

BloomCycle: a period tracker where the data stays on the phone

6 min read

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.

AndroidKotlinJetpack ComposePrivacy

Carbonwise, an AI carbon agent that grows a garden you can kill

8 min read

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.

Next.jsGeminiCipherStackProduct

Pre-semester work: Slidev decks and a research JSON before CMU

5 min read

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.

CMUSlidevGrad schoolResearch

One afternoon, one script: college Python utilities I wrote for myself

7 min read

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.

PythonMemoirCollegeAutomation

The DeBERTa PII notebook behind the polished blog

6 min read

The raw 27-cell Kaggle notebook for the Naamapadam PII fine-tune. What eleven Indian languages of NER data actually gave me.

NLPDeBERTaFine-tuningKaggle

First Android apps in Java, and what shipping an app teaches you

6 min read

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.

AndroidJavaCollegeFirebase

Five portfolio repos before this one, and why they all died

6 min read

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.

portfoliopost-mortemNext.jscareer

Reading a 40-page EarlyWatch PDF in one glance

6 min read

A React dashboard that opens a HANA EarlyWatch report, pulls the checks that actually page an engineer, and lets an agent act on them.

HANAEarlyWatchReactVite

From graph-memory research agent to healthcare triage in one hack

8 min read

JacHacks Spring 2026: how a graph-memory research agent pivoted mid-hack into a triage tool, and why contraindication is a graph-edge problem.

JacAgentsHealthcareHackathon

The junk drawer repos I refuse to delete

6 min read

Twenty-odd repos on my GitHub are dumps, drafts, backups, and half-thoughts. I keep them because the useful bit surfaces two years later.

GitHubMemoirNotesBackups

MedSimplify: fine-tuning Gemma 4 for medical Easy Read

8 min read

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.

GemmaUnslothFine-tuningAccessibility

The stack of tiny React apps I built while learning the ecosystem

9 min read

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.

MemoirReactViteSupabase

PSG campus navigation map: the fresher's map that never existed

6 min read

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.

Reactcampusimage-mappsg

Repos I renamed and forgot to delete

5 min read

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.

GitHubHousekeepingNamingProcess

The Samsung PRISM notebook trail: four repos behind one project

6 min read

Before the multimedia indexer, there were four scratch repos: a KPI dashboard, a Streamlit noise map, a HTML skeleton, and a coursework dump.

Samsung PRISMNotebookPrototypingPython

Setting up for competitive programming: the tooling around it

7 min read

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.

Competitive ProgrammingLeetCodePythonTooling

The sign-language trilogy: what three student repos taught me

6 min read

Three student repos across a year, aimed at deaf accessibility. The technical arc looked clean. What I actually shipped was rougher and more honest.

AccessibilityComputer Visionlstmmediapipe

Templates I keep coming back to

5 min read

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.

TemplatesGitHubPythonSaaS

trky: one list for anime, games, books, and everything else

7 min read

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.

ReactzustandVitestate-management

The prototype graveyard: 24 repos I started between 2025 and 2026

8 min read

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.

PrototypesMemoirProcessTypeScript

Lab repos I still remember, and the ones I do not

7 min read

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.

PSG TechCollegePythonMemoir

Yokoso: WebContainers, an MCP server, and a PixiJS timeline

7 min read

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.

WebContainersMCPPixiJSFFmpeg

60 Cycles: What I Learned on an Adversarial Ship-Loop

8 min read

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.

ProcessMethodologyShip-LoopMeta

Building kaushik.cv: the tech stack, choice by choice

7 min read

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.

Next.jsMDXOG imagesRSS

You cannot outperform how you think of yourself

5 min read

Skills without a matching self-image slide back to the old baseline. Change the identity first, or the practice just bounces off.

PsychologyIdentityPracticeMindset

The command palette that indexes everything on this site

6 min read

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.

Next.jsTypeScriptPerformanceAccessibility

Difficulty is the signal

5 min read

If it feels difficult, you are learning. The friction is not a problem to route around. It is proof the pathway is being written.

PsychologyPracticeFlowNeuroplasticity

Dyx: Voicemail from the Caller's Side of the Line

7 min read

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.

DyxVoicePersonal AIMemoir

Running with shackles: base64 in Firestore on the free tier

5 min read

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.

FirebaseAndroidFree TierMemoir

Focus on winning, not on not losing

4 min read

Two players with equal skill walk on court. One wins. The difference is often what they were staring at when the point started.

SportsMindsetPsychologyPractice

HaaS: is a shared-secret agent on a live HANA box actually safe?

10 min read

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.

AgentsSecurityRCAAI Safety

Pickle formats and missing Go libraries, two shapes of the same ache

6 min read

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.

PythonGoSerializationML Infrastructure

PyQt5 Gotchas from the Samsung PRISM Desktop UI

10 min read

Signals that never fired, workers garbage-collected mid-run, QFileDialog freezing the event loop. Field notes from a PyQt5 UI on a media indexer.

PyQt5Desktop UISamsung PRISMPython

The unconscious mind is what you're training

5 min read

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.

PracticeSportsFlowLearning

vulnerability_agent_ai: honest retrospective on a security scanner

8 min read

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.

AgentsSecurityStatic AnalysisSAP GenAI Hub

WorkProof: signed photo + voice + GPS, anchored to Polygon Amoy

7 min read

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.

React NativeExpoPolygonethers.js

Teaching 25 Engineers How to Ship Agentic AI (Without the Hype)

9 min read

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.

TeachingAgentic AIMLOpsSAP

The Full Voice-Agent Architecture Behind Dyx

12 min read

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.

DyxVoiceLiveKitSystem Design

Building a LiveKit Voice Frontend for SAP HANA Operations

12 min read

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.

LiveKitWebRTCSAPHANA

How I Shrank a Multi-Cloud Telemetry Pipeline From 76 Minutes to 13

9 min read

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.

FastAPIPythonSAPPerformance

System Design of the SIH Multimedia Indexer: Per-Modality OCR + ASR

11 min read

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.

System DesignOCRASRSearch

An LRU Key-Rotation State Machine for a Personal Credential Vault

9 min read

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.

SecurityPostgreSQLRate LimitingCipherStack

The <700ms Latency Budget for a Personal AI Voicemail Line

9 min read

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.

VoiceLiveKitLLMLatency

The Full-Stack Architecture of a GDPR-Compliant RAG at SAP Labs

13 min read

The end-to-end architecture of a privacy-preserving RAG at SAP Labs: preprocessing, HNSW retrieval, metadata pre-filter, PII redaction, generation, audit trail.

SAPRAGSystem DesignGDPR

CipherStack Beyond the LRU: Full Vault Architecture

12 min read

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.

CipherStackSecuritySystem DesignPostgreSQL

How I Redesigned the Credential-Fetch Client for a 9,000-Server Fleet

12 min read

The architecture behind the Go client, local socket, encrypted cache, async refresh, vault-outage fallback, and the canary rollout that caught the bugs.

GoSystem DesignSAPInfrastructure

HNSW or IVF-PQ? What I Actually Chose at 2M Documents

8 min read

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.

RAGVector SearchHNSWSAP

Redact at Retrieval, Not at Ingest: A GDPR-Compliant RAG Architecture

9 min read

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.

RAGGDPRArchitectureSAP

Why We Fine-Tuned DeBERTa-base and Not XLM-R for German PII

12 min read

The multilingual model was the obvious pick and it lost by six F1 points on Bundesdatenschutzgesetz entities. Tokenizer coverage beat parameter breadth on German.

NLPDeBERTaFine-tuningGDPR

Dependency-Free Go: The Right Answer for a 9,000-Server Fleet

9 min read

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.

GoInfrastructureSecuritySAP

IEEE ICCIES 2025: Swarm Intelligence for Cooperative ITS

7 min read

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.

ResearchIEEESwarm IntelligenceAutonomous Vehicles

Guard-Rails Every Personal AI Should Have (Lessons from Shipping Dyx)

11 min read

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.

AI SafetyLLMGuard RailsPrompt Engineering

What HyperFrames Taught Me About Deterministic Video Rendering

8 min read

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.

VideoDeterminismHyperFramesBrowser Rendering
Synced

Claude Code Wouldn’t Start on Windows — The Real Reason Took Me Hours to Find

3 min read

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...

Synced

Installing Burp Suite’s CA Certificate in Chrome (2026 Updated Guide)

3 min read

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...

I Reverse-Engineered ChatGPT Voice and Found My Recordings in a ZIP

3 min read

How a missing ChatGPT transcript sent me through DevTools, Burp Suite, and OpenAI endpoints, until I found my recordings inside a data-export ZIP.

Reverse EngineeringChatGPTJavaScript
Synced

Love the Hunt, Not the Prize

4 min read

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...

Synced

I Reverse-Engineered ChatGPT’s Voice Data Flow and Found My Own Voice Hidden in a ZIP File

4 min read

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...

Synced

ampersnow: where thoughts take shape

1 min read

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...