Using Micronaut Data, JDBC, R2DBC, TestContainers, and Flyway with multiple schemas Learn how to configure a Micronaut project with JDBC, R2DBC, TestContainers, and Flyway for databases that utilize multiple schemas
Load Balancing in Docker Compose with NGINX Learn how to configure a NGINX load balancer inside docker compose for your containers
Defensive Programming - Crashing Early Some defensive programming tips on how to use assertions to write better software.
Homelab 2021 - Gmail to Fastmail I built a home server in 2021 to make onsite backups of all my cloud data and re-balance my data ownership. Here is how I migrated my email from Gmail to Fastmail and setup automated backups.
Homelab 2021 - Data Ownership I built a home server in 2021 to make onsite backups of all my cloud data and re-balance my data ownership.
Configuring Awall on Alpine Linux Learn how to configure an Alpine Linux firewall using Awall that can be used to secure your server and docker workloads
Using Docker on Apple Silicon How I use Docker to help me install less software and make my development environments more portable on my Apple Silicon based Macbook Air.
Defensive Programming - Improving Readability Defensive programming is all about designing software that behaves as intended even in unintended situations. One way to help keep your code running smoothly is by being to be intentional about naming and organization. By making your code easier to read it then also becomes easier to review. Doing this
Client-side error handling techniques A look into some techniques for client-side error handling that have made my apps more robust and resilient when things go wrong
Animating Paths in Swift UI Learn how to draw a line graph and animate the drawing of the line graph path