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!
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.
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.
Software Development Engineer Intern @ Amazon
Vancouver, BC (May 2023 - Sep 2023)
Software Enginner R&D Intern @ Huawei
Markham, ON (Jan 2023 - May 2023)
Backend Developer Intern @ IBM
Markham, ON (May 2022 - Aug 2022)
Full Stack Developer Intern @ CAE
Richmond, BC (Jan 2022 - Apr 2022)
Full Stack Developer Volunteer @ Campus Nutrition
Vancouver, BC (Feb 2022 - Apr 2022)
Undergraduate Teaching Assistant @ UBC
Vancouver, BC (Jan 2021 - Apr 2022)
B.Sc. major in Computer Science (Co-op), minor in Data Science @ University of British Columbia
Vancouver, BC (Sep 2020 - May 2024)
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.
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.
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.
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.
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.
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.
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.
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.