About

I'm at FGF Brands right now, working on Cerebro, the platform that monitors production across its 22 bakery plants. Before that: research at U of T, a web dev internship, and a summer fixing e-scooters.

The projects below started as questions about how things work under the hood: rate limiters, encryption schemes, browser extensions. I'm looking for a software engineering internship. If you're hiring, email me.

Languages
Python · JavaScript · TypeScript · Java · C · SQL
Frameworks
React · FastAPI · Node.js · Hono · Flask · SQLAlchemy · Tailwind CSS · Pandas · NumPy
Databases
PostgreSQL · Redis · SQLite
Tools
Git · Docker · Bash · Power BI · Chrome Extension APIs

Work

React client FastAPI Redis limiter Lua · atomic Finnhub Yahoo Finance FMP Alpha Vantage Stooq Twelve Data falls through on 429s
A React client calls a FastAPI backend, which routes requests through a Redis rate limiter to six market-data sources in order: Finnhub, Yahoo Finance, FMP, Alpha Vantage, Stooq, and Twelve Data, falling through to the next source on a 429.

Markr · stock screener

Six market-data APIs behind one FastAPI backend. A Redis Lua script enforces each source's rate limit atomically, so a burst of traffic falls through the chain instead of dying on a 429. Candles write asynchronously to monthly-partitioned Postgres with per-resolution Redis TTLs; RSI, MACD, and Bollinger Bands are computed client-side. A Vitest suite covers the fallback chain, the indicators, and the limiter.

React · FastAPI · PostgreSQL · Redis · Docker Demo Source

master password PBKDF2 600k iterations vault key AES-256-GCM SQLite vault one key per entry bcrypt auth JWT · TOTP 2FA breach check SHA-1 prefix first 5 chars HIBP range API full hash never leaves the machine
A master password is stretched by PBKDF2 over 600,000 iterations into a per-entry AES-256-GCM vault key, and entries are stored in SQLite with one key each. The same master password is separately verified by bcrypt for login, with rotating JWTs and TOTP two-factor. Breach checks hash the password with SHA-1 and send only the first five characters to the HaveIBeenPwned range API, so the full hash never leaves the machine.

SecureVault · password manager

Built to understand what 1Password actually does. The analyzer computes entropy, catches keyboard walks and date patterns, and scores passwords 0 to 100. Every vault entry gets its own AES-256-GCM key (PBKDF2, 600k iterations), breach checks use HaveIBeenPwned's k-anonymity model so no password ever leaves the machine, and auth is bcrypt with rotating JWTs and TOTP 2FA, all covered by a pytest suite.

Flask · React · SQLite · Docker Demo Source

page DOM privacy guard password + card scan MV3 extension chrome.alarms batches storage.local works offline Hono API · CLI optional
The page DOM is read through a privacy guard that scans for password and card fields before anything is captured. The guard feeds a Chrome MV3 extension, which batches writes with chrome.alarms into chrome.storage.local so the tracker works offline. A Hono API and CLI sit on an optional second path.

ctx · browser session tracker

A session tracker that works with the network unplugged. The Chrome extension stores everything locally, the server and CLI are optional, and a privacy guard scans each page for password and card fields before anything is captured. Blocked pages are logged with no URL, title, or content.

TypeScript · Chrome MV3 · Hono · SQLite Source

16-step grid melody pads Tone.js transport clock analyser node Web Audio visualizers 5 modes · canvas PostgreSQL saved patterns
A 16-step sequencer grid and melody pads both feed the Tone.js transport clock, which drives a Web Audio analyser node; five canvas visualizer modes read from the analyser, and patterns are saved to PostgreSQL.

Wavvy · drum machine for the browser

A 16-step sequencer and melody pads scheduled with Tone.js, plus five visualizer modes drawn live from the Web Audio analyser node.

React · TypeScript · Tone.js · PostgreSQL Demo Source

Experience

  • 2026–

    Cerebro AI Technical Specialist · FGF Brands

    • Won 1st place at FGF's 4th Annual FGFLife Hackathon, building BakeryInsight (React 19, TypeScript, Node.js, Express): a trend-intelligence dashboard that classifies emerging food trends across 9 data sources, scores them on growth, saturation, and regional spread, and pairs each with a 6-dimension feasibility engine evaluated against real FGF production-line and ingredient data.
    • Built internal tooling in Node.js and Python documenting Cerebro's OEE telemetry models, changeover logic, and troubleshooting decision trees, plus Power BI dashboards tracking manufacturing performance across FGF's 22 facilities.
    • Write and optimize SQL diagnostic queries against Cerebro's production database; the work has identified systemic misconfigurations in workflow state transitions and pipeline gaps across over 2,000 production records.
    • Configure and maintain Cerebro environments across FGF's Canadian facilities, debugging the integration boundary between Cerebro and upstream ERP systems.
  • 2025

    Mobility Hardware and Software Technician · Bird

    Inspected, diagnosed, and repaired e-scooters; field-tested new features for the product and engineering teams.

  • 2025

    Deputy Returning Officer · Elections Canada

    Ran a polling station on federal election day.

  • 2024

    Research Assistant · COBWEB, University of Toronto

    • Implemented agent-based simulations modelling emergent behaviour in ecological adaptive systems with Dr. Brad Bass; configured multi-condition experiments whose results fed the team's research.
    • Wrote Pandas and NumPy pipelines to clean, normalize, and visualize multi-run simulation outputs, revealing population dynamics and threshold-crossing patterns across conditions.
  • 2022–23

    Software Engineer Intern · Digitera

    Developed and shipped web applications for small-business clients using JavaScript, HTML, and CSS; optimized page performance by 40% through asset minification, image compression, and deferred script loading.

Education

2024–

Queen's University · Kingston, ON

Bachelor of Computer Science (Honours), Mathematics minor. GPA 3.8.

Coursework: Data Structures & Algorithms · Computer Architecture · Discrete Structures · Linear Algebra · Differential Equations

Contact

The fastest way to reach me is davedhruv2006@gmail.com. I read everything.

Away from a keyboard I'm usually on the ice, on a trail, or in an airport.