Part 1 of this series is here. Coroutines are interruptible functions. They're functions that pause at specific points and allow the runtime to resum...
Over the past few weeks, I've found myself encountering concurrency problems and discussions in a variety of places. I understand the basic principle...
Lockfiles are common in many dependency management systems today — package-lock.json, composer.lock, and so on. We often don't think much about the...
In design (of software and non-software products), is it good to provide several alternatives? Let's see this scenario: You're learning Ruby. You lea...
A fun thing I came across recently: a pending promise, by itself, won't stop a Node.js script from exiting. Let's say we have a script that ends with...
Good design is: analogous. It tries to draw parallels from itself to patterns that its users are familiar with. intuitive. The patterns it tries to ...
I've run into a few scenarios recently that have got me thinking about the choices we make in software, and how we have to live with them. Just like ...
When we think about "databases", we probably think about SQL stores (MySQL, Postgres), NoSQL stores (MongoDB, Cassandra), and maybe some vendor-speci...
Percentiles are a statistics concept, but you often see them mentioned in software engineering. Like this, this, and this. If you're wondering what t...
Over the next month or so, I'm embarking on a journey to improve the reliability of @RemindMe_OfThis. You can see a summary of my plans in this GitHu...
Hi guys👋.
I've worked with a couple of languages, but it was in JavaScript that I first noticed the pattern of...