Thanh To
Profile Picture

Hi, I'm Thanh To!

I'm a Software Engineering student looking for a new grad role

About me

I am a 4th-year Computer Engineering student at the University of British Columbia in Vancouver, BC working towards a career in Software Engineering. I love learning new technologies to create beautiful, fun, and useful solutions to existing problems. My experience and coursework so far have involved building web applications and cloud infrastructure. Outside of tech, I like to advocate for wellness and equality through student organizations. I am also a huge cycling and photography enthusiast!

I would love to chat about full-time opportunities upon my graduation in May 2021.

Check out my resume

Technical Projects

Our Faces

At nwHacks 2020, I met Eddy, another UBC Computer Engineering student. We both made an observation that each engineering department have some distinct demographics. Using OpenCV and associated libraries, we created a data set of all the faces graduated from UBC engineering by scanning previous yearbooks and create an average face for each specialization.

Once an average face was created, we thought it would be interesting to see whether scanned faces could be matched against the average face of each department. We then use the produced data to predict which engineering department a person is most likely to be in based on their facial feature.

Learn more

UbaeC

Seeing that relationships are already difficult enough, our team wanted to make the process simpler for UBC students.

As part of software engineering course, I joined 3 other teammates to develop a mobile online campus dating application which matches users based on their faculty.

I was responsible for the server side, so we had to design communication protocols with the Android client via HTTP requests and JSON, with the Android client. My main objective was to implement functionalities and matching algorithm on a Flask server using Python. The server interacts with a MySQL database, which stores all of the users' data. Toward the end of the project, I was able to use my visual art experience to assist the Android team in creating a more aesthetically pleasing user interface. We were voted as the best project in the class.

Internet Controlled Rover

Over the last summer, I designed and built a rover with pan/tilt head that could be controlled over the WiFi. It was originally one of the ideas for my project course that didn't get to go forward, so I decided to check it out myself.

In this project, the Raspberry Pi sever uses Node.js and Socket.io to exchange commands and data with the client's browser. The Raspberry Pi also sends commands to an Arduino, which controls the motors and servos. Then, seeing that other video streaming platforms are too limiting for my purpose, I went ahead and experimented with my own simple live streaming method using OpenCV and Node.js, which performed relatively well at 24 fps with little delay. To top it off, the client has a HUD-style UI, implemented using HTML5 with embedded Javascript and Canvas to give it an FPS games vibe. Finally, as an experiment, I used OpenCV to allow the pan/tilt head to follow a person. I plan to resume progress on this project when time allows.

Try it yourself!

Light Painting Stick

I have always had fun with light painting, it is a technique in which you try to draw something in mid-air with a small light source and capture it with a camera on long exposure setting. The result will be some kind of shape that looks like a hologram projection. One day, I thought about the possibility of having a computer to draw the shape instead of yourself. With a quick Google search, I found that the idea has already be done, but I want to give it a try anyway.

This project is inspired by Adafruit's NeoPixel Painter. While the hardware is similar, the software is completely re-written for improved ease of use, simplified code and wider support of image file extensions. In this project, an image file is converted to an array of RGB values in a text file using a Java Processing sketch. The Arduino will read the text file and display them on the RGB LED strip. The set up can be powered by any USB battery bank or directly to an USB port.

Try it yourself!

AutoPlant

Last year, I collaborated with a group of six to build an autonomous plant care system that seeds and waters plants, monitors the environment, and displays them on a website, where users could modify settings.

My job was to implement the processing module on a Raspberry Pi in Python, which communicates with the server, control an Arduino and process collected data. I also programmed the Arduino to control a robot arm, pumps, LEDs and collect data through various sensors. Finally, I set up a webcam and created a live stream using MJPG streamer so that users can monitor their plant on both local and remote networks.

UBC Rapid

I am currently the Public Relation person for UBC Rapid, an Engineering Student team, specialised in designing rapid prototyping machines, 3D printers in particular. In addition to the social media management, and customer outreach, I am also very involved with the operation and maintenance of the 3D printers.

Last year, I formed a team with 5 other members to build, modify, and improve a Prusa i3 mk2 3D-printer. We designed and constructed an enclosure to improve thermal insulation and added remote printing and monitoring capability using a Raspberry Pi and OctoPrint. Our mod ended up taking 2nd place in an internal competition, scoring high on print quality and creativity.

Learn more about UBC Rapid

Other Technical Experiences

In addition to the above, I have also accumulated experiences from the following school projects and assignments

  • Kernel Modification of OS161 (C)
  • Image Processing and Compression (C++)
  • Digital Signal Processing and Synthesis (System Verilog, FPGA)
  • RC4 Decryption Circuit (System Verilog, FPGA)
  • Simple Audio Player from Flash Memory (System Verilog, FPGA)
  • Reduced Instruction Set Computer (System Verilog, FPGA)
  • Autonomous Rover (Arduino)
  • Graph, Database and Virtual World Implementation and Processing (Java)
  • and More ...

Photography

Hello! My name is To and I have been taking photos for 3 years. I specialize in portraits photography but I also enjoy capturing the landscapes on my adventures. I believe photography helps people capture their memorable moments and share their interesting stories.

Portraits

Travel

Event

Rates

Portraits

1 hour | 10-20 photos | 100$

Events (Parties, Social Gathering, Graduations,...)

1 hour | 200$

Creative Projects

If you have an idea and would like to collaborate, let's get in touch!

Contact

For enquiries, please feel free to contact me for more information.

Videography

Commercial

Introducing Loogle

Nowadays, since everyone takes their phones into the bathrooms, we thought, why not let your phone take you to the bathroom? Introducing Loogle, a toilet searching mobile app... Just kidding, this is actually a satirical video I produced for our faculty film competition.

Narrative

The SegFault In Our Code

Sometimes the one you need isn't the person you want.

Travel

New Zealand's South Island

Highlights from our 2 weeks long road-trip around stunningly beautiful South Island of New Zealand.

My First Snow

Seeing snow for the first time ever, I decided to walk around UBC to capture the moment.

Bangkok - A Different Time

My attempt to experiment with the slow-motion and time-lapse techniques on my trip back to Bangkok.

Event

UBC Snowball Fight 2017

After 15 cm of snow and a power outage, what are better ways to celebrate?

Here We Glow Again

A short after-movie of our student society's annual social event.

×

Powered by w3.css