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 TorontoHonours Bachelor of Science (2017 Sep. - 2022 Jun.)
Computer Science Specialist
- Artificial Intelligence
- Computer Vision
- 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)