Currently interning at MantleToronto & Waterloo, ON

Hi — I’m Smeet. When something is slow, repetitive, or annoying, I code my way out of it.

Software engineer, Waterloo CS ’27, currently interning at Mantle. So far that habit has produced a customer-facing API platform, an on-chain settlement engine, nonprofit software, and a Slack agent that files its own pull requests.

Now @ Mantle · Previously Shopify · WageX · Hack the North 2025 winner

smeet — terminal
visitor@smeetshah.com:~$whoami

Smeet Shah — software engineer · Waterloo CS ’27

visitor@smeetshah.com:~$now

▸ building read-only APIs @ Mantle

▸ maintaining nonprofit software with Blueprint

visitor@smeetshah.com:~$
Prefer the command line?Open the terminal

Currently

$ now

Building

Mantle’s customer-facing read-only API suite, API-key platform, access controls, rate limits, and production integrations.

Maintaining

Nonprofit software with the Blueprint Software Foundation, including work that turns one-off builds into reusable free products.

Exploring

Agentic systems and community-ranked products — from Lattice’s MCP tools to TierBoard’s voting model.

Away from the keyboard

Basketball, badminton, and cricket — basically anything with something moving.

01 · Selected work

Things I’ve built

Product experiments, nonprofit platforms, client websites, and course systems — each one built around a concrete problem and the people who actually use it.

012025 Hack the North 2025 — Winner

Lattice

A Slack agent that turns bug reports into tickets and pull requests.

Agent architecture & backend

  • Python
  • FastAPI
  • MCP
  • Slack Bolt
  • Cohere
  • Deimos Router
Read the case studyGitHub$ project lattice

# bug-reports· thread

sam2:14 PM

checkout 500s when a cart has two discount codes — anyone else seeing this?

alex2:15 PM

yep, repro’d. @Lattice take this one?

Latticeapp2:15 PM

On it — reading the thread.

extract_reportseverity: high

jira.create_ticketBUG-142

repo.analyzecheckout/discounts.ts

github.open_pr#87

fix: dedupe discount codes before allocation#87

+38 −6·open — review requested

The whole pipeline, as it looks from inside Slack — the human keeps the merge button.

022026Live

TierBoard

Community-ranked tech companies, built from anonymous head-to-head votes.

Collaborative side project

  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL
  • Upstash Redis
Read the case studyLive site$ project tierboard
From one matchup to a community ranking
Head-to-head voteSupabaseBradley-Terry fitLive leaderboard
API boundaryValidationUpstash rate limitsAnonymous sessions

032026In progress

Oakville & Milton Humane Society

Volunteer pet-sitting tools for a local animal-welfare nonprofit.

UW Blueprint developer

  • TypeScript
  • Node.js
  • Express
  • PostgreSQL
  • Docker
Read the case studyProject repo$ project oakville-humane-society
A reliable path from volunteers to care tasks
Volunteer sign-inExpress REST APIPostgreSQLPet-sitting tasks
Developer workflowDatabase seedsDockerAuthentication

042025In progress

TextTheDo

Text your to-do list into existence.

Solo project

  • Python
  • spaCy
  • React
  • Node.js
  • Express
Read the case study$ project textthedo

remind me to email the TA about the midterm before friday

intentreminder
taskemail the TA about the midterm
dueFriday · 5:00 PM
priorityhigh (deadline detected)

Email the TA about the midterm

synced → Google · Apple Calendar

No form, no fields — the text is the input. spaCy does the organizing.

052024Open source

Watopoly

Monopoly rebuilt around Waterloo campus life, from OSAP to the DC Tim Hortons line.

Object-oriented programming course project

  • C++
  • X11
  • Make
  • Git
Read the case studyGitHub$ project watopoly
One game state, two synchronized views
Player commandGame engineBoard modelObservers
ObserversText displayGraphical displaySave / load

062024Live

Fat Bastard Burrito Website

A modern, component-driven restaurant site built to scale across locations.

Design & front-end development

  • TypeScript
  • React
  • Tailwind CSS
  • Figma
  • REST APIs
Read the case studyLive site$ project fat-bastard-burrito
From brand system to a scalable location experience
Figma systemReact componentsLocation APILive website
Component library20+ patternsResponsive statesReusable layouts

072023 — PresentLive

Jain Society of Toronto

Maintaining the community website, donation flow, and day-to-day digital experience.

Web developer & maintainer

  • Web development
  • SEO
  • Donation flows
  • Content systems
  • Design
Read the case studyLive site$ project jain-society-toronto
Keeping a community website useful over time
Programs & eventsContent updatesWebsiteCommunity
WebsiteDonation flowSEODigital menus

082025Open source

Blackjack Simulation Engine

A C++ engine that plays thousands of hands to see which strategy actually wins.

Solo project

  • C++
  • Docker
  • Git
Read the case studyGitHub$ project blackjack

bankroll from $1,000

$ ./simmer --hands 1000

Hi-Lo count
+$212
Basic strategy
−$41
Reckless
−$389
One representative run, 1,000 hands per strategy — discipline compounds, instinct pays the house.

092025Live

Caffeine Half-Life Visualizer

See exactly how wired you’ll still be at 4PM after a 3AM Red Bull.

Solo project

  • JavaScript
  • HTML / CSS
  • Vercel
Half-life math, summed per dose — the answer to “can I sleep tonight?” is a curve.

02 · Experience

Three co-ops, three teams

A customer-facing API platform at Mantle, commerce infrastructure at Shopify, and Web3 settlement systems at WageX.

Spring 2026

May 2026 — Aug 2026

Toronto, ON

Mantle

Current

Software Engineering Intern

8
production portfolio-management and CRM integrations

Mantle builds software for finance teams. I led the delivery of its first customer-facing, read-only API suite.

Secure programmatic access — schematic on purpose
  1. API key issued · validated · managed

    one platform controls programmatic access across every endpoint

  2. RBAC · AWS WAF ✓ allowed

    role boundaries and layered rate limits protect the API surface

  3. read-only API → portfolio and CRM integrations

    eight production integrations move data into customer workflows

What I shipped· 4 things
  • Architected and led the delivery of a customer-facing, read-only API suite in Go and TypeScript.
  • Owned the API key platform end-to-end, from data modelling and issuance to validation and management across every customer-facing endpoint.
  • Designed role-based access control across the API surface and introduced layered rate limiting with AWS WAF.
  • Expanded export infrastructure and delivered eight production integrations with portfolio-management and CRM platforms.
  • Go
  • TypeScript
  • REST APIs
  • API keys
  • RBAC
  • AWS WAF

Details of Mantle’s internal systems, clients, and architecture are confidential and intentionally left out.

I learned how to turn an internal data surface into a secure external product: clear contracts, durable access boundaries, and infrastructure customers can depend on.

Winter 2026 — back in lectures at Waterloo

Fall 2025

Sep 2025 — Dec 2025

Toronto, ON

Shopify

Software Engineering Intern

23%
increase in checkout conversion from discount-allocation work

Shopify Admin is the dashboard millions of merchants use to run their stores. On the Admin Foundations team I helped keep it fast and modern.

What I shipped· 3 things
  • Migrated legacy components to modern React and Polaris UI patterns, and refactored backend endpoints in Ruby on Rails.
  • Led development of improved discount-allocation logic across checkout and refund flows, reducing discount-related errors by 7% and increasing checkout conversion by 23%.
  • Contributed to accessibility and internationalization work so the Admin holds up across locales and assistive technologies.
  • React
  • Polaris
  • Ruby on Rails
  • TypeScript
  • GraphQL
  • a11y / i18n

Working in a codebase used by millions taught me to make careful, incremental changes and to treat accessibility and internationalization as part of “done.”

2025

Jan 2025 — Dec 2025

Toronto, ON

WageX

Software Engineering Intern

40%
lower gas costs via signed-message settlement

WageX is a sports-prediction platform that settles real-money events on-chain. I built the Web3 systems that make that settlement trustworthy.

How an event settles — 1,000+ real events ran through this
  1. NBA · LAL 112 — BOS 108 FINAL

    sports-data feed confirms the result

  2. oracle signs result sig: 0x8f3a…4c21

    off-chain, so no gas is spent proving what happened

  3. contract verifies signature → releases USDC escrow

    one on-chain step instead of many — ~40% less gas per settlement

What I shipped· 3 things
  • Led development of responsive, interactive React components in TypeScript and Tailwind across the platform’s interfaces.
  • Built scalable backend APIs with Next.js and integrated Solidity smart contracts on Sepolia to manage USDC-based escrows — connecting frontend, backend, and chain.
  • Designed and deployed a custom off-chain oracle with an automated event-settlement pipeline that processed 1,000+ real sports events.
  • React
  • TypeScript
  • Next.js
  • Solidity
  • Ethers.js
  • Hardhat

This was my deep end for trust-minimized systems — designing an oracle and settlement flow where being wrong or wasteful on-chain has a real, measurable cost.

03 · About

Notice a problem, build the fix

The short version of how I got here and how I think about the work.

I’m a Computer Science co-op student at the University of Waterloo, and most of what I build starts the same way: something is slow, repetitive, or annoying, and I decide to code my way out of it. That instinct has taken me from customer-facing API platforms to smart-contract settlement engines to a Slack bot that files its own pull requests.

Keep reading — how I think about the work

I like working across the whole stack — a React interface, the API behind it, and the gnarly systems work underneath — because the interesting problems usually live in the seams between them. I care less about which layer a problem sits in and more about whether the thing I ship actually gets used.

Tech for social good is a continuing part of that work. I build with UW Blueprint and, outside the university chapter, I’m a member of the Blueprint Software Foundation — maintaining projects after handoff and helping turn nonprofit-specific builds into free products other organizations can reuse.

Outside of work I think in basketball and probabilities: what makes a player break out, why people make the decisions they do, and how a small, well-made tool can quietly change a daily habit. That’s the same curiosity I bring to engineering — measure it, model it, then build the version that’s genuinely better.

Threads I keep pulling

Full-stack, product-first

React and TypeScript up front; Node, Rails, Go, and Python behind it — shipped into production, with accessibility and performance treated as part of “done.”

Shopify AdminTierBoard

APIs & developer platforms

Customer-facing APIs, API-key platforms, access control, and integrations — the infrastructure that makes a product useful beyond its own interface.

MantleTierBoard

Tech for social good

Building with UW Blueprint, maintaining shipped projects through the Blueprint Software Foundation, and supporting community organizations over the long term.

Oakville & Milton Humane SocietyJain Society of Toronto

AI & agentic systems

MCP tool architectures, LLM routing, NLP parsing. I’m most interested in agents that take real actions — with a human holding final approval.

LatticeTextTheDo

Systems, data & experiments

C++ simulation, on-chain settlement with signed oracles, small visualizations of things I was curious about. When a question needs numbers, I build the engine.

Blackjack engineWageX oracleNext-Up Lab

Away from the editor

Basketball & player development

I’ll happily argue about who breaks out next season and why. That itch is exactly what the Next-Up Lab on this site is built to scratch — a transparent model instead of a hot take.

Analytics & experimentation

I like turning fuzzy questions into things I can measure. Half-lives, win probabilities, prospect scores — if I can model it and see it, I understand it better.

Psychology & philosophy

Why do people decide the way they do? Thinking about cognitive biases and decision-making changes how I design tools — and how much I trust my own first instinct.

Building small tools

If something annoys me twice, I’ll usually build a thing for it. A caffeine half-life visualizer for 3AM Red Bulls started exactly that way.

Calls I had to make

Four decisions that could have gone either way — both sides had a real case, so the first step was checking my own head.

Lattice · Hack the North 2025

Should the agent merge its own fix?

Auto-merge

A fully autonomous demo — Slack thread to shipped fix with zero human clicks.

Open a PR(what I chose)

A human reviews the diff at exactly the moment judgment matters most.

Why “Open a PR” won: An agent that takes real actions is only useful if you’d still trust it on a Monday morning. Keeping a person on the merge button is what made every other risk acceptable.

Bias I checked: Automation bias — trusting a system because it’s impressive, not because it’s right.

Toolkit

Languages

  • Python
  • TypeScript
  • JavaScript
  • C / C++
  • Go
  • Java
  • SQL
  • Solidity

Frameworks & Libraries

  • React
  • Next.js
  • Node.js
  • Express
  • Ruby on Rails
  • FastAPI
  • Tailwind CSS
  • Polaris
  • spaCy
  • NumPy / Pandas
  • TensorFlow
  • OpenCV
  • Web3.js / Ethers.js

Tools & Platforms

  • Git
  • Docker
  • Linux / Bash
  • GraphQL
  • MySQL
  • PostgreSQL / Supabase
  • MongoDB
  • Upstash Redis
  • AWS WAF
  • Hardhat
  • Alchemy
  • Figma
  • Vercel

Practices & Domains

  • Data structures & algorithms
  • System design
  • REST APIs
  • API keys & rate limiting
  • Authentication & RBAC
  • LLM routing & MCP
  • NLP
  • Smart contracts & escrow
  • Accessibility & i18n

04 · Lab · Signature

Basketball Next-Up Lab

Who’s the best bet to be a bigger deal next season — not the best player today, but the best bet to rise? Tell the model what you value and the board re-ranks live.

Ratings reflect 2024–25 form · illustrative

Each player carries eight 0–100 signals: five on-court skills plus youth (derived from age), trajectory (how fast they’re improving), and availability (how often they’re actually on the floor). The Next-Up Score is a weighted blend of those signals — move a slider and every score and rank recomputes instantly. Each card shows the factors contributing most to a player’s score, so the number is never a black box.

Default board — top 4

Next-Up score

  1. 1

    Victor Wembanyama SAS

    83.2

    C / F · age 21

  2. 2

    Amen Thompson HOU

    80.2

    G / F · age 22

  3. 3

    Alperen Şengün HOU

    78.6

    C · age 22

  4. 4

    Jalen Williams OKC

    76.6

    F / G · age 24

05 · Contact

Say hello

I’m always glad to talk — about a co-op role, a project you’re stuck on, or who’s about to break out this season.

The fastest way to reach me is email. You can also find me on LinkedIn and GitHub, or type contact in the terminal.