myzkey
Notes on software engineering, systems design, reading, and indie product development.
What Is Trunk-Based Development? Its Differences from GitFlow and Its Relationship with CI/CD
Develop with Git for long enough and you will inevitably run into the question of how to branch....
Making the CSS Framework an Implementation Detail: Designing UI Components That Don't Depend on Specific Technology
I don't let application code use any particular CSS framework directly. No Tailwind CSS classNam...
Type-Safe Internationalization in React + i18next
We decided to add multilingual support to a web application built with React.
The Difference Between Latency and Throughput
Bring up system performance and two words show up almost immediately: latency and throughput. Bo...
What Is CI/CD? Understanding It Through Why It Came to Exist
If you write software, you run into the term "CI/CD" practically every day. You run tests with G...
Why Is MySQL on 3306 and PostgreSQL on 5432? I Looked It Up
Start MySQL and you get 3306; start PostgreSQL and you get 5432. I usually accept these numbers ...
Is RLS Being Abused?
If you use Supabase, there is no getting around Row Level Security, or RLS. Create a table, try ...
Sorting Out TypeScript's import type and Runtime Dependencies
For a long time I used TypeScript's import type with a sloppy mental model: "the thing that impo...
What Is an Anti-Corruption Layer
When you integrate with external APIs or legacy systems, code that started life as a simple API ...