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 |