ABOUT
You can find me solving problems at the intersection where tech and business collide. My background is in aerospace engineering, and I currently live on Vancouver Island with my awesome wife and kids. I'm passionate about environmental sustainability, quantitative finance, hardware hacking, infosec & cryptography, elections integrity, World War II combat flight simulators, and ultimate frisbee.
When COVID happened I thought like some people that it wouldn't be such a long haul. I learned to cook the 5 mother sauces and played a lot of video games. As the pandemic and lockdowns stretched on I figured I'd start blogging about things that interest me, but what resulted is this. It's not so much a blog as a notebook where I gradually collect articles that I write about topics that interest me that may or may not have any value to anyone else.
This is a living notebook, kinda like a wiki but wayyyyy more cumbersome to edit. Here be dragons. and typos.
ARTICLES:
December 2024
TryHackMe "Advent of Cyber" 2024 Side Quest Part 1
Managed to solve the whole thing by December 30th. Now that the embargo has lifted, I can write about these! One of the most difficult and most rewarding challenges I've ever done! This is the writeup for Part 1: Operation Tiny Frostbyte, and also contains a little blurb for context about the Side Quest vs the Main Quest.
TryHackMe "Advent of Cyber" 2024 Side Quest Part 2
Writeup for Part 2: Yin and Yang. Writing malicious pub-sub nodes for fun and flags.
TryHackMe "Advent of Cyber" 2024 Side Quest Part 3
Writeup for Part 3: Escaping the Blizzard. Heap overflows and container escapes. Holy shit this one was by far the most difficult.
TryHackMe "Advent of Cyber" 2024 Side Quest Part 4
Writeup for Part 4: Krampus Festival. Active Directory pwnage.
TryHackMe "Advent of Cyber" 2024 Side Quest Part 5
Writeup for Part 5: Avalanche of Web Apps. Abusing git hooks and DNS redirection. This one wasn't super difficult but it was probably the most confusing.
October 2024
I now understand why Frontend Frameworks exist
Viscerally.
Recovering from data loss
Read about what happens when you forget to containerize postgres and some other infra oh and your automated backups only go monthly.
July 2024
Letting Go
In which I wax poetic in retrospective of my failed SaaS.
January 2024
Door Sensor
Connecting ballpoint pen springs to a beaglebone black for fun and zero profit.
2023
Cookies
C is for Cookie, that's good enough for me…
On being busy
Or, why I haven't written anything since November.
2022
Algorithmic Trading Series Part 2: Validating Assumptions
Part 2 of a series on algorithmic trading, in which I examine some assumptions I made in part 1.
Multithreaded TCP Server in Common Lisp
Some learning as I solve Challenge 0 of Protohackers in Common Lisp by writing a multithreaded TCP Echo Server.
SBCL Timers
Notes to self regarding a gotcha in SBCL's implementation for the next time I try to mess around with Common Lisp timers.
Algorithmic Trading Series Part 1: Modelling
The first in what I hope will be a long series of posts about quantitative finance, algorithmic trading, and markets in general.
2021
IPv6 Prefix Delegation on the EdgeRouter X
Setting up IPv6 Prefix Delegation on the Ubiquiti EdgeRouter X SFP, on my fibre-to-the-home connection from Telus.
Server Name Indication (SNI) in dovecot and postfix
A small erratum for the wonderful Workaround.org ISPmail guide, and a howto for getting SNI working with dovecot and postfix.
RASPI GARDENER
Augmented gardening with embedded systems and push notifications to my phone.
BLOGGING WITH ORG-MODE AND GNU MAKE
I've tried I think all the static site generators at this point and most of them are over-engineered for my use case so I wrote my own ultra-minimalist one.
2020
DEVELOPING IN C# WITH .NET CORE AND EMACS
Troll your friends and coworkers by writing C# in Emacs, with "intellisense" code-completion!
UNIFI-CATION
Upgrading my home network by installing some Ubiquiti UniFi gear.