Development Practices How I Created a Security Advisory with GitHub I created a vulnerability in a project. When I discovered it, I used fixing it as an opportunity to try the security advisory process.
DevOps & System Admin. A Webserver and a Slack Bot on OpenBSD: Introducing relayd I set up a Slack bot on my OpenBSD server. When I needed to route traffic to it, I needed to use a new tool in the OpenBSD toolbox: relayd.
Effective communication Don’t Hide Useful Conversations in Private Messages Conversations tend to disappear into a black hole on platforms like Slack. Having them in the open, wisely, can help everyone around them.
Growing as Makers Building with LEGOs and Building Software for the Future I've been thinking about how the expertise I gain from building LEGO models is a lot like how I build software effectively at Atomic Object.
The Software Life Maintenance: Your Software Isn’t Something You Can Be Done With Software needs maintenance just like your car does. With proper love and attention, it can serve you well for years to come.
Python Types are Transforming Python Python has been around a long time. But it has evolved quite a bit since those early days, thanks to type hints and the "typing" module.
Developer Tools SSH Keys on macOS, Part 2: Building a Key System Creating and using lots of SSH keys can be really easy to manage with a simple key system. Following a few simple principles makes it work.
Developer Tools SSH Keys on macOS, Part 1: Simple and Safe We make handling SSH keys on macOS way more complicated than it has to be. Here's a simple, safe way to create and use them.
TypeScript How to Create an NPM Package in TypeScript from the Ground Up Demystify the creation of a TypeScript NPM package by starting from the absolute minimum amount of code and building up a complete importable module.
TypeScript How to Deal with “Optional” and “Undefined” in TypeScript You have no choice but to deal with optional things and "undefined" in JavaScript, but the great news is, there are many tools to deal with them.
JavaScript Automatically Watch and Build Your Turborepo Monorepo with Turbotree Monorepos are great, but watching and rebuilding them is a complicated problem. turbotree helps make it a lot easier.
JavaScript JavaScript’s Template Strings are Likely the Wrong Tool for Your Job It's way too common to try to put together query strings using JavaScript's template strings. Thankfully, there's an easy and much better way.