I am a driven UBC Computer Engineering student passionate about building impactful software and contributing back to the community. I have an abundance of experience working in teams to solve challenges with innovative software solutions, ranging from quantum computing pipelines to autonomous aircraft systems.
๐๏ธ Read More
In my spare time, I enjoy pursuing personal programming projects, cycling, playing soccer, flying drones, learning about new technologies, and taking landscape photos - you could say Iโm a full-time developer by day, and a full-time hobbyist by night. Beyond academic pursuits, I enjoy being a Teaching Assistant for aspiring computer engineers, as well as contributing to large-scale projects such as the development I led on UBC Uncrewed Aircraft Systems to place 3rd nationally in 2024.
My commitment to learning drives me to take on projects that require gaining new skills and pursuing challenges outside my comfort zone. I believe that continuous learning and embracing new experiences are pivotal to personal growth and adaptability.
I'm on a mission to build impactful technologies through scalable software, courageous innovation, and ambitious leadership while relentlessly pursuing my passion for contributing to technology to better society.
๐๏ธ Past Projects
โ๏ธ AWS Automation - CPEN 431
As part of UBC's CPEN 431, I developed deployment automation tooling using Terraform and Bash to streamline the provisioning of cloud infrastructure on AWS. The purpose of the project was to fully automate the otherwise manual deployment and testing of the distributed computing system we were building in the course.
I worked with a team of 3 others to replicate and evaluate the results of a quantum computing research paper titled "Exploring Hybrid Quantum-Classical Methods for Practical Time-Series Forecasting". We successfully reproduced the results of the paper by implementing both quantum and classical models for time-series forecasting using PennyLane.
I led as captain and also worked on the software sub-team as a lead for UBC UAS, a design team focused on designing autonomous drones and their support systems. The team repositories can be seen here. My focus as lead was keeping projects on track and supporting the 18 software sub-team members where needed. That being said, with my past experience on the team, I got to work on a variety of microsystems. Some of my notable contributions as both a developer and as lead are as follows:
- Improved cross-platform compatibility with Docker containers and made related CI/CD pipelines with GitHub Actions
- UASITL: Overhauled our simulation pipeline by supporting new vehicle types (planes and VTOLs) and building software images for additional computer architectures (ARMv7 and ARM64)
- Revamped the team website using a Golang framework (Hugo) to decrease load times from 10s to 0.7s
- Integrated a new camera system into the drone and software suite for use in machine vision
- ACOM: Running on the drone, this was our main communication method with the ground station for the software sub-team. I worked on adding support for controlling a winch system, monitoring RC connection, and keeping track of the battery usage.
- GCOM-X: Our previous ground station control software. I helped work on the frontend redesign, updated the backend API, integrated a Django server with the React frontend, and added a login page to connect to competition servers.
๐ป Personal Website
This is something I had long desired to work on. I had quite a bit of experience building websites with services such as Wix, WordPress, and Squarespace, but I didn't have much experience actually programming a website. I used React to build my site as it had applicable skills to UAS and was something I saw myself using in the future (although I understood it is far from the best thing to use for a static website). With the solid foundation I built, I now only make occasional tweaks to the site from time to time.
- Created a backend API in Python using Flask and SQLite with over 20 endpoints to authenticate users and serve files
- Designed and implemented the authentication flow which included session and authentication tokens, encrypted communications, hashed passwords, and automatic timeouts to meet OWASP security standards
- Reduced manual work by 7x with GitHub workflows to automate testing for all parts of the system, create app releases and executables, package the backend as a Docker image, and automated dependency updates
- Used Pytest to achieve 98% line and branch coverage as well as set up Postman to improve manual testing
*Code access is available upon request for all projects
Multi-Client Server - CPEN 221
- Constructed a server supporting multiple simultaneous clients capable of interacting and fetching tweets from Twitter
- Enabled dual-server routing so that either server can be connected to, and no interruptions occur if one goes offline
- Followed security protocols by hashing and salting all passwords and encrypting incoming and outgoing data via AES
- Implemented a Turing Complete 16-bit RISC machine using System Verilog on an FPGA board in 3 weeks
- Subdivided the machine into smaller modules to be designed, tested, and debugged more easily
- Utilized pipelining to increase operations per cycle by 300% and go beyond course expectations
Graphs, Games, and Interplanetary Travel - CPEN 221
- Collaboratively built the โKamino Gameโ in Java and produced the most optimal solution to win the course competition
- Implemented graph and tree data structures with associated algorithms while optimizing time and space complexity
- Exercised best practices including unit testing, documentation, and encapsulation to ensure quality and correctness
๐ค Quote Bot
This was a rehost of nakayoshi's Discord Quote bot which was taken offline in early 2022. In the process of rehosting it, I updated some of the bot's commands and patched several security vulnerabilities. A few weeks later, I also completed an overhaul of the bot with slash command support, improved error-handling, thread channel support, patched vulnerabilities, and other improvements. After the overhaul, the bot ran for free on Google Cloud without any issues. I kept the bot up to date with the latest Discord.js and dependency releases, before shutting it down 1.5 years later due to the release of Discord's native quote feature (message forwarding).
๐ SSC Scripts
This repository was home to different scripts for pulling information off of UBC's (now defunct) SSC and then notifying the specified emails of what new information was available. It used UBC's Webmail so that any user with a CWL could use the scripts without having to worry about what email service they use for their primary email. An example of one of these scripts is grades.py, which checked for when new grades were posted. It could check for multiple course grades at a time and had many other customizable options.
๐ค Autonomous Claw
This is a collection of the programming work that went into the autonomous claw project for UBC's APSC 101. The goal of the project was to semi-autonomously pick up objects of different sizes and weights and transport them to a drop-off location accurately and efficiently.
๐งฎ Harvard's CS50
This is a collection of the code I wrote for Harvard's CS50 that I am proud of and that was of interest to me. I took part in the course during the Spring 2021 session.
๐ก๏ธ UBC Bot
This was my friend and I's final project for CS50. It is a basic Discord moderation bot that has a mix of different commands. It is quite basic, but we used it as a way to learn about Discord.js and learn the basics for future Discord bot projects.
โ๏ธ Scratch
This is the Scratch project I made as part of CS50's Week 0 tasks. It is a simple but fun game with randomized music and an infinite scrolling background.
๐ Python Learning
This is a collection of the Python code I wrote for a high school programming class where we followed the lessons and tasks from Program Arcade Games. At the end, I also did a final project exploring machine learning using the Titanic dataset.
๐น๏ธ OpenProcessing
This is a site I used as part of one of my high school programming classes. It uses p5js and I used it to make a couple of different games and get experience with object-oriented programming and other common programming principles.
๐๏ธ Current Projects
๐ Homelab
I run a homelab to self-host a variety of services and manage smart home automation. My setup is centered around a custom-built NAS running Proxmox, which virtualizes key components: Docker for containerized services, Home Assistant OS for home automation, and HexOS (TrueNAS Scale) for storage management. Secure access is managed through Tailscale (a mesh VPN), with Cloudflare Tunnels used to selectively expose public services. The system also includes an ODROID N2+ that functions as a staging environment for testing new services prior to production deployment. Check out the repository for more details.




