Portfolio UMBC · B.S. CS · Class of ’27

Just a CS student refusing to feel ordinary.

Saumya Patel

Full-stack developer, Python developer and CS peer tutor.

SWE intern at HeadsUp (summer ’26, React Native + Firebase), CS peer tutor at UMBC, and builder of campusly.us (100+ users).

Scroll
Hello Hanover, MD
(01)— About

I'm Saumya — a CS junior at UMBC who ships real products, not just demos.

Somewhere between a 3.8 GPA and a long string of late-night side projects, I figured out that I learn faster by shipping than by studying. So I do — .edu OTP auth, Supabase Realtime DMs, OpenCV blink detectors, cross-platform React Native screens, an ElevenLabs speech pipeline. Whatever the problem rewards, I pick up and wire together.

  • 3.8GPA · President's List
  • 100+Active users on Campusly
  • 15+App screens shipped at HeadsUp
  • 3Intro CS courses I tutor · CMSC 201–203
(02)— Selected Work

Real projects, real users, live in production.

A Experience Roles & internships

01 / Software Engineering Internship Jun 2026 — Aug 2026

HeadsUp — Software Engineering Intern

My best build to date. Shipped 15+ screens of a cross-platform (iOS / Android / web) app in React Native & Expo — a full light/dark design system with reusable components, WCAG-checked colour tokens, and custom data visualisations (usage spectrum, calendar heatmap, weekly charts). Architected the Firebase / Firestore backend across nine collections with role-based security rules that enforce admin-only actions at the database layer, then built a group-challenge & leaderboard system — three goal types scored day-by-day, a points engine, multi-recipient invites, and a role-scoped admin console. Backed by a real testing workflow: static analysis, live-database validation, and TestFlight beta distribution for user-acceptance testing across all three platforms.

React NativeExpoFirebaseFirestoreRBAC
02 / Peer Tutor · UMBC Aug 2026 — Present

UMBC Computer Science — Peer Tutor

Selected on faculty recommendation to tutor all three of UMBC's introductory CS sequences — CMSC 201 (Python), CMSC 202 (C++ / OOP) and CMSC 203 (Discrete Structures) — the full span of the department's foundational coursework. In walk-in sessions I coach debugging, data structures, memory management and proof techniques, but the real goal is teaching students to read a compiler or runtime error themselves — so they leave able to debug without me, not just with today's bug fixed.

PythonC / C++Discrete MathTeaching
03 / Student Ambassador Feb 2026 — Sep 2026

TutorMatch — Student Ambassador

Running multi-platform referral campaigns across UMBC Snapchat communities, Instagram, TikTok and Discord to recruit tutors for TutorMatch's Ed-Tech matching platform. Owning the full outreach-to-onboarding funnel, with referral attribution tracked through a Stripe-integrated ambassador portal that verifies commission per completed session.

GrowthFunnel opsStripeUMBC
04 / Consulting simulations 2023

Forage · BCG X · Accenture · KPMG

Three virtual internships across data science, analytics & consulting. Framed hypotheses, ran EDA, engineered features, trained a supervised model, then packaged findings into client-facing presentations in each firm's voice. A good reminder that a chart is only as good as the story you wrap around it. Full write-ups live on my LinkedIn experience page.

PandasNumPyscikit-learnTableau

B Projects & wins Shipped, launched, awarded

05 / Hackathon · Health AI Sep 2026
Winner · MLH Best Use of ElevenLabs · hackUMBC 2026

Carryover — AI Medical Notes You Can Trust

AI scribes turn a doctor's visit into a note — then stop. Carryover picks up where they leave off: every sentence in the draft cites the transcript lines it came from, confidence is scored in code instead of taking the model's word for it, a separate audit pass flags what the note missed, and the signed note becomes an office task list plus a plain-language patient summary in English or Spanish. Built with my team in one weekend on ElevenLabs Scribe v2 Medical, Gemini, Next.js and Postgres.

ElevenLabsGeminiNext.jsTypeScriptPostgres
06 / Quant · Python Summer 2026

OptionsLab — Options Pricing Engine

A from-scratch options pricing engine in Python with three independent pricers — Black-Scholes-Merton (closed-form), a binomial CRR tree and Monte Carlo GBM with antithetic variates — cross-validated for convergence against each other. All five Greeks derived analytically, multi-leg strategy P&L (spreads, straddles, iron condors), and a live implied-volatility smile solved strike by strike with Brent's method on real options-chain data. Streamlit dashboard, pytest suite.

PythonNumPySciPyStreamlitpytest
07 / AI · Local LLMs Sep 2026

Prism — Privacy-First Local LLM Hub

Chat with local models over your own documents, with zero cloud calls. Hybrid RAG fuses dense embeddings with BM25 via Reciprocal Rank Fusion, de-duplicates with MMR and answers with inline citations — and a self-generating eval suite proves retrieval works (Hit@K, MRR, latency). Routes each prompt to the best local model, benchmarks up to six side by side, and ships hardened auth (scrypt, HMAC-signed sessions, rate limiting) plus a Terraform-deployed demo on S3 + CloudFront via GitHub Actions OIDC.

TypeScriptNext.jsOllamaSQLiteTerraform
08 / Full-stack Mar 2026

Campusly — Campus Social Network

Live in production at campusly.us with 100+ active users. Built .edu email OTP auth, a PostgreSQL schema for posts, comments and DMs, and enforced Supabase Row-Level Security so data stays isolated per user and campus. Glassmorphism UI with staggered entrance animations, powered by Supabase Realtime.

Next.jsSupabasePostgreSQLVercel
09 / Computer Vision Apr 2025

MoodMap — Real-Time Fatigue Tracker

A webcam-based drowsiness detector using the Eye Aspect Ratio (EAR) and blink frequency. Calibrates a baseline per user, then triggers audio-visual alerts when alertness dips below threshold — made for late-night study sessions that shouldn't become late-night drives.

PythonOpenCVJavaScriptHTML/CSS
(03)— Taste

A product is only as good as the details nobody asked for.

I care about the twenty milliseconds between a click and a response, the weight of a single word in a button, and whether an empty state looks lived-in or abandoned. Code is the easy half — taste is what makes a junior project feel like a real product.

Glassmorphism UI Microinteractions Editorial typography Thoughtful empty states Real-time UX Accessible colour Motion with a purpose Honest loading states
(04)— Process

The loop behind everything I ship.

Four steps I run on every build — a weekend hackathon or a production app. Here's each one, with the receipts.

  1. 01
    Define

    One sentence. One number.

    Before any schema or screen, I write the problem as a single sentence and pick the metric that would prove it's solved. If I can't, I'm not ready to build — and neither is the scope.

    ProofCampusly — “a network only verified students can join” → .edu OTP auth + campus-scoped Row-Level Security.

  2. 02
    Prototype

    Riskiest slice first. Real data, zero polish.

    I build the scariest part end-to-end before anything pretty. A rough prototype surfaces the hard problems in hours; a polished mock hides them for weeks.

    ProofCarryover — blank repo to a prize-winning demo in one weekend at hackUMBC 2026.

  3. 03
    Harden

    The work users never notice.

    Auth, access rules, empty / loading / error states, tests, and a fallback for when an API goes down. Boring on purpose — it's what turns a demo into something you'd trust with real users.

    ProofHeadsUp — role-based Firestore security rules across 9 collections, plus static analysis and live-database validation.

  4. 04
    Ship & listen

    Production is the real spec.

    Ship early, put it in front of real people, and let what they actually do — not what I assumed — set the next priority. The version that launches is a first draft.

    ProofHeadsUp — TestFlight beta for user-acceptance testing on iOS, Android & web. Campusly — live with 100+ users.

process.py Python
# process.py — the loop behind everything I shipasync def ship(idea: Idea) -> NoReturn:    # 01 · define — one sentence, one number    problem = define(idea).in_one_sentence()    metric = problem.success_metric()     # 02 · prototype — riskiest slice first, real data    build = await prototype(problem.riskiest_slice())     # 03 · harden — the work users never notice    build = harden(build, [auth, rules, edge_states, tests])     # 04 · ship, then listen — production is the real spec    app = await deploy(build, env="production")    async for feedback in app.real_users():        await app.iterate(feedback, toward=metric)
⎇ main Ln 1, Col 1 UTF-8 · Python
(05)— Let's build

Have a thing that deserves to be built well?

Reach me at saumyapatel566@gmail.com
Now

Junior at UMBC (graduating Dec 2027) and a CS Peer Tutor for the intro CMSC sequences. Summer ’26: SWE intern at HeadsUp. Fall ’26: Best Use of ElevenLabs at hackUMBC. Open to internships & co-ops — engineering, product, data, or any role where I get to ship work real users see.

Based in

Hanover, Maryland.
Open to roles anywhere on the East Coast and remote. English & Hindi fluent, Gujarati native.