Dhruv Kothari
I'm a software engineer who builds tools that move growth numbers.
Growth intern at Blink.new (YC) until October 2026. Open to remote software engineering and growth engineering internships from December 2026.
Full-stack & AI developer · Mumbai, India
Résumé · Résumé (PDF) · github.com/dhruv4740 · LinkedIn · 3D room (laptop)
Proof
- 18% of contacted creators replied, across 489 outreach emails from an LLM pipeline I built at Blink
- 4 internal growth tools shipped at Blink: outreach, link building, SEO tracking, Reddit copilot
- Top 5 finalist at the IIT Madras × BITS Goa security hackathon, for DarkSentinel's LLM review layer
- 2× hackathon wins: Innovathon 2025 and REALMS 2025
Featured
FocusLock (2026)
Screen-time limits that follow you across Android and Windows.
A screen-time limiter that shares one daily allowance across an Android phone and a Windows PC.
What I did. Kotlin, Android, Electron and Firebase. Backed by 233 automated tests; CI builds a signed APK and the Windows installer.
Tech: Kotlin, Android, Electron, Firebase, Firestore
Problem. Screen-time limits are easy to dodge: switch browsers or use another device and the allowance resets.
Decisions and trade-offs. Enforce at the OS level, with one shared daily allowance. The first design was a self-hosted TypeScript backend plus a browser extension; I deleted it for Firestore as shared state and a native Electron agent, which removed a server and its firewall problem. Firestore web keys are public, so I wrote security rules that restrict each sync code to its members, capped at 10.
Result. One allowance across an Android phone (Accessibility service) and a Windows PC. A Ctrl+W bug, where the agent logged a closed tab that stayed open, was fixed by switching from PostMessage to SendInput. 233 automated tests; CI builds a signed APK and the Windows installer.
Source
BasketProof (2026)
Refuses to show you a price it cannot prove.
A private grocery price comparison tool for one family, adding items across three delivery services separately. Built on a single rule: UNKNOWN is better than WRONG — it declines to state a total unless it has verified evidence for every line of it.
What I did. Price comparator with 636 tests.
Tech: Python, FastAPI, PostgreSQL, Kotlin
At Blink.new (internship)
Built 4 internal growth tools: creator outreach, link building, SEO mention monitoring and a Reddit growth copilot.
- Creator outreach pipeline. Python, SQLite, YouTube Data API and Gmail API, with LLM drafting and human approval before every send.
- Link-building engine. Flask dashboard that found and scored 676 prospect sites and extracted contacts.
- SEO and AI-search mention tracking. Tracked AI-search citations across 18 prompts.
- Reddit growth copilot. Reddit was 29.85% of Blink social traffic (Jun 2026).
- 4 internal growth tools
- 650 leads sourced
- 489 emails sent
- 18% of contacted creators replied (41 of 228)
- 14 positive responses
- 676 prospect sites found and scored
- 29.85% of Blink social traffic from Reddit (Jun 2026)
Personal projects
Cellbook (2026)
A desktop spreadsheet app modelled on Excel.
A desktop spreadsheet app modelled on Excel, with the same ribbon, menus and formulas.
Tech: Electron, HyperFormula
3D Portfolio (2026)
This site: a 3D studio room whose monitor runs live demos of other projects.
An interactive 3D studio room whose monitor runs live demos of my other projects.
What I did. Three.js, React 19, GSAP, GLSL, Playwright. Detects each visitor’s GPU and serves a 3D, mobile or no-WebGL version, holding 30 to 60 FPS on integrated graphics.
Tech: Three.js, React 19, GSAP, GLSL, Playwright
Problem. A 3D portfolio is slow or unusable on weak GPUs, phones and browsers without WebGL.
Decisions and trade-offs. The site detects each visitor’s GPU and serves a 3D, mobile or no-WebGL version. The studio room’s monitor runs live demos of other projects, and Playwright checks cover the interactions.
Result. Holds 30 to 60 FPS on integrated graphics; the same content is reachable on every tier, including the plain work page.
Live
Expense Tracker (2025)
Logs your spending by reading the receipts your phone already gets.
React Native app where Kotlin captures SMS and notifications into a peek/ack buffer, and a TypeScript parser logs expenses automatically into local SQLite — no account, no cloud, no sync.
Tech: React Native, Kotlin, TypeScript, SQLite
Source
Blackout (2026)
Turns an OLED phone screen fully black while audio keeps playing.
Turns an OLED phone screen fully black while audio keeps playing, saving battery.
What I did. Kotlin, Android. Fingerprint unlock, a Quick Settings tile, and it steps aside for calls and alarms. No internet permission.
Tech: Kotlin, Android
Problem. On an OLED phone, listening to audio keeps the screen lit and drains battery.
Decisions and trade-offs. Blackout turns the screen fully black while audio keeps playing. Fingerprint unlock and a Quick Settings tile control it, and it uncovers by itself for calls and alarms. It requests no internet permission.
Result. A Kotlin Android app; source at https://github.com/dhruv4740/blackout.
Source
Hackathon projects
DarkSentinel (2026)
Darknet threat monitoring. Top 5 finalist at the IIT Madras × BITS Goa hackathon.
A team dark-web traffic monitor that classifies network traffic and shows alerts on a live dashboard.
What I did. Built the LLM review layer: only predictions the model is unsure about go to an LLM, keeping inference cost bounded. Team project; finalist at the IIT Madras x BITS Goa hackathon 2026.
Team project in a private repository. Deven owned model training, the LLM work and live Tor capture; I built the dashboards, the API features and the uncertain-zone Claude call.
Top 5 finalist in problem statement, IIT Madras & BITS Goa hackathon 2026
Tech: Python, FastAPI, Next.js, Random Forest, RoBERTa, Claude API, Tor, Streamlit
Problem. Monitoring darknet traffic needs a classifier, but sending every flow to a paid LLM would be costly and slow.
Decisions and trade-offs. A Random Forest scores network flows for Tor traffic. Only predictions in the uncertain zone (Tor score 0.55 to 0.75) go to the Claude call, behind a 60-second cooldown, so cost is bounded by time rather than traffic. I removed a hardcoded fallback score that could show a result the model never produced.
Result. A team build (model training and live Tor capture were Deven’s) with dashboards and an API; top 5 finalist in its problem statement at the IIT Madras x BITS Goa hackathon 2026.
HexFence (2026)
A Safe Guard that refuses lookalike payments, with open address-poisoning evidence on Arkiv.
Built at ETHGlobal Mumbai 2026. Detects address poisoning, publishes the evidence openly on Arkiv, warns you locally before you sign, and makes a protected Safe refuse to pay a lookalike of an approved supplier while new suppliers still work.
What I did. Team project with Deven; I made 229 of the repo’s 286 commits.
ETHGlobal Mumbai 2026 (5 to 7 Nov)
Tech: Solidity, Safe, Arkiv, viem, Hardhat, Vite
Live · Source
CrisisWatch (2025)
Claim verification for a misinformation-heavy feed.
Built at MumbaiHacks. AI-assisted claim checking with structured verdicts and a modular backend. Frontend on Vercel, backend on Render.
Tech: Next.js, TypeScript, Node.js, Python
Source
F-Shield (2025)
Fraud detection for small businesses.
Machine-learning fraud detection for small businesses: CSV upload, transaction analysis, and a Flask dashboard. Built with a team; won Innovathon 2025.
Winner, Innovathon 2025
Tech: Python, XGBoost, Flask, pandas
Achievements
- Innovathon 2025 — Data Science track: Winner (2025)
- REALMS 2025 — AR Tourism track: Winner (2025)
- Secure AI Systems & Software Hackathon (BITS Goa x IIT Madras): Top 5 finalist in problem statement (2026)
Experience
Growth Intern, Blink.new
Jan 2026 to Oct 2026 · YC-backed AI app builder, remote
Built 4 internal growth tools: creator outreach, link building, SEO mention monitoring and a Reddit growth copilot.
- Built a creator outreach pipeline (Python, SQLite, YouTube Data API, Gmail API, LLM drafting with human approval).
- Built a link-building engine (Flask dashboard) that found and scored prospect sites and extracted contacts.
- Tracked AI-search (AEO) citations for Blink across 18 prompts.
- 4 internal growth tools
- 650 leads sourced
- 489 emails sent
- 18% of contacted creators replied (41 of 228)
- 14 positive responses
- 676 prospect sites found and scored
- 29.85% of Blink social traffic from Reddit (Jun 2026)
Problem. Blink.new needed repeatable growth channels, and the team had no tooling for creator outreach, link building, AI-search visibility or Reddit.
Decisions and trade-offs. I built four internal tools as the sole developer. The outreach pipeline (Python, SQLite, YouTube Data API, Gmail API) uses an LLM to draft messages, but a human approves every send. The link-building engine is a Flask dashboard that finds and scores prospect sites and extracts contacts.
Result. 650 leads sourced, 489 emails sent, 41 of 228 contacted creators replied (18%), 14 positive. The link engine scored 676 prospect sites, AI-search tracking covered 18 prompts, and Reddit was 29.85% of Blink social traffic in Jun 2026.
Web Developer Intern, ARH Tubes Pvt. Ltd.
Dec 2025 to Jan 2026
Built and launched the company e-commerce storefront, tanttu.in, on Shopify.
IoT Developer Intern, EFarm, KJSCE
Feb 2025 to Mar 2025
Automated irrigation prototype on Raspberry Pi with threshold-based pump control from live sensor data.
Education
B.Tech, Information Technology, KJ Somaiya College of Engineering (Third year)
Skills
- React / Next.js
- TypeScript
- Node.js / Express
- Python (FastAPI, Flask, pandas)
- Kotlin / Android (native modules, accessibility services)
- Firebase / Firestore (cross-device sync and security rules)
- ML / data (scikit-learn, pandas)
- ESP32 / Raspberry Pi (sensor integration, control logic)
- Three.js / WebGL (Three.js sketches on the desk computer: DarkSentinel, Expense Tracker)
Contact
Growth intern at Blink.new (YC) until October 2026. Open to remote software engineering and growth engineering internships from December 2026. Email [email protected]. github.com/dhruv4740 · LinkedIn