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.

Contact Me

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.