Hi!

Hi! I’m

I’m 

Jacky.a reader.a writer.curious.

About

1
2
3
4
5
{
  "currently": "@microsoft, @ubc, @nwplus",
  "location": "Vancouver, Canada",
  "name": "Jacky Zhao"
 }

Hi, I’m Jacky and welcome to my little corner of the internet! Currently, I’m based in Vancouver, Canada and study Computer Science at UBC. Read more about my non-work endeavours or my failure resume .

I’m still trying to figure out what I really want to do with my life but 3 things that are fascinating to me right now are cognitive systems, ethical tech, and infrastructure. You can find more about what I’m thinking about on my second brain .

I strongly believe that code can’t abstract responsibility away from problems. I spend a lot of time thinking about how to improve hackathon culture as a part of nwPlus and how to use technology ethically to make our world better with Reboot and Interact .

I’m working towards being a person who is unabashedly excited about the world and enables others to be the best versions of themselves. If anything in here piques your interest, let’s find a time to chat! It’s a magical world out there, it’d be a shame to explore it alone.

Feel free to download my resume, poke around my GitHub, or shoot me a DM on Twitter!

Recent writing

Newsletter

If you like this content and want to keep up to date with my latest ramblings and whatever else I've found interesting on the web, you should consider subscribing to my newsletter :) Not convinced yet? Read some previous issues here!

Prev

BentoML

2020/21 :: Open Source Contributor & MLH Fellows Class 0

Selected as one of 144 fellows to be part of the inaugural class of the MLH Fellowship program from a pool of 20,000 applicants. Implemented CLI command to containerize BentoML machine learning models, reducing dependence on external tool workflows. Proposed, implemented, and tested a distributed application-level locking module to allow multiple concurrent operations on models. Reduced docker image size by 60% to enable lighter deployments by building Debian-slim based Docker images for model server. Created Helm chart allowing users to deploy the model storage component to a Kubernetes cluster with a single command rather than needing to follow an entire guide.

  • Pytest
  • Docker
  • AWS Lambda
  • Helm
  • Kubernetes
Python, Dockerfile

nwPlus

2020/21 :: HackCamp Logistics Director

Lead a team of 4 in hosting HackCamp, a beginner-focused virtual hackathon, attracting over 900+ registrations, 500+ attendees, 3.2k+ livestream viewers, and $1200 in donations to charities. Co-lead the creation of a publicly available self-learning resources guidebook for tech beginners. Co-lead the development of our hackathon portal which aims to be a central information hub for hackers to do judging, relay announcements, and view the schedule Handled 200k+ interactions on the site during HackCamp.

  • Gitbook
  • Firebase
  • React
  • Github Actions
JavaScript

Hootsuite

2020 :: SWE Intern

Reduced mean time-to-acknowledge for alerts from hours to minutes by adding alerting and monitoring for key SLOs for several tier one services. Added monitoring dashboard and alarms for website cache with AWS CloudWatch. Increased accessibility on paid signup flow and added various end-to-end frontend tests. Implemented various A/B tests. Updated internal metrics collection tools to work with NGINX.

  • Twig
  • React
  • Jest
  • Cypress
  • Terraform
  • Ansible
  • Grafana
  • Prometheus
JavaScript, HCL, PHP, Scala

Hootsuite

2019 :: SWE Intern

Implemented a proof of concept service mesh to break Scala monolith service into microservices. Proposal was added to the company technical roadmap for 2023. Implemented an internal endpoint to assist with data compliance requests. Defined and implemented Service Level Objectives (SLOs) for 3 of Hootsuite's core internal services.

  • SQL
  • Envoy
  • Istio
  • Kubernetes
  • Docker
  • Sumologic
Go, Scala, Dockerfile, Bash

Projects

Portal

— zero-config P2P encrypted folder syncing

product huntgithub

Portal is a command line tool that syncs folders between multiple devices. Perfect for syncing photos/videos/code between many devices without using a 3P tool like GitHub, Email, or Google Photos. Built on top of the Hypercore protocol with Ink for the CLI.

  • Hypercore
  • React
  • Ink
TypeScript

Quartz

— create and publish digital gardens for free

sitegithub

Quartz is a tool and workflow to make maintaining and publishing a digital garden and second brain extremely easy. Think Obsidian Publish but free. Links are scraped and processed using a GitHub action written in Go and dumped into a YAML file to be rendered by some prefined templates with Hugo.

  • Hugo
  • Obsidian
  • Github Pages
Go, HTML, SCSS, JavaScript

Legist

— a platform to summarize policy for democracy

devpostgithub

Legist is a web platform that allows users to digest policies in an efficient and accessible manner. Legist allows users view automagically summarize pieces of policy + legislation while still maintaining the key takeaways, view and filter policies by category, and subscribe to periodic rollups on updates. Frontend was built with React + Typescript + Chakra UI. Text summarization was done using DistilBART, Named-entity recognition with BERT, and zero-shot text categorization using BART. All models were served with BentoML. Built at Hack the North 2020++, winning the Founder Institute Fellowship Prize and finalist among over 3000+ participants

  • React
  • Firebase
  • GraphQL
  • CockroachDB
  • Node.js
  • Flask
  • Docker
  • MailGun
  • BentoML
  • HuggingFace
TypeScript, Python, JavaScript, Dockerfile

ctrl-v

— a modern, open-source pastebin

sitegithub

ctrl-v is a modern, open-source pastebin with LaTeX and Markdown rendering support. Any user can create a paste without an account, with the ability to protect it with a password and set an expiry date. Additionally, ctrl-v does code highlighting as well as LaTeX and Markdown rendering. Pastes are stored in a MongoDB Atlas instance. Backend is a containerized Go service deployed on Google Cloud Run. Frontend is a SSR Next.js app hosted on Vercel.

  • React
  • Next.js
  • Vercel
  • styled-components
  • MongoDB
  • Cloud Run
  • GCR
JavaScript, Go, Dockerfile, HTML

reflect

— a mindful website blocker for the productive

sitegithub

reflect is a browser extension with 800+ active users focused around asking users to reflect before visiting distracting sites, helping to reduce mindless scrolling while still being able to get work done. During closed-beta, we created a Go service that logged user intents to a Cloud SQL database and did intent classification by serving a basic Flask API. We then trained an LSTM network in Keras on the closed-beta data and augmented it using NLP data augmentation techniques, reaching ~86% classification accuracy. Finally, the model was ported to Tensorflow.js where it runs in-browser within the extension which is written in Typescript.

  • Kubernetes
  • Docker
  • GKE
  • Cloud SQL
  • Keras
  • Tensorflow.js
  • Flask
  • CircleCI
TypeScript, Python, Go, Dockerfile

nanoDB

— a simple, easy, and debuggable document database

godocgithub

nanoDB arose out of many frustrations I've personally come across while prototyping, namely 1) difficulty of debugging data 2) faffing around with language specific drivers and 3) reference resolution. As a result, nanoDB stores everything on disk as a JSON document, has built-in reference resolution, and can be used fully through a REST API. Think of it like Redis but with MongoDB style documents — all of which is on-disk, human-readable, and through a REST API. The project is fully written in Go and is thoroughly unit-tested. It features a standalone server binary which creates a nanoDB server, as well as a shell which allows you to do some basic document inspection.

  • Docker
Go, Dockerfile

readAR

— an AR app to help those with learning disabilities

devpostgithub

readAR is a mobile AR app re-renders text to be more dyslexic-friendly, and adds context-dependent word definitions and images. A custom BERT model was created and trained for word sense disambiguation (WSD), achieving a 76.6% F1% score on the test dataset which is only ~5% away from state-of-the-art. This model is served through Flask on an Oracle VM Instance. The API is also responsible for our image processing pipeline, which is a conglomerate of different Azure APIs (OCR, Text Analytics, Bing Search). Built at TreeHacks 2020, winning the Microsoft Azure Champ Prize - Hack for Good.

  • PyTorch
  • Flask
  • Dockerfile
  • Azure
  • Oracle Cloud
Python, Dockerfile, Bash

Impostor

— group pomodoro timer with a twist

devpostgithub

Imposter is a productivity timer designed to keep friends on task together even when working remotely. The Chrome extension monitors your browser tabs, checking against a blocklist of unproductive sites. If one of those websites is visited, the backend will be notified via Firebase and will notify all users in the room through a WebSocket connection. Chat and character customization is also supported. Won track finalist and 2nd place for Disney prize.

  • Firestore
  • WebSockets
  • Node.js
  • Heroku
JavaScript

Speech2Braille

— a wearable device to transcribe speech

papergithub

Speech2Braille was created to help the over 360 million people in the world who have debilitating hearing loss. This project entailed creating an end-to-end speech recognition system using an Deep LSTM and a portable device to display braille. The device is able to recognize audio and transcribe it into Braille through the haptic feedback device via a novel neural network architecture. The feedback device is a self-made GPIO hat, consisting of 6 solenoids. The neural network itself is 2 layered LSTM-CTC network with 256 hidden cells in each layer, achieving 92% state-of-the-art word error rate on the TIMIT dataset. Won Silver and 10k in awards at the Canada Wide Science Fair.

  • Tensorflow
  • numpy
  • Raspberry Pi
Python, Bash

PacketBook

— blockchain banking without internet

devpostgithub

PacketBook is a financial accessibility chatbot, fully accessible through the SMS (text messaging) protocol. Users are able to issue simple commands to register, check their balance, deposit, withdraw, and send money. These commands are secured with two-factor authentication through a Flask server on Heroku with Twilio. The backend that handles transaction is written with Node and Express and deployed on stdlib. PacketBook is unique in that it leverages the Stellar blockchain and tokens (XLM) for its transactions which greatly reduces operating overhead with its minimal transaction costs (around 1/100 of a cent per transaction). Won top 30 and the SAP prize at nwHacks 2018.

  • MongoDB
  • Node.js
  • Express
  • Flask
  • Stellas
  • Heroku
JavaScript, Python

Personal Website

— the thing you're on right now

github

I got tired of adding divs and text manually everytime I wanted to update a project/add new stuff, so I decided to something more powerful that supports templating to do it for me automatically. It takes advantage of Go templates in order to generate the site from just a few config files! Now, updating the site is as simple as editing a YAML file. Continous integration and deployment done through Github Actions.

  • Hugo
  • lite.css
  • Github Actions
JavaScript, HTML, SCSS