Henry Nguyen's Portfolio

šŸ‘‹ Hi, Iā€™m Henry Nguyen

šŸ“š I'm a computer science student at the University of Waterloo

šŸ‘€ Iā€™m interested in databases, graphics, public transit, and maps

šŸ¢ I'm currently looking for 2024 internships (January start or May start)

šŸ“« How to reach me: email h99nguye at uwaterloo.ca

Here are some of my projects:

Interactive travel time map - A map that shows you how far you can go using public transit. Routing done using Rust on GTFS data, and rendering done using Mapbox GL vector tiles

3d renderer - demo compiled to WASM An image buffer, triangle rasterizer, 3d renderer from scratch. Includes shadows, highlights, ambient lighting, and various performance optimizations. Compiled to WASM.

video

Transit map - (longer video here) - Map visualization of 1000+ Toronto buses travelling in real-time. Uses WebGL and some performance optimizations to do 60FPS rendering of that many buses. For a better video than the GIF, I have a Youtube video

Full-text search engine - A full-text search engine (like Elasticsearch). Demo includes near-instant textual search of all English Wikibooks articles. Uses db1 as the underlying storage engine

Custom DNS Nameserver - Authorative DNS nameserver (based off RFC 1034/1035) from scratch.

Coroutines and garbage collector in C - Userspace context switching, multitasking without threads, or stackful, preemptive multitasking. Implemented with some small inline assembly and register manipulation. Made a fair task scheduler based off the Linux CFS scheduling algorithm. Mark-and-sweep garbage collector in C. Implemented using pycparser to modify C code, and custom stack frames to find GC roots.

JSON database - A fully transactional, ACID database that can store infinite depth JSON objects. Primitive support for replicated transactions using gRPC.

db1 - A second iteration attempt to make a database. A simpler key-value database with static schema, fixed-size tuples, and columnar compression. Built for use by my search engine

Automatic ATC with A* pathfinding - Routes incoming airplanes to one of two runways while avoiding collisions. Done for a coding assignment.

Beeeeeep - Experiments with audio processing and modulation to send and receive binary data over sound using my laptop speakers/microphone at 1kbps.

Bridge Static Analysis - Solves forces on bridges and uses random search to minimize cost of bridge.

Interactive ontology visualization - Interactive knowledge graph visualization built using Cytoscape.JS and Python backend. Generated Docker images for easy deployment.

Othello game with AI - An othello game made for my university class. Implemented a minimax AI algorithm with culling.

Work Related Projects

Resume

If you're interested, my resume is available and LinkedIn and Github. I'd love to chat about anything!