Profile🧸

Hi, I'm Bhavdeep Arora

locationToronto, ON
date
time
weather-

I'm a systems focused software engineer based in Toronto. I've been programming for over six years, always chasing whatever problem catches my interest.

My interests span low-level systems, security tooling, applied ML, and distributed systems, with a quiet passion for environmental engineering. Distributed systems and machine learning is where most of my curiosity lives.

Outside of programming, I love learning new things, reading books, and exploring outside! Here's what I'm currently up to:

Selected Works

Thunderhead screenshots1 / 4
Thunderhead - Thunderhead Overview
Thunderhead - Thunderhead Scoring
Thunderhead - Thunderhead Config
Thunderhead - Thunderhead Features
Thunderhead logo

Thunderhead

A lightweight reverse proxy that scores the intent of incoming HTTP requests to detect and mitigate bot traffic - without relying on Cloudflare or third-party services.

Go
Next.js
TypeScript
Redis
JavaScript
Nginx
  • Passive behavioral scoring engine, no JS challenges or CAPTCHAs
  • Scores requests 0-100 across signals: robots.txt violations, path crawling, request rate, suspicious headers, and content patterns
  • Graduated responses: allow (< 40), tarpit with configurable delay (≥ 40), or block 403 (≥ 75)
  • Structured JSON logging for all proxy decisions
  • IP, CIDR, and user-agent allowlist support
  • Config-driven: listen address, upstream URL, thresholds, and tarpit delay all configurable
Verrere screenshots1 / 4
Verrere - verrere Landing Page
Verrere - verrere Swipe Interface
Verrere - verrere Shelf
Verrere - verrere Genre Selection
Verrere logo

Verrere

A full stack web application that lets users discover books through an interactive, swipe-based interface, persist personal shelves, and filter preferences by genre.

Next.js
TypeScript
TailwindCSS
PostgreSQL
Prisma
  • Built a smooth, physics-based card deck with Framer Motion that triggers instant visual feedack as you drag
  • Connected the Hardcover Books API to cycle through a user's selected genres without stalling or repeating data
  • Designed a custom REST API proxy that tracks swiped book IDs to ensure users never see the same book twice
  • Used Prisma and Neon PostgreSQL to save liked books and manage reading shelves instantaneously
  • Integrated Clerk to handle secure email and Google logins, syncing user shelves across devices seamlessly
Groat screenshots1 / 3
Groat - Groat Dashboard
Groat - Groat Semantic Cache
Groat - Groat Routing Config
Groat logo

Groat

A self-hosted LLM proxy that cuts your API bill by routing requests to cheaper models and caching semantically-similar responses - a drop-in OpenAI-compatible endpoint with no code changes required.

Rust
Axum
SQLite
SQLx
LanceDB
Candle
Docker
Git
Linux
  • Semantic cache using bge-small-en-v1.5 embeddings and LanceDB - similarity threshold of 0.95 returns cached responses without hitting the API
  • Automatic prompt cache injection - detects stable system-prompt prefixes and injects cache_control breakpoints to claim provider-side cached-token discounts
  • User-defined TOML routing - pins use cases to model tiers instead of relying on a classifier, with automatic cheap-tier routing for structured-output requests with a JSON schema
  • Retroactive suggestions engine - analyzes logged traffic (~10k request threshold) to surface routing rules with estimated savings, without auto-applying any changes
  • Cost dashboard showing real-time spend and savings per route
  • In design: conversation-graph-aware routing (depth/branching factor as routing signals) and speculative prefetching for predictable follow-up requests
Funes screenshots1 / 2
Funes - Funes Terminal
Funes - Funes Documentation
Funes logo

Funes

A local-first CLI tool that indexes your files, notes, and shell history, letting you query your machine's history in plain English - no cloud, no accounts, and no subscription.

Rust
SQLite
Ollama
Next.js
TypeScript
TailwindCSS
Vercel
Git
Linux
  • Background daemon watches files, notes, and shell history (bash/zsh/PowerShell) for changes in real time
  • Chunks indexed content and converts it into vector embeddings locally via Ollama (nomic-embed-text) - nothing leaves the machine
  • Semantic query engine surfaces the most relevant chunks by meaning, not keyword match, with similarity scores
  • Optional LLM synthesis mode (--llm) turns raw results into a plain English answer using a local Llama 3 model
  • SQLite-backed vector storage with manual folder indexing (add), continuous watching (watch), and file exclusion patterns (forget)
  • Distributed as a Rust CLI via cargo install, with a Next.js docs/marketing site deployed on Vercel

Case Studies

Lacunae

Accelerated MRI Reconstruction from Undersampled K-Space via U-Net

U-Net that reconstructs full MRI scans from 25% of the frequency data.

Python
pandas
PyTorch
  • Center 8% of k-space columns always retained - low frequencies carry the bulk of image energy
  • ~7.7M parameter U-Net with four encoder/decoder stages and transposed convolution upsampling
  • Benchmarked on NYU fastMRI single-coil knee dataset (Zbontar et al., 2018)

Precursor

Cross-Asset Momentum Spillover from Commodities to Sector Equities via Granger Causality

Tests whether commodity price momentum predicts sector equity moves 1–5 days ahead.

Python
pandas
Jupyter
  • Tests momentum spillover at lags k ∈ {1,2,3,4,5} trading days across 3,500+ daily observations
  • DAG construction maps in/out-degree centrality to identify leading commodity indicators
  • Backtest evaluates annualised Sharpe, max drawdown, and hit rate on an 80/20 train/test split