About
About Me
I’m Riley, a fourth year undergraduate student studying mathematics and statistics at the University of British Columbia. In addition to my studies, I’m passionate about Unix, Vim, and software engineering. I also enjoy running, reading, hiking, and playing the piano. I am currently working at SAP Canada as a CI/CD intern until April 2026.
From May to August 2025, I worked with Dr. Cuauhtémoc T. Vidrio Sahagún and Dr. Alain Pietroniro to implement a Flood Frequency Analysis Framework in the R programming language. Documentation for the software I created can be found here. Before this, I spent a year doing research in mathematical biology. From April to December 2024, I worked with Dr. Eric Cytrynbaum to develop a mathematical model of root growth in A. Thaliana. An up-to-date copy of our manuscript can be found here and the code for the project can be found here. I also took MATH 462 (Projects in Mathematical Biology), a graduate-level mathematical modelling course at UBC. For the final project, my group and I explored models of the Notch signalling pathway. I wrote a brief summary of our work here.
I got my first exposure to Vim in 2023 after reading this excellent blog post
by Gilles Castel. After setting up a similar system using Vim-bindings in Obsidian, I was hooked. I
gradually started using Vim outside of Obsidian, which piqued my
interest in terminal-based workflows using tmux
and tiling
window managers. In January 2025, I booted Linux for the first time and
have been daily-driving it ever since. I strongly believe that software
should be simple, performant, and reliable. I hope this mentality is
reflected in my work.
Site Design
I’ve tried to keep this site as simple as possible. All of the pages are written in Markdown, which I compile to HTML using Pandoc and a shell script. Styles are defined globally in a single CSS file. To host the site, I use nginx on a DigitalOcean droplet with a post-receive hook that automatically redeploys the site when I push changes.
This site also uses metadata to provide additional context about each post and make it easier to identify out-of-date content. My implementation of metadata uses the following seven labels:
- Created: The date on which the page was created.
- Modified: The most recent date on which the page was modified.
- Topics: A list of relevant keywords found on the page.
- Audience: A short summary of the intended audience or simply “everyone”.
- Certainty: My confidence in the post (“unlikely”, “likely”, “certain”).
- Importance: The utility of the post (“low”, “medium”, “high”).
- Status: My evaluation of completeness (“in progress”, “in revisions”, “complete”).