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
๐๏ธ ๐ โ๏ธ - IBM
I worked as a software developer intern on the IBM Skills Network team. The team develops applications to enable 7+ million users to be able to learn new concepts and technologies in interactive environments.
I led as captain and also worked on the software subteam as a co-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 co-lead was keeping projects on track and supporting the 18 software subteam 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 co-lead can be seen below as well as in the past projects section.
- Improved cross-platform compatibility with Docker containers and made related CI/CD pipelines with GitHub Actions (E.g. ACOM)
- 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 an opensource Go framework (Hugo) to decrease load times from 10s to 0.7s
- Increased team documentation and task tracking by over 5x after integrating Jira and Confluence into our workflows
๐ป Personal Website
This is something I had long desired to work on. I have quite a bit of experience building websites with services such as Wix, WordPress, and Squarespace, but I didn't have much experience with actually programming a website. I used React to build my site as it has applicable skills to UAS and is something I could see myself using in the future (although I understand it is far from the best thing to use for a static website). I am happy with my current implementation but I am looking to improve it going forward.
๐ D-Wave Quantum
I worked as a DevOps Co-op to improve existing systems and introduce new technologies. Although none of the code or systems I have developed are public, check out my LinkedIn for a summary of my work.
- 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
- Integrated a new camera system into the drone and software suite for use in machine vision
- Reduced image streaming latency from 12s to 1s with a shell script running on an onboard Linux microcomputer
- ACOM: Running on the drone, this is our main communication method with the ground station for the software subteam. 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 frontent, and added a login page to connect to competiton servers.
๐ค Quote Bot
This is 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 after, I also completed an overhaul of the bot with slash command support, improved error-handling, thread channel support, patched vulnerabilities, and other improvements. Since the overhaul, the bot has been up and running for free on Google Cloud without any issues. I continue to keep the bot up to date with the latest Discord.js and dependency releases.
๐ SSC Scripts
This repository is home to different scripts for pulling information off of UBC's SSC and then notifying the specified emails of what new information is available. It uses UBC's Webmail so that any user with a CWL can 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 checks for when new grades are posted. It can check for multiple course grades at a time and has 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
Leveraging the synergy between Tailscale and Home Assistant, I've established a distributed home server network alongside a home security system. My tailnet (Tailscale network) includes a variety of devices including Linux, macOS, and Windows machines as well as Android smartphones, an Apple TV, and a Google Chromecast. With a fine-tuned tailnet policy file I can securely remote into other devices, route my traffic through selected devices, and restrict the access that certain devices have (e.g. smartphones being used as cameras can't access other devices). This setup not only facilitates the execution of projects and applications on continuously connected remote devices but also enables the creation of a robust network of cameras using repurposed smartphones.
The security system I've implemented involves a Dockerized Home Assistant instance operating on my Linux machine. This setup offers a live feed of camera footage, camera management functionalities, and real-time alerts for motion detection events.
My future roadmap involves expanding the tailnet by integrating additional devices to amplify computational capabilities and augment the surveillance network by incorporating more cameras. Moreover, I plan to set up more Home Assistant automations to automatically record motion events based on specific conditions (such as time or an armed status) and implement an efficient system for managing and purging older recordings.