Posts About Performance Analysis and Optimization I made a game with a friend in the same CS classes with me where any time we got our homework done
early, we would see who could make theirs faster or take in larger inputs without crashing. When
my first job after college had embarrassingly slow code, I parlayed that into my first
specialization.
A lot of performance is a mental more than a technical challenge. And I hope that comes across
in the linked articles.
Introducing Faceoff
Announcing Faceoff 1.1 and how it came to exist.
Part 3: Making the Most of Async in Node.js
In Part 2 we discussed how to use p-limit to handle common errors and
chains of simple parent-child requests. Today we will discuss heterogenous use cases, such as
complex graphs and high-variance task costs.
Part 2: Making the Most of Async in Node.js
In Part 1 we discussed how to use p-limit and how to avoid some common
pitfalls. Today we are going to go over capacity planning, and cover one last common pitfall -
retry logic.
Part 1: Making the Most of Async in Node.js
In the previous article , I very briefly described a bunch of concepts in
distributed computing, but before we get to the meat of this series, there’s an elephant in the room
that I have so far ignored.
Background: Making the Most of Async in Node.js
If you’re trying to get a lot of unrelated tasks done in Node.js or similar languages, the normal
way to write async code is often close enough to best case that most people don’t bother doing more
than a little bit of tuning. But as the workload increases, and particularly if you are attempting
to do any sort of offline (batch) processing in Node.js, the gap between simple and fast can reach
into orders of magnitude and can be worth digging a lot deeper.
You Should Make Your Build Agents Bigger
Someone once told me that a lot of blog posts are about arguments the author already lost. This is
one.