Hello! Jae Li here.

I am a software developer co-op at Zafin and graduate student at uOttawa. At Zafin, I am building data pipelines for analytics products to enable embedded analytics. I am also a member of the uOttawa Mars Rover team, where I am responsible for developing remote control systems. I am interested in researching and building software systems, especially in the domain of web technologies and robotics. Beyond programming, I am active in Ottawa's tech scene. You can find me in various tech events and meetups in town.

Things I made:

Friend Space

A photo-sharing social media web application that enables users to manage accounts, create posts, and interact with other users through like, comment, and explore functions. The application uses a blend of React and statically generated Jinja templates for the user interface and a Flask server managing an SQLite database and REST APIs. The application is hosted on AWS EC2.

Link Transfer

Link Transfer is a cloud-based file-sharing application built for fast and secure file transfer. This CLI-based application deploys AWS services to provision serverless functions (AWS Lambda) and object storage (S3). The user interface is a custom-built NodeJS application that interacts with REST API endpoints on a custom domain managed by Route 53.

Gather

Gather is a chat application that allows users to create chat rooms and chat individually or as a group. This application uses Socket IO to enable real-time messaging. The front end uses NextJS and React and the backend uses NodeJS. Containerized with Docker for local development and deployment.

Award Season

It's award season, which means you should nominate your favorite movies! This single-page responsive React (with Material UI components) application allows you to search movies, nominate them and export your nominations to refer back to them later.

Gitlet

An independent implementation of the version control system Git in Java. Gitlet supports most of Git's local functionalities: add, commit, checkout, log, as well as branching actions including merge and rebase.

PicoProlog

An implementation of prolog in OCaml including lexer, parser and evaluator. PicoProlog is built with Ocamlbuild and includes unit tests for each component.

WebSocket Server

A WebSocket server built according to the WebSocket protocol on top of NodeJS. The server establishes handshakes and processes messages according to data frames specified in the protocol. Function-wise, the server receives messages and sends them to all the clients connected to the server.

Jinja Generator

A static site generator built from scratch. This Python package takes Jinja templates and static files, and render HTML pages.

Made with ♥ in Ottawa