FUSE-based file system: mounts onto Linux OS to allow
commands such as ls, cat, stat, and readlink. Images of file systems are read and computed to find
relevant information such as size, block size, volume name, inodes, and block groups. Path
resolution is also implemented by traversing directory entries in block
groups.
Languages used: C
DNS Resolver: wrote a client application that performs
iterative DNS queries in accordance with RFC 1035 (with additional support for IPV6). Features
included resolution of CNAMES (with detection of loops), caching of results, and identification of
record types. Uses UDP packet protocol.
Languages used: Java
MPI message passing with websockets: My final project
for a course on concurrency. I extended an application that my professor had wrote with MPI message
passing over TCP and modified it to use a websocket connection. I used Libwebsockets to achieve this. I used
Pthreads with mutex locks. During the course we also covered Libuv and various ways of writing
concurrent code + discussed parallelism.
Languages used: C, Javascript
Wista (iOS weather app): Available on the app store, Wista is
a minimalistic, stylish weather app. The app makes HTTP GET requests to the OpenWeatherMap API and saves user preferences. I made
Wista after learning Swift and iOS development watching videos and doing
tutorials.
Languages used: Swift
This website: I made this website from scratch a while back before I interned as a fullstack dev, teaching myself HTML and CSS. TLDR: Not the best way to build a site. But
joking aside wanted to know why frameworks exist in the first place and so the decision to not
use frameworks/libraries was informed by that. But next time, I'd use React. And definitely make the CSS animations more responsive. There's a lot to refactor here.
Languages used: vanilla Javscript, CSS, HTML
Insight UBC: A large fullstack web application with asynchronous I/O and networking operations and a
RESTful API. The site returns results for queries of UBC courses and rooms with lots of filtering
options.
Languages used: Typescript, Node.js, Javscript (supplied with
HTML)
I'm a student and teaching assistant at the
University of British Columbia.
After two failed auditions with the UBC Improv Team (Wholly
recommended; they're a funny lot), I decided that I should instead pursue my other, more serious
passion: writing wittily commented code.
I'm currently working at Intel as an intern. Previously, I interned at Checker Software in Vancouver
working on cool sites like Bibcitation and Diffchecker.
My interests include pedagogy/learning, linguistics, and interactive media.
Some hobbies are cooking (badly), listening to podcasts, reading, and running through the forest
in the morning when the light peaks through the trees.
I intend to use this section as a space for cool
projects that don't necessarily have to do with software engineering or the like. Right now it's
just music—but I hope this inspires me to make more music and even pick up other hobbies (If you've
seen the "About Me" section, you already know that my drawing needs work).
If you're looking at this website because you're interested in hiring me, then the below
probably isn't too relevent, but—who knows—if we're in a pinch and Hans Zimmer isn't available then
I might be the next best option. If you're looking at this because you're my friend, then let me
know what you think (or roast me for having a SoundCloud). And if you don't fall into these two
categories and are just an internet stranger, then welcome! :)
I made this site from scratch with JS, CSS, and HTML; however the image for the back button was made by joeartcon on The Noun Project and is used under a CC BY license. Colours were chosen based on works by Wassily Kandinsky and Eugen Batz. Also I use the font Poiret One designed by Denis Masharov under the Open Font license.