Projects




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)


About Me


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.



cooking
running

Blog


No entries yet

Résumé




Miscellaneous



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! :)








Acknowledgements


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.

Jacob Hotz