Senior Software Engineer

DhairyaVyas.

Backend depth.
Frontend craft.
Product-minded, end to end.

I build web products end to end — APIs, data, and interfaces that hold up in production.

Toronto, Canada — 43.65° N5+ years in productionSenior SWE @ Deel

01 — About

I care about what happensafter the demo.

For the past five-plus years I've been shipping production software — APIs, databases, background jobs, multi-tenant SaaS, and the interfaces on top of them — plus the unglamorous machinery that keeps it all correct under real traffic and real data.

At Deel, my work runs on two tracks: building and scaling production web applications, and building lead-generation infrastructure — CRM integrations, campaign sites, and the ingestion and distribution pipelines that move leads dependably between them.

Products don't ship in layers, so I work across the whole stack — schema to screen. Data modeling and APIs on one side, interfaces and motion on the other, deployment included.

Role
Senior Software Engineer, Deel
Focus
APIs · Data · Interfaces
Base
Toronto, Canada
Range
Full stack — end to end

02 — Selected Work

Three systems,built end to end.

Case studies — not screenshots. Each one built end to end.

CashPattern

Personal finance automation — without giving up your bank credentials.

Multi-tenant SaaSBuilt end to endApr 2026 — presentcashpattern.com ↗

CashPattern imports CSV files from virtually any bank — no Plaid, no handing over bank passwords. Transactions are categorized automatically, recurring bills are tracked and reminded, and finances organize around goals instead of rigid budgets.

Under the hood it's a multi-tenant SaaS built end to end: a seven-tier categorization cascade that tries explicit user rules, learned merchant patterns, deterministic transfer parsing, a cross-tenant pattern pool, and brand and keyword matching — before it ever spends a token on an LLM.

The hard part

“The hardest problems weren't the AI — they were the boring correctness problems.”
  • AA transfer between your own accounts isn't spending.
  • BThe two sides of a credit-card payment aren't duplicate transactions.
  • CAn explicit user rule must outrank anything the system has learned.

Get these wrong and every report downstream is quietly corrupted — so the cascade is deterministic first, clever last.

Fig. 01 — Categorization cascade
01 · USER RULES02 · LEARNED PATTERNS03 · DETERMINISTIC PARSERS04 · CROSS-TENANT POOL05 · BRAND MATCHING06 · KEYWORD MATCHING07 · LLM FALLBACK
A transaction stops at the first tier that claims it. Most never reach 07 — which is why the AI bill stays boring too.

Outcomes

Status
Live in production
Proving ground
3 years of real financial history
Backend tests
~390
Release gate
Full E2E suite
Release time
Cut roughly in half
LLM usage
Last resort, by design
Full engineering detail
  • Seven-tier categorization cascade — user rules outrank everything
  • Learned merchant patterns, per tenant
  • Deterministic parsing for UPI / Interac / Zelle transfers
  • Cross-tenant pattern pool
  • Brand and keyword matching tiers
  • LLM fallback as the final tier only
  • CSV / Excel import with automatic column detection
  • Hard-block duplicate prevention
  • Per-batch import undo
  • Receipt extraction
  • PDF statement extraction using vision models
  • Household sharing
  • Separate personal / business workspaces
  • Stripe billing
  • Reporting suite with a custom cash-flow Sankey
  • Four-tier Git workflow with automated, E2E-gated releases

Stack

  • NestJS 11
  • TypeScript
  • MongoDB
  • Mongoose
  • React 19
  • Vite
  • Tailwind CSS
  • Stripe
  • Cloudflare R2
  • Gemini
  • Playwright
  • Docker
  • Railway
  • GitHub Actions

WealthAlign

An interactive acquisition experience for a financial planning practice.

Client workLead generation2026Preview build ↗

A marketing and lead-generation site built to convert visitors into advisory leads: a cinematic scene-based homepage, a SIP calculator, lead capture, and a booking flow.

The homepage is scroll-driven storytelling — a 500-particle canvas system assembles the brand logo as you scroll while the scene runs a light-to-dark narrative transition. Underneath it: five A/B-testable landing variants with stable URLs, a hidden client-review dock for feedback rounds, a design-token system, and a compliance-safe, JSON-driven content model.

Why it's here

An award-style frontend, engineered like a system.

Scene choreography up front; design tokens, variant testing, and a compliance-safe content model underneath.

Fig. 02 — Scene system
500 particles, one narrative — the scene falls from light to dark as the story descends.

Outcomes

Status
Deployed — domain launch pending
Infrastructure cost
$0 — fully static
Lighthouse (mobile)
99 · 100 · 100 · 100
Accessibility
0 automated axe violations
Full engineering detail
  • Five A/B-testable landing variants with stable variant URLs
  • Hidden client-review system with a variant dock
  • Cinematic scene-based homepage
  • 500-particle Canvas 2D system assembling the brand logo on scroll
  • Light → dark narrative transition
  • Custom cursor
  • Scroll-driven storytelling
  • Dark mode
  • Design-token system
  • Compliance-safe, JSON-driven content model

Stack

  • Astro 7
  • Tailwind CSS 4
  • React Islands
  • GSAP ScrollTrigger
  • Canvas 2D
  • Web3Forms
  • Render

Hitarth DaveArchitects

An editorial architecture portfolio for an Ahmedabad studio.

Client workArchitecture studio2026Preview build ↗

Hitarth Dave Architects needed a web presence as considered as its buildings: the practice, the founder's story, expertise across residential, commercial, and institutional work, selected projects, and process — presented as one continuous piece of visual storytelling, with photography, motion, and site-diary video.

The engineering brief was restraint. A visually rich, content-driven experience that stays fast and maintainable: static-first delivery, an image pipeline that does its work at build time, and motion that supports the content instead of competing with it.

Fig. 03 — Elevation study
Elev. A
Editorial by design — the studio's work leads, the engineering stays out of sight.

Outcomes

Status
Staging preview
Delivery
Fully static output
Imagery
Optimized at build time — WebP
Typography
Self-hosted variable fonts
Full engineering detail
  • Six-section narrative — practice, founder, expertise, work, process, contact
  • Project showcases with photography and site-diary video
  • GSAP-driven reveals and editorial motion
  • Build-time image pipeline with Sharp
  • Self-hosted variable typography — Jost and Newsreader
  • Generated sitemap and structured metadata
  • Deployed on Railway

Stack

  • Astro 7
  • Tailwind CSS 4
  • TypeScript
  • GSAP
  • Sharp
  • Railway

03 — Technical Depth

The manifest.

The day-to-day toolkit — chosen for boring reliability, swapped only when something genuinely earns its place.

01Core
TypeScriptJavaScriptNode.js
02Backend
NestJSExpressREST API architectureAuthN / AuthZMulti-tenant systemsBackground jobsData processing
03Data
MongoDBMongooseRedisDatabase designIndexingDeduplicationSearchData validation
04Frontend
ReactViteTailwind CSSAstroGSAPEJS

See 02 and 03 — both shipped, both live.

05Infrastructure
DockerGitHub ActionsAWSCloudflareRailwayRender
06Practice
Automated testingPlaywrightCI / CDGit workflowsObservability & loggingPerformance optimization

Primary depth

04 — Engineering Principles

Four rules that survivecontact with production.

  1. Correctness before cleverness

    A system has to behave correctly before it deserves to look impressive. Clever comes later — if it's still needed.

  2. Boring infrastructure is good infrastructure

    Understandable, observable, testable, maintainable. Exciting infrastructure is the kind that pages you at 3 a.m.

  3. Make the database earn its keep

    Good modeling and the right indexes beat another layer of infrastructure most days of the week.

  4. Ship the whole thing

    A product isn't done when the API works. The job ends when the whole thing is good — interface included.

05 — Contact

Let's build somethingthat holds up.

© 2026 Dhairya Vyas

dhairya.page — 200 OK