The art of challenging assumptions

We spent countless hours and sleepless nights bringing and keeping up server side of the most successful messaging service in the world. Looking back, how many choices we'd change? And how to ensure we make the right one next time? "The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil" (Donald Knuth). But why does it happen? Why did we do something we didn't really want? Because we acted on assumptions. This talk will guide through a number of war stories where assumptions were made and acted on. There were regrets and disappointments, and we learned to challenge assumptions the hard way. Now it's time to share what we learnt so far.


  • identify sources of human errors in software development
  • discuss instruments and routines helping to challenge assumptions
  • provide advice for improved decision making process


Tech leads, software architects, systems designers and everyone else involved in making technical decisions and facing the consequences.


How to serve 1.5 billion active users at the same time - scaling Erlang cluster to 10,000 nodes

Article by Maxim Fedorov

A growing user population beyond 1.7B, whilst simultaneously adding new capabilities, does not leave much chance to keep the server footprint as small as it used to be.