
Hi, I'm William! I am currently
a New Grad from University of Waterloo
seeking Fall 2025 SWE opportunities
About me
I am a New Grad from the University of Waterloo with a degree in Mathematics, specializing in Combinatorics and Optimization. I have always been passionate about learning and problem-solving, which naturally led me to coding. I enjoy finding efficient, elegant solutions and am excited to keep growing as a developer.
I am a self-taught fullstack developer with a strong foundation in data structures and algorithms, object-oriented design and programming, and databases.
I love working on new projects with real functionality and solutions; from creating scheduling systems, profitable trading algorithms, to training MLP models to calculate the probability of winning a game such as League of Legends.
I am currently looking for a new grad or internship as a software engineer for Fall 2025.
When I'm not coding, I enjoy doing sports such as basketball, soccer, and volleyball. I also enjoy going to the gym, going on runs and hiking. When I'm feeling less active, you can find me playing games or watching Netflix. I look forward to get in touch!
My projects
Created a trading algorithm with python using mean reversion strategies on event-driven stocks.
- Python
- Pandas-ta
- Anaconda
Trained MLP model with PyTorch giving an accuracy of 73.07% of predicting the chance of winning/osing a game in LoL after 10 minutes of in-game time.
- Python
- Pytorch
- Pandas
- Numpy
Implemented a web scraper that tracks and compares product prices on amazon.ca
- Python
- Selenium
- Beautiful Soup
- Pandas
Creates, reads, updates, and deletes student information and stores student data in a SQLite table.
- Django
- Python
- Bootstrap
- SQLite
Used Dijkstra's algorithm where the user can create mazes and blockades to find the shortest path between 2 nodes.
- React
- Javascript
Designed a Google clone that mimics their search algorithm for links, titles, images, videos, and news.
- React
- Javascript
- Rapid API
- Tailwind CSS
My skills
Languages
- Python
- C++
- TypeScript
- JavaScript
Frameworks and Databases
- NextJS
- React
- Supabase
- Prisma
- MySQL
Tools and Libraries
- Git
- Github
- Selenium
- BS4
- ShadCn
- Pytorch
- Pandas
- NumPy
- MatPlotLib
My experience
Waterloo, Canada
- Built a full-stack SaaS platform with NextJS to help tutors facilitate scheduling and track lesson plans.
- Scaled to over 50 active users with a monthly growth rate of 110% post production deployment.
- Increased free-to-premium conversion rate to 25% through UX improvements and high-impact features.
- Developed dynamic front-end interfaces using Typescript, React, and Shadcn modular components.
- Optimized performance metrics (TBT: 0.12s, LCP: 1.5s) via code splitting, lazy loading, and caching.
- Designed scalable back-end with Supabase and Prisma ORM for real-time data, storage, and security.
- Integrated Auth.js with NextAuth for secure, token-based authentication and session handling.
- Used Stripe's API and webhooks to manage subscription events, billing states, and feature access.
- Implemented Agile SDLC with unit and functional testing, reducing post-deployment bugs by 80%.
- Automated CI/CD pipelines via Vercel and Github Actions, reducing release times by 50%
Vancouver, BC
- Provided lessons in algorithms & data structures and object-oriented programming in Python & C++.
- Created targeted problem sets and coding exercises to reinforce theoretical concepts and coding skills
Vancouver, BC
- Spearheaded a new patient scheduling proposal using data gathered with Python and MySQL.
- Increased patient care efficiency and allowed for more clients within a day.
Burnaby, BC
- Organized 8-week lesson plans for varying skill levels from toddlers to adults and handled PR problems in Mandarin and french.
- Worked with small team to keep all patrons in pool vicinity safe through active scanning techniques
Contact me
Please contact me directly at w43chang@uwaterloo.ca
Or
Connect with me on LinkedIn!