/

Zhonghao (Richard) Yang

  • Home
  • Education
  • Experience
  • Projects
  • Skills

Let's Connect

Hi, I'm Zhonghao (Richard) Yang

A Software Development Engineer

I' m a senior year student at UBC majoring in Computer Science with a minor in Data Science. I am passionate about the distributed systems and cloud computing field, and always keen to learn new technologies!

Testimonials

Richard is a brilliant and gifted software developer who joined my team as a backend developer intern. During his internship, he has not only shown his great technical skills, but also has brought a lot of positive energies to the team. He is a fast learner, a challenge seeker, very proactive, self-motivated, and goal-oriented. Richard was able to contribute to a new feature after three weeks of joining the team, this is very impressive. When he approached the implementation of the new feature, he also thoroughly investigated the related code areas and fixed bugs as discovered. When investigation tasks are assigned to him, Richard can come up with PoCs and great presentations in a timely manner, and share the knowledge with the rest of the team. Overall, Richard is a great developer to work with and I wish him all the best in his future!

Zhibo Zhang

Senior Software Engineering Manager @ IBM

Richard has always worked hard on the assignment he was given and has learned very quickly. He always verified his work and it was gone with good quality. He takes general feedback very well and immediately applies it. Over the workterm I saw many of his technical as well as soft skills grow signficantly.

Robin Grosman

Principal Software Engineer @ Huawei

Richard was very receptive to comments and has exhibited a passion to learn new technologies. He has also shown that he is willing to go far and beyond to get something done. Being someone in his first work term, Richard has exceeded all the expectations.

Gordon Wong

IT Architect @ CAE

Experience

Software Development Engineer Intern @ Amazon

Vancouver, BC (May 2023 - Sep 2023)

  • Designed and implemented a highly scalable, weighted priority queuing system with FIFO capabilities for Amazon’s internal notification platform using Java, resulting in a 95 % reduction in average wait time for high-severity items.
  • ADeveloped Lambda functions that interact efficiently with DynamoDB, incorporating mechanisms to prevent race conditions and ensuring highly scalable, robust, and reliable notification delivery to downstream clients.
  • chieved 99% unit test coverage using JUnit and Mockito, further supported by extensive integration and load tests.
  • Created 25+ CloudWatch dashboards to monitor summary statistics, and set up alarms for issue detection.
  • Architected and automated the provisioning of newly added AWS resources such as SQS, Lambda, DynamoDB, and CloudWatch using AWS CDK in TypeScript for reliable and repeatable deployments

Software Enginner R&D Intern @ Huawei

Markham, ON (Jan 2023 - May 2023)

  • Researched and developed a storage engine using C++ for a serverless and fully scalable distributed database system.
  • Parallelized read operations, achieving linear performance increase with respect to the number of worker threads utilized.
  • Implemented an Arrow connector and integrated Hive Metastore, enhancing metadata management capabilities.
  • Developed tailored Python scripts and conducted in-depth hash join performance benchmarking for Velox, ClickHouse and GaussDB, enabling precise system evaluation and pinpoint opportunities for optimization
  • Improved the hash build and probe time by 5% for numbers through the adoption of more efficient hashing algorithms.
  • Operated in a Linux based environment and crafted Shell scripts to optimize project compilation workflows.

Backend Developer Intern @ IBM

Markham, ON (May 2022 - Aug 2022)

  • Contributed to backend microservices using Java and Maven focusing on AI/ML features in IBM Cognos Analytics.
  • Integrated Conversation AI Assistant into Microsoft Teams by building a chatbot using TypeScript and Node.
  • Trained NLP models and integrated newer versions of Core NLP package that eliminated all the critical vulnerabilities.
  • Automated manual test cases using JavaScript and Selenium, enhancing test efficiency and reliability.
  • Utilized Jenkins for CI/CD infrastructure to automate the process of loading the latest build and deploy.

Full Stack Developer Intern @ CAE

Richmond, BC (Jan 2022 - Apr 2022)

  • Developed and maintained cloud-based SaaS solution for managing aviation training records using C#, ASP.NET and JavaScript for web application, and Xamarin.iOS for mobile application.
  • Rewrote the existing JavaScript and jQuery web app frontend with React and Bootstrap as a prototype.
  • Contributed extensively to developing many new features, including utilizing Azure Functions and Azure Service Bus to send user email notifications with data queried using Entity Framework Core, and added unit test coverage.
  • Refactored and improved the performance by 80% for updating all user’s data on mobile app with multi-threading.

Full Stack Developer Volunteer @ Campus Nutrition

Vancouver, BC (Feb 2022 - Apr 2022)

  • Organized GraphQL models from Django backend and lead the investigation for refactoring the backend with Headless CMS solutions.
  • Developed multiple frontend features using React and Tailwind, and fetched data using GraphQL API.

Undergraduate Teaching Assistant @ UBC

Vancouver, BC (Jan 2021 - Apr 2022)

  • Taught various Computer Science, Data Science and Statistics courses, including an upper-level Software Engineering course that instructed specification, design, validation, evolution and construction of modern software systems.
  • Received perfect evaluation scores from 100+ students in the most recent semester in categories including teaching ability, preparedness, and communication.
  • Taught large groups of students, resolved conflicts in project groups, and relayed student needs to professors.

Education

B.Sc. major in Computer Science (Co-op), minor in Data Science @ University of British Columbia

Vancouver, BC (Sep 2020 - May 2024)

  • Received Trek Excellence Scholarship (top 5%), and Faculty of Science International Student Scholarship.
  • Coursework: Software Engineering (97%), Computer Systems (92%), Data Structures and Algorithms (94%)
  • GPA: 3.9/4.0 (88%)

Projects

/

Werewolf

A popular Chinse board game designed for 6 to 12 players. For the fronend, it uses React and Bootstrap for styling, and utilized Firebase for user authentication. For the backend, it uses Express to develop the controllers and register routes. It uses MongoDB Atlas to store all the information and interact with the backend. It utilizes RESTful APIs to make CRUD operations to actively update player and room information.

  • JavaScript
  • React
  • Express
  • Node
  • MongoDB
  • Bootstrap
  • Firebase
/

Insight UBC

A full stack web application that helps UBC students to make insightful decisions. Built a query engine from scratch for the backend using TypeScript, Express, Node that is able to process information from metadata and response to queries with the required EBNF form. And implemented a Google Map frontend to display the shortest path between classrooms with building'abbreviation, as well as a web page that can query the past grade to make better decision for course registration.

  • TypeScript
  • JavaScript
  • Express
  • Node
  • Mocha/Chai
  • HTML
  • CSS
  • Design Patterns
  • Test Driven Development
/

Mewmazon

An online shopping platform that provides insightful analysis about the products for customers and sellers. This project contains basic SQL queries such as join, update, insert, delete, as well as advanced queries such as nested aggregation with group by and having, and division.

  • PHP
  • MySQL
  • Linux
  • Apache
  • HTML
  • CSS
/

To Do List

To-Do-List gives you the confidence that everything's organized and accounted for, so you can make progress on the things that are important to you. It has both a console version as well as a GUI version. And it is implemented with advanced design patterns such as Observable pattern and Iterator pattern to improve the user experience.

  • Java
  • Swing
  • JUnit
  • Design Patterns
/

Portfolio Website

Personal portfolio website built to showcase experiences and projects. It is implemented with Ract and styled with Tailwind. It is deployed on Vercel and configed to a custom domain. Vercel build a pipeline to automatically deploy from Github repository.

  • React
  • Tailwind
  • Next
  • Vercel
  • Node
  • Firebase
/

Happy Community

This project aimed to provide an online platform for people to write diaries, share stories, and make friends. User can write daries and our LSTM machine learning model will analyze a happiness score on a scale of 100. User also able to review the history and post stories in the community.

  • JavaScript
  • Python
  • MySQL
  • Flask
  • Machine Learning
/

Shifty Quad Tree

Portraits an image with a blocky effect, and applying dynamic programming to speed up the computing process. The original image will be represented in memory as a binary tree whose nodes contain information about rectangles. Splits are performed so as to minimize hue variability across the resulting rectangles.

  • C++
  • GDB
  • Valgrind
  • Linux
  • Dynamic Programming
/

Password Decoder

Password decoder can help crack the password stored with hashing and salt strategy given the hash code. It will use a brute force strategy and perform parallel search to help systematically search the password. It uses a thread pool implementation to control multiple threads to maximize efficiency.

  • C
  • GDB
  • Linux
  • Multi-threading

Skills

Programming Languages

/

Java

/

C#

/

C++

/

C

/

Python

/

TypeScript

/

JavaScript

/

PHP

/

SQL

/

Bash

/

HTML

/

CSS

Frameworks

/

React

/

Node

/

Django

/

ASP.NET

/

Xamarin

/

Selenium

Databases

/

MongoDB

/

MySQL

/

PostgreSQL

/

Oracle

Tools

/

Git

/

Docker

/

Jenkins

/

Azure

/

AWS

/

Firebase