About

Hi there! I'm Tianle Wang, you can also call me Thomas.

My online username is Yorafa, which doesn’t have any particular meaning; I just wanted a unique username.

Education

From September 2018 to April 2019, I studied at Columbia International College with an average grade of 92/100.

From September 2019 to April 2020, I attended the University of Toronto's International Foundation Program.

Then, from September 2021 to June 2023, I pursued a Specialist in Mathematics and Its Applications, with a Minor in Computer Science, at the University of Toronto - St. George Campus.

Extracurricular

During 2021-2023, I worked as a CSC tutor, helping students with Python and C programming. I also interned as a Data Scientist at Shanghai Yuliang Package & Print Ltd., where I handled data organization, cleaning, and reporting tasks for the company.

Apart from this, I’m passionate about learning new knowledge and applying it in practice.

While studying data structures, I frequently used Leetcode to solidify my understanding. However, I noticed that Leetcode lacks detailed statistics on questions completed daily or weekly. To address this, my roommates and I decided to develop a web application to help users effectively track their daily problem-solving progress. That is, UTLeetcoder.

After each assignment release, I spent significant time manually calculating my course grades and their impact on my overall GPA. To streamline this, I developed a grade management application, UTodo, aimed at helping users efficiently track and manage their academic progress.

While using the open-source application lc-rating, I noticed that data updates were slow and lacked some desired functionalities. To improve user experience, I added a target page-switching feature and wrote scripts for automating data processing to enhance update efficiency. My contributions helped the project increase from around 100 stars to 200 stars.

Yorafa.com

In high school, I bought yorafa.com for the first time. Back then, I knew nothing about JavaScript, HTML, CSS, or even Linux and servers. After doing a little research, I was intimidated by the steep learning curve, so I opted for WordPress instead. WordPress had a strong community, and there were tons of automated scripts and an endless supply of themes readily available. That was the earliest version of yorafa.com, hosted on a Vultr VPS with WordPress configured through one-click scripts and custom themes.

Later, as I continued learning, I frequently forgot to pay for cloud services. My absent-mindedness didn’t stop there; I also never backed up my blog content, which caused my enthusiasm for the blog to fade for quite a while.

After graduation, however, I finally had ample time to learn more. I picked up a lot, and now I use CloudCone, which is the cheapest server I could find online. Of course, the performance isn’t great, but it’s good enough. During this journey, I discovered an important project, FRP (Fast Reverse Proxy), which allowed me to make use of my old computer again. The $20-per-year VPS I have only has a 2-core CPU, 1GB of RAM, and 60GB of storage. But my 6-year-old computer has an 8-core CPU, 16GB of RAM, and a 500GB hard drive. By using FRP, I can deploy applications locally and reverse-proxy them through my VPS for public access.

Docker also played a big role in this process. Initially, I wanted to learn Kubernetes, but along the way, I discovered Docker Swarm and Docker Compose. I found Kubernetes too complex for a personal user like me, and Docker Compose was perfectly sufficient. For managing my applications, I also found Nginx Proxy Manager, which has been really helpful.