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 |