Skip to content

Jeeshaan SinghBakshi.

Seeking a Summer 2027 co-op in software engineering, ML / AI engineering, data science, or quant developmentComputer Science Co-op Student | Software Engineering | Full-Stack | ML

I build software, run experiments with machine learning, and want to understand the math underneath.

GitHub Resume (PDF) jeeshaanbakshi@gmail.com

Program
Honours Bachelor of Computer Science, Co-op · University of Waterloo
Since
Sept 2026
Building
CourseMate

Ask my portfolio

Search everything here by meaning. Try one of these:

It's my RAG retrieval, running in your browser.
  • Python
  • JavaScript
  • C++
  • SQL
  • Racket
  • HTML
  • CSS
  • React
  • Next.js
  • Tailwind CSS
  • Supabase
  • PostgreSQL
  • REST APIs
  • RAG
  • SentenceTransformers
  • transformers.js
  • Embeddings
  • Semantic Search
  • PCA
  • scikit-learn
  • pandas
  • NumPy
  • Matplotlib
  • Arduino Uno
  • ESP32
  • ESP8266
  • RFID
  • HC-SR04
  • I2C
  • Git
  • GitHub
  • VS Code
  • PyCharm
  • Jupyter Notebook
  • Google Colab
  • Looker Studio
  • Vercel

Selected work

Four builds. What I made, what I learned, one thing that went wrong.
In progressSoftware

CourseMate

Study groups for Waterloo students taking the same courses.

  1. 01Email sign-in with Supabase Auth
  2. 02Postgres model: profiles, courses, groups, memberships
  3. 03Row-level security guards every row

Put security where the data lives. RLS checks every query inside Postgres, so the UI never has to be trusted.

ProblemClient-side permission checks can be bypassed.

FixMoved authorization into PostgreSQL RLS policies keyed on auth.uid().

  • Next.js
  • Supabase
  • PostgreSQL
  • Vercel
CompletedAI/ML

Find the passages that answer a question, by meaning, not keywords.

  1. 01Overlapping chunks of the source text
  2. 02384-d embeddings with all-MiniLM-L6-v2
  3. 03Cosine-similarity ranking → top-k passages

With normalized embeddings, cosine similarity is a dot product. Retrieval is linear algebra.

ProblemBig chunks match vaguely; small chunks lose context.

FixTuned chunk size and overlap to balance the two.

  • Python
  • SentenceTransformers
  • NumPy
CompletedSoftware / AI/ML

Personal Portfolio with Semantic Search

This site. A map of my work and search that runs in your browser.

  1. 0140+ passages embedded at build time
  2. 02PCA projects them to a 2D map
  3. 03Search runs in the browser with transformers.js

One typed data file feeds the pages, the search index and the resume, so they can't drift apart.

ProblemML search with no backend could slow the page for everyone.

FixThe model loads only on the first query.

  • Next.js
  • React
  • Tailwind CSS
  • transformers.js
  • Vercel
CompletedHardware

Bluetooth-Controlled Arduino Car

A phone-controlled car. My circuit, my C++ firmware.

  1. 01Circuit around an Arduino and an HC-05 module
  2. 02C++ firmware that turns phone commands into movement
  3. 03Driven from a smartphone app over Bluetooth

Change one thing at a time. It finds a hardware fault faster than swapping parts.

ProblemControl kept dropping from hardware and connection faults.

FixTested component by component until control was reliable.

  • Arduino
  • C++
  • HC-05 Bluetooth

auth.uid() = owner_id

The check a row-level security policy runs on every query (design)

cos θ = a·b / ‖a‖ ‖b‖

Cosine similarity between 384-dimensional MiniLM embeddings

z = Wᵀ(x − μ)

PCA: each 384-d passage embedding projected onto two principal components

  1. 01In progress

    CourseMate

    Study groups for Waterloo students taking the same courses.

    Built
    1. 01Email sign-in with Supabase Auth
    2. 02Postgres model: profiles, courses, groups, memberships
    3. 03Row-level security guards every row
    Stack
    • Next.js
    • Supabase
    • PostgreSQL
    • Vercel
    Insight
    Put security where the data lives. RLS checks every query inside Postgres, so the UI never has to be trusted.
    Challenge

    ProblemClient-side permission checks can be bypassed.

    FixMoved authorization into PostgreSQL RLS policies keyed on auth.uid().

    Read the case study

    1. 1BrowserNext.js UI
    2. 2Supabase Authemail sign-in
    3. 3PostgreSQLprofiles · courses · groups · memberships
    4. 4RLS policieswho may see which rows
    Fig. 2 — Data model and request path
  2. 02Completed

    RAG Retrieval System

    Find the passages that answer a question, by meaning, not keywords.

    Built
    1. 01Overlapping chunks of the source text
    2. 02384-d embeddings with all-MiniLM-L6-v2
    3. 03Cosine-similarity ranking → top-k passages
    Stack
    • Python
    • SentenceTransformers
    • NumPy
    Insight
    With normalized embeddings, cosine similarity is a dot product. Retrieval is linear algebra.
    Challenge

    ProblemBig chunks match vaguely; small chunks lose context.

    FixTuned chunk size and overlap to balance the two.

    Read the case study Source Live

    1. 1Chunkoverlapping windows
    2. 2Embedall-MiniLM-L6-v2 · 384-d
    3. 3Scorecosine similarity
    4. 4Retrievetop-k passages
    Fig. 3 — Retrieval pipeline
  3. 03Completed

    Personal Portfolio with Semantic Search

    This site. A map of my work and search that runs in your browser.

    Built
    1. 0140+ passages embedded at build time
    2. 02PCA projects them to a 2D map
    3. 03Search runs in the browser with transformers.js
    Stack
    • Next.js
    • React
    • Tailwind CSS
    • transformers.js
    • Vercel
    Insight
    One typed data file feeds the pages, the search index and the resume, so they can't drift apart.
    Challenge

    ProblemML search with no backend could slow the page for everyone.

    FixThe model loads only on the first query.

    Read the case study

    1. 1profile.tssingle source of data
    2. 2EmbeddingsMiniLM at build time
    3. 3PCA384-d → 2D map
    4. 4Browsertransformers.js search
    Fig. 4 — Build pipeline
  4. 04Completed

    Bluetooth-Controlled Arduino Car

    A phone-controlled car. My circuit, my C++ firmware.

    Built
    1. 01Circuit around an Arduino and an HC-05 module
    2. 02C++ firmware that turns phone commands into movement
    3. 03Driven from a smartphone app over Bluetooth
    Stack
    • Arduino
    • C++
    • HC-05 Bluetooth
    Insight
    Change one thing at a time. It finds a hardware fault faster than swapping parts.
    Challenge

    ProblemControl kept dropping from hardware and connection faults.

    FixTested component by component until control was reliable.

    Read the case study

    1. 1Smartphone appsends commands
    2. 2HC-05Bluetooth link
    3. 3ArduinoC++ firmware
    4. 4Carmoves
    Fig. 5 — Control path

How I work

  1. 01

    Build

    I get the smallest version working end to end first.

    RAG Retrieval System
  2. 02

    Test

    When something breaks, I change one thing at a time.

    Bluetooth car
  3. 03

    Tune

    Then I tune it. Most choices are trade-offs, like chunk size vs. context.

    RAG Retrieval System
  4. 04

    Ship

    I make the safe option the default, like permissions inside the database.

    CourseMate

Profile

About

I like understanding systems from the inside out.

Web apps, ML pipelines, data work and Arduino hardware.

I want to know why something works, where it breaks, and how to make it better.

Half my time goes into building it. The other half goes into making it right.

I like understanding systems from the inside out.

Web apps, ML pipelines, data work and Arduino hardware.

I want to know why something works, where it breaks, and how to make it better.

Half my time goes into building it. The other half goes into making it right.

Off the keyboard

robotics · math problem-solving · tennis · table tennis · badminton · cycling

Toolkit — with where I've used it

AI/ML and Data
Embedded Systems
Developer Tools

Record

Experience

Data Science Intern

UAE · 2025

Savvy Data Cloud Consulting

  • Cleaned and standardized a 1,215-record automotive dataset in Python (pandas), preparing it for analysis and modeling.
  • Estimated missing vehicle attributes using linear regression and decision-tree models built with scikit-learn.
  • Retrieved supplementary vehicle data from web REST APIs to fill gaps in the dataset.
  • Built an interactive Looker Studio dashboard used to present findings in a client presentation.
Technical write-up

Education

University of Waterloo

Waterloo, ON, Canada · Sept 2026 – Expected 2031

Honours Bachelor of Computer Science, Co-op

Relevant coursework

  • CS 135Designing Functional Programs
  • MATH 135Algebra for Honours Mathematics
  • MATH 137Calculus 1 for Honours Mathematics
  • ECON 101Microeconomics

Awards and leadership

  • 2024

    AMO Gold Medal

    American Mathematics Olympiad

  • ✦

    All-India Rank 64, School Rank 1

    SOF International Mathematics Olympiad

  • 2025

    SASMO Bronze Medal

    Singapore and Asian Schools Math Olympiad

Say hello.

Based in
Waterloo, ON

Recruiting for a Summer 2027 co-op? Send a note here or email jeeshaanbakshi@gmail.com.

Spotted a bug on this site? .

↑↓ navigate↵ selectesc close