Terraform RDS module with DNS setup

I love not having to manage databases. Hosting it on your compute is guaranteed to be cheaper, but I don’t want to be constantly worrying about backups and database upgrade / maintenance. AWS offers managed databases, known as RDS. Mostly I use postgres, which works well for most use cases. (It’s also a given that - if you don’t really need NoSQL database, then don’t use it). If I spin up RDS postgres, I can reach it assuming I have set up the correct networking pathways. (And you shouldn’t expose your database to public, unless it’s for playground with no sensitive data.) ...

March 17, 2023 · 2 min · Karn Wong

Book Highlights - Engineering Management for the Rest of Us by Sarah Drasner

Organizational health lies in being able to work together. As a manager, our job is to try as much as we can to drive balance and clarity. A happy, driven team sees the wider purpose of their work and also feels empowered to execute tasks individually. “You can’t call yourself a leader by coming into a situation that is by nature uncertain, ambiguous—and create confusion. You have to create clarity where none exists.” —Satya Nadella, CEO of Microsoft ...

March 16, 2023 · 4 min · Karn Wong

Book Highlights - The Staff Engineer's Path by Tanya Reilly

Opportunity cost Staff engineers’ skills are usually in high demand. If you’re assigned to a single team, you may not be top of mind for solving a problem elsewhere in the org, or your manager may be unwilling to let you go. Losing empathy It’s easy to overfocus and forget that the rest of the world exists, or start thinking of other technology areas as trivial compared to your rich, nuanced domain. ...

March 15, 2023 · 12 min · Karn Wong

Load balancer 101, thou shalt not be alone

Scaling, the dreaded word among developers, because this means more complexity. But why do we need scaling? Imagine a super busy corner store. During early mornings, there might not be a lot of customers, so one cashier might be enough to handle all customers. But during afternoons or evenings, more customers would flock to the store, and our only cashier couldn’t checkout fast enough, and this means losing potential customers. ...

December 10, 2022 · 2 min · Karn Wong

Cross-platform package (+env) management with Nix

For many years, installing a package on linux means either: Compiling a binary from source, then install it. -> I think we know why this didn’t catch on for the mass. Downloading a compiled binary for your system’s architecture and platform. -> This requires you to also move the executable to something like /usr/local/bin otherwise it won’t be discoverable throughout the system. Using system’s package manager: apt, apk, yum, brew, etc. -> Yay finally something that’s easy to use. Phew! Then the dot-com era happened, and the digital transformation, you name it. This was before cloud, so companies set up their own data centers and have to administer and maintain the servers themselves. And it’s not fun if you have to perform the same machine configuration for the whole fleet. This problem was solved by tools like Ansible, Chef, Puppet, etc, to set up a machine’s configuration en masse. ...

December 3, 2022 · 4 min · Karn Wong