← Back to home

On performance

My rule of thumb is the following: measure, find the hot spots that are clogged, optimize them. There’s little value in optimizing a one-off screen to open in 100ms instead of 500ms. It’s a great improvement, but it’s likely that users will see this screen only once. It’s much more important to optimize their daily interactions. Not all code is equal.

In my opinion, a great programming platform should have the following qualities: allow you to run fast and full of joy 99% of the time, and allow you to dive deep into the guts of the memory allocation and bit wrangling in 1% of the cases. There’s little value in imposing a constant tax of lower abstraction across the whole system.

Building a software product is difficult. You have to make something that people will gladly pay for. Performance is just a part of the equation. You have to make tradeoffs all the time. Many people love using Slack despite what some power users say about its power consumption or frame rate or bundle size, because it solves users’ needs. Yes, some may complain that their computer works only 4 hours when unplugged, and that it gets hot while performing seemingly simple tasks. Engineers have to fix it, no doubt. But you know what else a user might complain about? How about reliability, real-time sync, multiuser collaboration, beautiful UI and animations, plethora of integrations with other services, ability to resume work on any device they have, offline and poor network handling, quick bug fixes and security updates, great customer support and many, many other things? Everybody expects pretty much everything that Apple and Google have built over the last 20 years on their devices and services. And you, a young company, have to match these titans.

Last edited on Jul 18, 2019