crystal
| Jan 03, 2020 | Using the Crystal compiler API | 
css
| Jan 31, 2019 | Set both background and font colors, or neither | 
curation
| Oct 01, 2023 | Curation–Oct 1, 2023 | 
| Sep 10, 2023 | Curation–Sep 10, 2023 | 
cycling
| May 11, 2022 | Bicycle chain waxing | 
database
| Sep 25, 2023 | The poor man’s DB proxy | 
| Sep 24, 2023 | Setting up MySQL replication on Docker Swarm | 
docker
| Sep 24, 2023 | Setting up MySQL replication on Docker Swarm | 
| Sep 13, 2023 | Actual instructions to building a multi-platform docker image | 
mysql
| Sep 24, 2023 | Setting up MySQL replication on Docker Swarm | 
programming
| Mar 08, 2025 | Using Git(Hub) as the backend for this blog | 
| Oct 07, 2023 | Zig cross-compilation: linking to system libraries | 
| Sep 26, 2023 | How one-time passwords are generated | 
| Sep 25, 2023 | The poor man’s DB proxy | 
| Mar 08, 2020 | From Rust to WebAssembly: building an interactive note-taking webapp with Actix & Yew | 
| Jan 03, 2020 | Using the Crystal compiler API | 
| Dec 16, 2019 | Don’t use booleans | 
| Jan 31, 2019 | Set both background and font colors, or neither | 
| Jun 23, 2017 | On reviewing code: Some practices I’ve found useful | 
| Sep 10, 2016 | Random .NET fact: String.Join() throws a “fake” OutOfMemoryException | 
software career
| May 11, 2025 | What does performing at the next level look like? | 
| Feb 06, 2023 | One common behavior seen in “mature” software engineers | 
software development
| Jun 11, 2025 | Wrong ways to use the databases, when the pendulum swung too far | 
| May 09, 2025 | There’s no need to over engineer a URL shortener | 
| Jun 23, 2017 | On reviewing code: Some practices I’ve found useful | 
ux
| Jan 31, 2019 | Set both background and font colors, or neither | 
zig
| Oct 07, 2023 | Zig cross-compilation: linking to system libraries |