Huakun Shen

Ask AI About Me

Skills

Languages

Python

Used for Machine Learning, Data Science, and prototyping.

Rust

Used to build desktop apps, high performance apps, and system level programs.

JavaScript

For Web.

TypeScript

I use TypeScript for instead of JavaScript all the time for type safety.

Bash

Using Linux as my daily computer, very famililar with bash scripting and Linux commands.

SQL

Used for persistent database querying, also familiar with SQL ORM in different languages (e.g. Prisma, TypeORM, SQLAlchemy)

Golang

Used to build high performance and high concurrency microservice (e.g. Kafka notification service and logging) and system-level API app (wakeonlan, clipboard monitor).

Java

TA a university Software Design course using Java.

C

TA a univeristy System Programming course using C language.

C++

Used to implement high performance algorithm, e.g. back testing, huffman encoding.

WebAssembly

Compile Rust to WebAssembly for cross-platform high-performance universal library as well.

Frameworks

React & Nextjs

First modern UI framework learnt.

Vue & Nuxtjs

Second UI framework learnt. Built many web apps/desktop application with it.

Svelte & SvelteKit

Favorite UI framework in terms of design.

Flask

Used for prototyping simple web APIs.

Django

Used to build more serious APIs.

Streamlit

Used for prototyping and visualizing Machine Learning and Quant projects.

Tauri

Build cross-platform, high-performance, small-footprint desktop applications using web for frontend and rust for backend.

Electron

Build extensible cross-platform desktop application.

Library

Tailwind

Using Tailwind for most of my frontend projects due to its flexible design and compatibility across UI frameworks.

Three.js

For 3D web model. Used wrapper react-three/fiber, TresJS (for Vue), Threlte (for Svelte)

Pytorch

Machine Learning.

Database

MySQL | Postgresql | Sqlite

For data persistence in desktop apps, mobile apps, and cloud service.

MongoDB

Document-based data persistence.

Neo4j

Used for storing graph-like data.

Redis

Caching, and distributed system communication with publisher-subscriber.

Prisma

Favourite database ORM which supports multiple SQL databases as well as MongoDB. With TypeScript support and also works with Rust.

DevOps

CICD

Familiar with auto-testing and auto-deployment.

GitHub Action

Most used CICD tool as it's pretty much free.

GCP Cloud Build

Used to build docker image, push to GCP artifact registry and auto-deploy to Cloud Run.

Docker

Package most of my projects into Docker image for more convenient distribution.

Cloud

AWS

Use S3 for storage; EC2 for deployment and ML; Lambda for serverless functions.

GCP

Cloud run for deploying container (docker) seamlessly without downtime.

Cloudflare

Pages, workers, and tunnel.

Firebase

For authentication service and data storing.

Kafka

Used for asynchronous actions such as notification.

K8S

For large-scale micro-service deployment.

Nginx

Using it as reverse proxy for SSL certificate and load balancing.

Vercel

Web app deployment

Netlify

Web app deployment

Design

System Design

Design large scale systems ready to scale up.

Software Design

Always follow the best software designs in my projects for code elegance.

Web UI Design

Build nice-looking web UI.

Video Editing

Use FCP, Davinci, Premiere Pro for editing YouTube videos.

Other

3D Printing

Personal habit. Enjoy the ability to create anything I want.

3D Modeling

Build my own model if not available online.

Piano

Amature.

Homelab

Host tons of services at home and expose to public internet with network penetration. (e.g. Plex, VPN, NAS, smart home, etc.)

Web Scrapying

Scraping API, text, images from websites for data analysis and fun.

Penetration Testing

Passionate about hacking, finding vulnerabilities in systems.

Drone

Aerial photography with drones, both cinematic and FPV drone.

Education

University of Toronto

Honours Bachelor of Science (2017 Sep. - 2022 Jun.)

Computer Science Specialist

  1. Artificial Intelligence
  2. Computer Vision
  3. Web and Internet Technologies

Statistics Major

Master of Science (2022 Sep. - 2023 Nov.)

Research on reliability of Computer Vision models

Publication

If a Human Can See It, So Should Your System: Reliability Requirements for Machine Vision Components’, B. C. Hu, L. Marsso, K. Czarnecki, R. Salay, H. Shen, M. Chechik, the 44th International Conference on Software Engineering (ICSE 2022)