I am a student developer interested in programming, finance and electronics.
I write Rust, Ruby, iPad, Qt and JS apps for fun, work and homework.
I’m currently studying CS at the University of Waterloo.
About Me
Personal Projects
These are some of my personal software projects.
- Yūbinkyoku 🏣
- A photorealistic path tracing renderer with portals!
- Syntect
- A Rust library for fast high quality syntax highlighting using Sublime Text’s grammar format.
- StashLine
- An iPad app for personal finance planning.
- IndexView
- A web app for visualizing long term stock market data.
- Rate With Science
- A fun web app for path finding the Wikipedia link graph.
- The Open Turing Compiler
- An LLVM-based compiler for Turing and an associated Qt-based editor.
- Dayder
- A fun web app for quickly finding spurious correlations in 390,000+ data sets.
Recent Blog Posts
Stuff I’ve Done
This is a list of the things I have worked on and am currently working on. It is in kind of chronological order. I will try and write down all the things I have worked on. Unfortunately I don’t remember many of the things I worked on in years gone by.
2022
- Designed a laser-cut aluminum keyboard case that uses magnets to double as a lap board.
- Started at Anthropic doing mechanistic interpretability research for large language models on Chris Olah’s team. Moved to SF.
2021
- Started having a more vibrant social life and spent less time on blogging and personal projects.
- Started designing a super-bright modular LED light bar for apartment lighting.
- Implemented magic-trace for Jane Street.
- Played with Samurai in the DEF CON CTF qualifiers and finals.
2020
- Played with Samurai in the Hackasat CTF. I helped with some Rust binary reverse engineering and signal processing.
- Played with Samurai in the DEF CON CTF Quals, we came 2nd. I solved floood and helped with bytecoooding, whooo and some others.
- Made a Sublime Text plugin that collapses 3-line short if statements in Go programs (
if err != nil { return }
frequently) onto one by folding the whitespace.
- Built a light-sensor-based hardware latency tester for testing keyboard-to-screen UI latency
- Wrote a fun library that can telefork a program to a different computer, and a blog post about it.
2019
- Made a font patcher that uses arcane OpenType shaping trickery to do things like underline alternating groups of 3 digits from the right.
- Rewrote Rate With Science in Rust for easier deployment and less breakage.
- Built an extremely bright LED lighting setup for my apartment using socket strands, 20 cool LED bulbs, 20 warm bulbs, and smart dimmers for scheduling brightness and color temperature.
- Moved to NYC
- Decided to dedicate much more effort than usual to writing blog articles in the summer and then did.
- Experimented with and researched the best way to run OpenAI’s GPT-2 language model on a laptop CPU or GPU, with possible applications in my friend Jacob’s Deep TabNine autocompleter.
- Did a bunch of experimenting to figure out how to do glitchless Metal window resizing.
- Wrote a patcher for adding custom songs to Beat Saber on the Oculus Quest VR headset.
- Finished my CS degree at the University of Waterloo!
- Made a portmanteau generator in Rust for TerribleHack XIII.
- Wrote a Sublime Text plugin for automatically importing modules in Rust.
- Volunteered as the Treasurer for the Waterloo CS Club again, also helped organize events like TerribleHack.
- Wrote a compiler for a substantial subset of Java in Rust along with 2 teammates for UWaterloo’s compilers course.
2018
2017
- Implemented a combined head tracking and eye tracking mouse replacement in Rust using a TrackIR 5 and a Tobii 4C.
- Attended TerribleHack X and made a super-fast emoji rendering engine with WebGL.
- Organized a short talks event for the Waterloo CS Club and gave a talk version of my article on dynamic programming as path finding.
- Wrote Enfasten, a tool that transforms a static site into one that uses optimized responsive images.
- Helped reverse engineer the protocol of a commercial eye tracker, wrote a Wireshark dissector for their custom data format to aid understanding USB pcaps.
- Attended Hack The North 2017, where I made Quickdown, a fast lightweight markdown renderer from scratch using Rust and Webrender.
- Made a web app that creates an RSS feed of interesting Hacker News comments.
- Fixed some bugs and reviewed PRs for syntect.
- Made an example of integrating WebRender with the new glutin with live resizing windows on macOS.
- Fixed some bugs in nvAlt involving indented lists.
- Added an API to Hammerspoon for counting and switching macOS tabs.
- Wrote an example program of using my A*-based approach to diffing.
- Developed a Sublime Text command for folding all function bodies in a file so that you can read the type signatures and doc comments like generated documentation or a header file.
- Made a small web app for doing common normal distribution related calculations.
- Worked on the the Xi text editor for my internship at Google.
- Helped start NeoVintageous, a fork of the abandoned Sublime Vim emulation package, and contributed some fixes and updates.
- Fixed a whole bunch of parsing bugs in syntect found by running the Sublime Text syntax tests with it.
- Gave a talk on advanced Unix commands, programs and scripting for a CS Club “Unix 201” event I ran.
- Gave a talk on how text editors do syntax highlighting for “Alt+Tab”, a short talks event I ran for the CS Club.
- Volunteered as the Vice President of the Waterloo Computer Science Club. Organized and ran a number of events for them.
- Experimentally ported syntect to fancy-regex, a pure Rust regex library that avoids catastrophic backtracking.
- Implemented a bunch of operating system features like pids, forking, exec, allocation and paging for the UWaterloo CS350 class
2016
2015
2014
- Wrote a program that allows overlaying dots anywhere on the screen, intended to be used to provide hints for use with an eye tracker.
- Developed an algorithm for detecting the noise of lips popping fairly accurately, intended for UI control uses.
- Wrote a window hints module for Mjolnir for SE hack day.
- Started using Spacemacs and contributing many PRs, making me the #2 contributor.
- Finished the VeloType implementation for my keyboard, started practicing.
- Started learning Emacs and contributing daily to open source Emacs projects like Spacemacs.
- Participated in Hack The North and developed Handquake.
- Wrote a command line tool for Waterloo Watcard info.
- Started attending the University of Waterloo.
- Built the electronics and firmware for my DIY keyboard.
- Released IndexView on Mr. Money Mustache.
- Designed and built a custom keyboard case out of layered acrylic.
- Wrote a tool for graphing and analyzing long term market returns.
- Gave a talk at Ottawa Ruby on the Ruby Standard Library
- Used 3D printing to prototype a concept for magnetic levitation hall effect keyboard switches.
- Forked the ranger file manager to work better with OSX, creating MacRanger.
- Extended ranger file manager to support images and file icons on OSX.
- Went to the ECOO programming contest finals and came 4th (1st in region).
- Spent most of the winter finishing up and releasing my app StashLine
- Wrote a graphing program that follows all the school science rules.
2013
- Made a program to generate function art for my math summative.
- Started work on a personal finance iPad app.
- Gave a lightning talk at Ottawa Ruby about writing Ruby Gems.
- Worked at Shopify over the summer.
- Integrated Pro into the Sublime Text editor via a plugin.
- Wrote Pro, a tool for managing Git repos.
- Won the Ottawa AppJam for my Turing Compiler and IDE, which I polished and linked together.
- Went to the ECOO programming contest finals and came 5th.
2012
2011
2010
- Porting the linux program to interface with my watch (Timex DataLink) to the mac.
- Object tracking using the webcam in haxe
- Ruby data analysis framework for use in programming contests.
- Turing browser for programming class assignement.
- Google Code Jam 2011 Qualification Round.
- 3D engine in Turing for programming class.
- Bell HS map
- Base for a neural network based AI for ultimate tic-tac-toe
- Psychological research iPad app for a professor at Carleton University
- Partial data-analysis program for my EEG
2009 (Grade 8)
- iPhone app for my XML-based personal data sync and organization system.
- Ruby framework for my XML-based personal data sync and organization system.
- Ultimate tic-tac-toe Java applet.
- My science fair project on building an EEG. Won gold medal and a trip to the national science fair. http://tristan.hume.ca/distribute/Brainwaves%20(Tristan%20Hume).pdf
- Ajax and php web app for my XML-based personal data sync and organization system.
2008
- Science fair project on Galvanic Skin Response. Won gold medal in regional science fair.
- Flash platformer with procedurally generated levels.
- Redesign of tristan.hume.ca
- Bob escape platformer, a tiling platformer written based on a flash tutorial on tiling game engines.
- Taught small course on creating web pages to Grade 4-6 kids at my school.
2005
- Started learning to program by writing crappy websites with HTML and JS.