Everything I know about good API design

#641 – August 31, 2025

APIs are hard to build because they’re inflexible but must be easy to adopt

Everything I know about good API design
20 minutes by Sean Goedecke

Modern software engineers work mostly with APIs, which are interfaces for communicating with programs. Good API design balances being familiar to users with maintaining long-term flexibility. The key rule is to never break existing functionality since changes will break users' software. API versioning allows changes by serving old and new versions simultaneously, but it creates maintenance complexity.

Big O
11 minutes by Sam Rose

Big O notation describes how a function's performance changes as input size grows, without measuring actual time. The four main types are constant O(1), which takes the same time regardless of input size; logarithmic O(log n), which grows very slowly like binary search; linear O(n), which grows proportionally with input; and quadratic O(n^2), which grows much faster like bubble sort. Understanding these patterns helps write more efficient code by avoiding common mistakes like using expensive operations inside loops.

It’s not wrong that "🤦🏼‍♂️".length == 7
40 minutes by Henri Sivonen

JavaScript counts emojis as multiple characters because it uses UTF-16 encoding, where some characters need multiple code units. This isn't actually a flaw - different programming languages measure string length differently based on their internal encoding. Swift counts one emoji as one character by using extended grapheme clusters, but this approach has downsides like dependency on Unicode database versions.

An illustrated guide to OAuth
13 minutes by Aditya Bhargava

OAuth was created in 2007 at Twitter to let third-party apps post tweets without users sharing their passwords. It works by giving apps an access token that acts like a user-specific API key. When you connect an app to a service, you log in at the service's website, choose what access to grant, then get redirected back to the app with a secure authorization code that the app exchanges for an access token.

Professional development is a choice
16 minutes by Alex Chesser

Growing and improving as a developer can come in many forms. For most of us we grow as a function of simply doing our day jobs. As long as we keep doing new things we keep growing. Maybe a particular technology excites us and we build a project over a weekend. Alex is going to argue that professional development is not the same as growth. That it requires a deliberate choice be made by the developer on their own.

And the most popular article from the last issue was:

newsletters