About
I’m a Computer Science student at the University of Toronto who likes turning messy, large-scale problems into systems that quietly just work.
Across four internships at RBC and a fintech startup, I’ve shipped ETL pipelines, serverless infrastructure, and ML forecasting models. On weekends I’m a tech geek debugging life’s challenges with a dash of humour and caffeine — usually at a hackathon.
Currently studying B.Sc. Computer Science at University of Toronto (2022 — 2026).
Experience
May 2025 — Aug 2025
Software Developer · RBC — Royal Bank of Canada
- Built a Java/Maven ETL pipeline modernizing deprecated workflows, automating weekly 30GB+ transit-data processing into flat files for 12+ mainframe JCL jobs, replacing SOAP with REST APIs.
- Implemented automated PostgreSQL stored procedures to archive historical transactional data, reducing production database size by 15% and improving query performance.
- Cut $100K in maintenance costs by migrating RBC Express systems to ES6, ensuring full cross-browser support.
- Java
- Maven
- PostgreSQL
- REST
- ES6
Mar 2025 — Jun 2025
Full-Stack Developer · Next Unicorn — Fintech Startup
- Reduced re-render frequency by 60% via Redux for efficient global state management and caching in React Native.
- Built Dockerized Node.js microservices on AWS Lambda & API Gateway integrating MongoDB & Supabase to support up to 10k req/min; established a Jenkins CI/CD pipeline.
- Cut storage costs 30% with a media pipeline using S3 lifecycle policies, Lambda triggers for resize/compression, and CloudFront edge caching.
- React Native
- Redux
- Node.js
- AWS
- Docker
- MongoDB
Jul 2024 — Aug 2024
Back-End Developer · RBC — Royal Bank of Canada
- Benchmarked SARIMA against TensorFlow models in Jupyter using RMSE to optimize login-traffic forecast accuracy.
- Operationalized the winning model to automate resource allocation, cutting workload 30% and saving $360K annually.
- Python
- TensorFlow
- SARIMA
- Jupyter
Jul 2023 — Aug 2023
Software Engineer · RBC — Royal Bank of Canada
- Boosted test coverage to 95% for RBC’s Visa Rewards by automating key tests with Docker, Java & ReadyAPI.
- Improved API test reliability 25% with a WireMock & Postman mock-API suite, reducing UAT and production issues.
- Java
- Docker
- ReadyAPI
- WireMock
- Postman
Projects
A platform that showcases the portfolios of UofT students in one connected network.
- Serverless media pipeline using S3 presigned URLs for secure uploads, CloudFront edge caching, and Supabase metadata; automated image resizing with Lambda triggers.
- Scalable serverless mass-mailing workflow with AWS SES & Lambda — 10K+ emails per user with auto-scaling and 99% delivery success.
- Next.js
- Supabase
- AWS
- CloudFront
FITRIS
Winner @ JamHacksAn interactive fitness game that maps real exercises to Tetris controls via computer vision.
- React front end with a Flask + NumPy back end for movement detection and precise body-joint tracking.
- MediaPipe & OpenCV to classify 5+ exercises with 90% detection accuracy.
- React
- OpenCV
- PyTorch
- MediaPipe
- Flask
DevDuels
Winner @ HackTheValleyA web game that encourages effective code reviews through competition and real-time AI feedback.
- Responsive Next.js + Tailwind front end using lazy loading and code splitting for efficient rendering.
- MongoDB + GitHub API back end for auth, storage, and user integration.
- Context-aware feedback via embeddings & RAG with LangChain, semantically analyzing code.
- Next.js
- MongoDB
- LangChain
- Tailwind
Logbook
Jun 20, 2026 Taming React re-renders
Traded prop-drilling for memoized Redux selectors and React.memo on hot list rows, which cut wasted renders sharply. Lesson: profile first — useMemo everywhere is a smell, not a fix.
- React
- Redux
- Performance
Jun 8, 2026 Killing Lambda cold starts
Provisioned concurrency plus a leaner bundle (lazy-loading the AWS SDK v3 clients) dropped p99 cold starts from ~1.2s to under 300ms.
- AWS
- Lambda
- Serverless
May 27, 2026 Window functions > N+1 queries
Replaced a pile of running-total queries with one pass using SUM() OVER (PARTITION BY …). One query, far less app-side glue, and the planner does the heavy lifting.
- PostgreSQL
- SQL
