Math student at UCalgary building backend systems,
SaaS products, and full-stack apps that ship to real users.
Currently leading software at AUV Calgary —
building ROS2 architecture and Gazebo simulation for an autonomous underwater vehicle targeting RoboSub 2027.
Leading the software sub-team for a founding-year autonomous underwater vehicle team,
building everything from scratch toward our first RoboSub 2027 competition entry.
Designed the ROS2 architecture, set up the Gazebo simulation environment, and shipped the team's public website.
Designed the ROS2 node architecture — auv_control (thrust), perception_mock (object markers), camera bridging, and TF tree
Built the Gazebo simulation environment with custom Tethys AUV model, RoboSub 2025 world, forward + downward cameras, and RViz integration
Shipped the team website — React + Vite SPA with team profiles, vehicle page, blog, docs, media gallery, sponsors, and judges hub
Leading a 5-person software sub-team across simulation, perception, and controls
founding team — built all software architecture decisions from zero, no handoff
Founded MistLab — an independent software studio that builds production web apps, SaaS platforms, and digital products for clients.
End-to-end delivery from architecture to deployment across four shipped products.
Built and shipped 4 client products — Khutba (SaaS), FitraGym (booking), CycleBreaker (wellness), NikahNet (matchmaking)
Full ownership of every engagement: requirements, system design, implementation, deployment, and post-launch support
Building the production backend for a women's fitness centre booking system —
Express + Prisma + PostgreSQL, replacing a 3,648-line localStorage prototype with a real server.
Two portals (Community & School), four roles (member, student, trainer, admin),
13 Prisma models covering bookings, payments, memberships, credits, and audit logging.
Credit ledger via SUM-delta pattern — no running balance to desync, atomic capacity enforcement
Built a multi-tenant SaaS platform for mosque sermon planning and delivery.
Architected the full stack — Next.js frontend, Prisma ORM, PostgreSQL — with session-based auth, RBAC,
Stripe subscription billing across 3 tiers, and 18 API route groups.
Engineered Stripe integration with webhook-driven subscription lifecycle (Personal / Team / Institution tiers), prorated upgrades, and invoice handling
Implemented session-based auth with RBAC, mosque invitation system, and multi-imam collaboration across organizations
Designed a 4-season × 16-slot annual plan data model with elastic sub-bouquets and Hijri calendar interleaving
Built rate limiting, CSRF protection, input sanitization, and structured logging across all 18 route groups
Resend transactional email, Prisma migrations, and automated data-export pipelines
full ownership — from data model design to Stripe billing to deployment
Built the Express + Prisma + PostgreSQL backend for a science-based
addiction recovery education platform serving youth. JWT auth with silent refresh, role-based access (User/Admin),
full admin CMS, automated email system, and a rule-based risk prediction engine.
Recovery tools: private journal with mood/craving/stress tracking, HALT indicators, daily check-ins, recovery event logging
Rule-based risk prediction — 7-day and 30-day trend aggregation, trigger frequency, risk scoring with suggested actions
Full admin CMS: articles, courses with multi-lesson paths, videos, quizzes with scoring, resources, and 36-field homepage editor
A Muslim community matrimonial platform serving real users in production.
React + Vite frontend on Vercel, Express 5 + Prisma + PostgreSQL on Railway,
Redis for rate limiting, Cloudflare R2 for photo storage, and Socket.IO for real-time messaging.
JWT auth built from the RFC — no Auth0, no shortcuts.
Migrated live database from SQLite to PostgreSQL — zero data loss, zero downtime
I'm a Math student at the University of Calgary
who builds backend systems and SaaS products that ship to real users.
I care about the engineering underneath — not just whether it runs, but whether it's correct, maintainable, and ready to scale.
all 5 products are live in production — not localhost demos, not course assignments.
Every project on this page is live and serving real users.
My approach to auth, security, and data integrity is the same regardless of the project:
JWT auth from scratch, rate-limited endpoints, Zod validation at the boundary, and Prisma schema modelling before writing a single query.
These aren't features I add later — they're how I start.
Coming from pure mathematics, I think in systems and invariants.
I ask why before I ask how. I've migrated a live production database without losing a single row,
designed a 64-slot elastic data model for a SaaS sermon planner,
built an atomic credit ledger and waitlist chain for a client gym booking system,
and led a 5-person software team building ROS2 architecture from scratch — all as a student,
all shipped, all live.
proof-first. then code. always.
currentlySoftware LeadAUV Calgary · University of Calgary
studyingMathematicsUniversity of Calgary
all live in production5 shipped productsnikahnet.net · khutba.net · fitragym.ca · cyclebreaker.net · auvucalgary.ca
team led5 engineersROS2, Gazebo sim, perception & control
based inCalgary 🇨🇦open to remote
Security isn't a feature
I implement auth correctly regardless of what the app is.
Refresh token rotation, rate-limited endpoints, input validation —
these are engineering defaults, not decisions I make per-project.
I read the RFC before I write the implementation.
no Auth0. no shortcuts. just understanding.
Systems before syntax
Pure math trained me to model a system completely before touching the keyboard.
Prisma schemas, credit ledgers, elastic data models — I architect for correctness first.
I've migrated a live production schema mid-flight without data loss.
invariants first. implementation second.
Internals over abstractions
I read docs and source code. I understand Stack Overflow answers before using them.
Shipping to real users taught me what no textbook could — edge cases at 2am,
schema gaps you only see under load, the difference between working and correct.