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.
Part 4: Making the Most of Async in Node.js
In Part 3 we discussed heterogeniety and some other tuning tricks. Now
it’s time for some of the rest of the story.
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
[Author’s Note: This thread is about Javascript, but the principles are not about Javascript. I used
Promises before Javascript had them, and I will use async/await long after. There’s a lot to
cherry-pick here if your language has fibers, or infinite parallelism will lead to immediate
resource exhaustion. It’s just couched in the language I’ve spent the most time in recently.]
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.