Welcome to my personal website

I'm a PhD candidate transitioning into industry, looking for roles such as Financial Analyst, Quantitative Researcher/Analyst (capital and liquidity markets), Data Scientist, Machine Learning Researcher, Statistician, or Private High School Math Teacher (multilingual).

Languages: English (C2), French (B1), Mandarin (native).

Education

  • An associated degree from Seattle central college since 2018 in computer programming (Transferrable).
  • Graduated with a B.S in ACMS:SCNA in 2020, which stands for "Applied Computational Mathematical Science: Scientific Computing and Numerical Algorithm" at the University of Washington.
  • Graduated with a M.S in Applied Mathematics in 2022 with a thesis at the University of Washington.
  • Getting A degree of Ph.D in Mathematics, in progress (expected 2027), at the University of British Columbia, Okanagan. Working on optimization algorithms, the kind that help big statistical and machine learning models run faster and more reliably.

I use AI tools such as Claude Code in my research, mainly for running numerical experiments and helping discover theorems or counterexamples. My master's degree gave me a solid background in computational methods, and I can code well as a result. I know SQL, Pandas, scikit-learn, PyTorch, and other common data science and classical machine learning tools.

Work

  • Sessional Instructor for Math 100 Calculus 1, Summer 2026 Term 1. Sole instructor for a class of 40 students.
  • Machine Learning Intern at Genesis AI Corp via MITACS program, 2024. Built models to classify and forecast things from satellite images, and sped up data loading by 600% by analyzing and improving queries with EXPLAIN.
  • Doctoral researcher at UBC Okanagan since 2022. Designs and tests optimization algorithms, and has a paper on the topic currently under review.
  • Teaching assistant since 2019. Started with CSE 154, Introduction to Web Programming, at the University of Washington, which is how this website came to be. Then, during my master's, TA'd Introduction to Scientific Computing in the fall and winter quarters.

Skills
Technical (Math, Software, Data)

  • Python, Julia, SQL, PostgreSQL
  • Pandas, scikit-learn, PyTorch
  • Optimization, probability, statistics, numerical algorithms
  • Running experiments on HPC clusters
  • AI-assisted research workflows, such as Claude Code

Soft Skills (from the PhD)

  • Technical writing, and presenting research at conferences
  • Independent problem solving and self-directed research
  • Explaining complex ideas clearly, to experts and beginners alike
  • Collaborating with researchers from different backgrounds
  • Patience and persistence with long, uncertain projects

Leadership (from life in general)

  • Administration and classroom management
  • Public speaking
  • Curriculum design and grading/assessment
  • Mentoring and teaching
  • Being solely responsible for a group, such as a class of 40 students

Papers

I have the papers, on Google Scholar.

Research Notebook and Journal

My public notes, undergrad through PhD, on Obsidian Publish. I believe in open knowledge sharing, so I keep it organized and public. Covers variational analysis and convergence analysis for nonsmooth optimization with momentum dynamics.

GRE Passages
2019 Summer

Made with for the purpose of practicing GRE verbal reasoning tests and web-development

Page Link
Conway's Game of Life
2019 Fall

This is a Conway's Game of life written in javascript. It runs fasts and it's really cool.

conway's game of life slider gun

Page Link
A Peek into NP-Hard via The Knapsack Problem
2020 Spring

I wrote in details about the Knapsack problem, with mathematical proofs and Psudo codes and link to repo with implementations, topics include:

  • Primal/Dual Dynamic Programming.
  • Approximation Algorithm and their bounds.
  • Branch and Bound and Mixed Heuristic.
  • Extended Knapsack and Linear Programming.

Page Link Source Codes
Numerical Instability of the Extended Knapsack
2020 Summer

The Branch and bound algorithm for the extended knapsack, (or branch and bound algorithm for LP in general) experiences numerical instability due to the IEEE 754 representation of number. Which is a common standard for most programming language. Here we have a discussion on the following:

  • Catastrophic Cancellation as the culprit of deviation from the global optimal.
  • Visualizing how exactly Catastrophic Cancellations propagate in the Branch and Bound algorithm.
  • Catastrophic Cencellation plays the major role and compromises of using rational computations is not worth it because of efficiency.
  • Efficiency comparison with different solution to address the numerical instability with graphs.
  • Efficiency comparison of Branch and Bound implementations in python with Coin_CBC open souce Mixed Integer Solver.
  • Visualizing the Optimal solution with Matplotlib.pyplot.

Page Link Source Codes Link
K-Minimum Spanning Tree (Dead Project)
2020 Winter -> 2020 Summer

The K-Minimum Spanning tree's solution could be interpreted as a "Clusters on Non-Gaussian points". In this project, we are concerned with some of the variations of the Kruskal Algorithm and how it can be applied for Classfications proboem, more specifically:

  • Applied to High dimensional data such as the letter-transition matrices.
  • Applied to spacial points and discuss how it does the clustering.
  • Mathematical discussions and intuitive understanding.

This project failed.

L1, L2 Norm as Loss function for Polynomial Regression
Summer 2021

We are comparing the robustness of L1, L2 Norm as loss function when it comes to sensitivity to outliers in the data.

  • We use simple polynomials Regression.
  • We use non-parametric bootstrap for getting the model variance, with limited amount of data.
  • We look at beautiful graphs and plots, with transparent confidence band for the model.

Implemented in python, uses matplotlib, numpy and CVXOPT for solving the L1 Optimization problem.

boostrap l1, l2 loss function

Page Link
Using Conjugate Gradient Method to Deblur Images
Summer 2021

We are going to look into the conjugate gradient method in details and then apply it to the task of image deblurring.

  • We take a look into the math of conjugate gradient, lots of proofs and calculus are involved.
  • We take a look into the applications, lots of visuals and coding is involved.

the whole algorithm is implemented in python using numpy, uses matplotlib for visuals and scipy signal for speedy image convolutions.

alto bleh deblur example

Page Link Source Code Link
Conjugate Gradient Derived using Krylov Subspace
Summer 2021

Conjugate gradient method can be derived using the idea of minimizing the energy norm of the error vector over the Krylov Subspace.

  • Deriving the method.
  • Formulate it as exactly the same form as the previous discussion of conjugate gradient.
  • Point out the potential connection of CG with other iterative methods, e.g Lancosz Algorithm, and iterative methods like GMRes. They are made using the same mould.

No code is involved this is purely math.

decaying energy norm

Page Link
Proximal Gradient Descend for Lasso Path
Summer 2021

The frustrations with ADMM based Conic Solver and Julia Optimization Frameworks sparks my own efficient implemention of accelerated proximal gradient descend for the lasso path problem.

  • Motivations
  • Quadratic programming -> Challenges -> Fully derivevd Proximal Gradient and proixmal operator for L1-norm regularization.
  • Julia as the programming language, Julia Package Development, Results, further investigations and methods for the lasso path problem.

We have math and code and images.

decaying energy norm

Page Link Source Codes Link
My Master Thesis
Spring 2022

Thesis Title

Lanczos Algorithm and Conjugate Gradient

Abstract

We review results from the literature on the conjugate gradient algorithm for solv- ing symmetric positive definite linear systems and the related Lanczos algorithm. We derive the conjugate gradient algorithm from the more general conjugate direction method, using projectors. We establish error bounds using exact arithmetic theory and also discuss what can happen when floating-point arithmetic is used. We present numerical experiments to illustrate this behavior.

ritz value trajectory

Download Thesis Source Codes Link