Welcome!
I am Matthew Planchard, a software engineer currently in Burlington, VT. This is a blog I maintain mostly for the purpose of playing around with whatever technologies I'm interested in at the present, but also to occasionaly post whatever I'm inclined to write.
If you particularly enjoy anything here and want to drop me a line, you can find my contact information on the about page. If you're curious about the technical details behind this website, that stuff is there, too.
Recent Posts
-
Updating my Résumé Like It's 1989
— (Or, Maximalist PDF generation with Nix, Make, Emacs, and LaTeX) — I realized recently that it had been five years since I updated my résumé. Because I am
totally normal and reasonableutterly deranged, I decided todo a reasonable amount of workcreate an org-mode to LaTeX to PDF pipeline, and then to use nix to reproducibly build my résumé into this very website. Follow along, and I'll try to keep this brief :) -
TIL tree Can Output HTML
— TIL that the
treeutility on most (all?) unixes can, instead of printing your directory tree to stdout, make a nice little HTML doc for you instead. - Async Rust Patterns: Stream Owned Receiver — A quick summary of a neat pattern I have found myself falling back on again and again in async Rust programming, in which a struct wrapping an owned Receiver provides one pure method that takes ownership and converts the object into a stream, and another that consumes the stream forever, making for easy testing and easy configuration of concurrent/parallel processing.
- Wireguard VPN Configuration for NixOS — Setting up a local NixOS headless server to route all traffic through a VPN via WireGuard, while still allowing local traffic on specific ports for SSH et al.
- Y'all Need to Read Something Other than Tech Blogs — The state of tech blogging is abysmal. Even posts I suspect of being human-authored are acquiring an style reminiscent of generative AI. I suspect this is because people read so much LLM-produced drivel that they subconsciously mimic it. As someone who is offended by the very idea of content presented as being human-authored that is in fact written by a machine, this is a plea to please read something, anything, other than tech blogs, to sow a more diverse set of patterns in the fertile soil of your mind.
- Manual Record Sharding for High-Performance Updates in Postgres — UPDATE is a dangerous operation in a high-throughput postgres database, and so it is often best to prefer an insert-only schema. But of course there is no free lunch, and an insert-only schema comes with drawbacks of its own. In this post, we talk about a simple mechanism for manually sharding rows in order to enable high-frequency updates for certain kinds of data. This method is especially useful in maintaining aggregate data and allows for significantly improved SELECT query performance when accessing the data post insert/update.
- A Zero Downtime Migration to Time-Partitioned Tables in Postgres — A crosspost from our engineering blog at work, in which I describe how we managed to migrate databases receiving millions of writes per day to time-partitioned tables without incurring any downtime or performance degradations.
- Amtrak Tips — A collection of tips and tricks for riding Amtrak
- TIL: use svn to download subdirectory of GitHub repo — Today I learned this one weird trick to download a single subdirectory from a github repo, without needing to add the repo as a remote, do a spare checkout, or any of the other typical workarounds.
- A NixOS Christmas Story — A quick story of how NixOS saved Christmas