🌈 Hello 🌤

Welcome to my website, where I've added my favorite projects so far. I like web development, systems programming, and baking.


Systems Projects


Malloc Lab: Writing a Dynamic Storage Allocator

15-213 Intro to Computer Systems Class Project, Spring 2022

Wrote my own version of a dynamic memory allocator consisting of the malloc, free, realloc, and calloc functions in C. When memory is allocated through malloc, space on the heap is reserved in the form of blocks. An allocated block consists of a header and a payload, while a free block consists of a header, footer, and padding for alignment. Kept track of the free blocks in the heap by size through a segregated free list structure, making lookup for a free block in constant time. (3 weeks, 5,000+ lines of code)


Proxy Lab: Writing a Caching Web Proxy

15-213 Intro to Computer Systems Class Project, Spring 2022

Created a proxy that accepts incoming connections, reads and parses requests, forwards requests to web servers, reads the servers’ responses, and forwards the responses to the corresponding clients. Used basic HTTP operation and sockets to interact between the client and server. The proxy dealt with multiple concurrent connections through threads. Used mutexes to prevent race conditions. Added caching to the proxy using a simple main memory cache of recently accessed web content. Implemented the cache as a circular, doubly-linked list. (3 weeks, 800+ lines of code)



WebDev Projects


Easymoji

17-363 Programming Language Pragmatics Final Project, Nov 2022

Collaborated with Jocelyn Tseng to build Easymoji. Easymoji is a web application that allows you to quickly type up long texts with plenty of emojis, and you can even save and reuse your favorite emoji combinations. Simply copy and paste the output to Messenger, Slack, or whatever platform you want to emote some more on.

Relation to Programming Languages: We designed our own language, Moji, and specified its semantics. We also implemented a lexer to turn a program into tokens, a parser to turn the tokens into an AST, and a compiler to turn the AST into the output.


Fuel Capital Website Customizations

Marketing Toolkit, July 2020

Redesigned the Marketing Toolkit for Fuel Capital, a venture capital firm based in San Francisco. Worked closely with the Chief Marketing Officer to decide on a design and layout. Then implemented the changes using their Squarespace platform. Created custom artwork using Canva and Photoshop. Used CSS and JQuery for custom changes, such as creating a Hero Banner, re-routing tag links, and creating a sidebar.

Marketing Toolkit - Updates, October 2020

Contacted for a second project with Fuel Capital to implement updates for the website. Built a custom subscription footer, displayed dates on blogposts, and removed the pagination for the blogposts. Also created handoff materials to guide their marketing team for future changes.