Live data from Hacker News

WhatsApp scaled to 1B users with only 50 engineers

quastor.org

111–120 of 462 posts

Re: WhatsApp scaled to 1B users with only 50 engineers

#111
post #16

"The simpler product makes it much easier to maintain and scale." This is good news for the developers, the product owners and the customers. I still can't understand why today people choose a (Javascript) stack of build systems, ton of dependencies, and all kinds of exotic tech that is the latest and most hyped. As a developer you need to support this in the future. It might be nice to build today but it will be a n…

These issues that you described can happen with any language, ask any programmer or system engineer with long enough experience they’ll have stories with weird problems. Regardless which language you pick, there will always be these kinds of issues.

> These issues that you described can happen with any language

While you're not wrong, I do strongly feel it depends on the language and architecture chosen. I'm a Go developer these days, and there's a big mindset to e.g. avoid dependencies, and for those dependencies to avoid including even more dependencies, keeping things fairly lightweight and with a low 'attack surface'. I mean I personally wouldn't mind a stricter type system and native enum support and some other things, but for now, I enjoy how basic it is, whilst avoiding the footguns that C/C++ brings.

Re: WhatsApp scaled to 1B users with only 50 engineers

#112
post #9

This article does very little to explain how they did that. It basically states the type of tech they used (Erlang, FreeBSD and SoftLayer), and something about not trying to over engineer stuff. The title also makes it sound like 500 engineers would make it easier to scale up WhatsApp, which does not make too much sense either.

The article is honestly kinda low on details, depth or new insights, but at least it links to some sources.

Re: WhatsApp scaled to 1B users with only 50 engineers

#113
The many comments alluding to the technical challenge of building a chat app with 50 engineers being relatively easy are forgetting that scaling said chat app to 1 billion users is absolutely not easy and a function of more than just the engineering quality and technical challenge. There's MUCH more to a successful product than engineering...

Re: WhatsApp scaled to 1B users with only 50 engineers

#115
post #16

"The simpler product makes it much easier to maintain and scale." This is good news for the developers, the product owners and the customers. I still can't understand why today people choose a (Javascript) stack of build systems, ton of dependencies, and all kinds of exotic tech that is the latest and most hyped. As a developer you need to support this in the future. It might be nice to build today but it will be a n…

For all sorts of reasons, good and bad.

One is that the future is unknown. Your goal might be to keep the product simple and scale to 1bn users, but you don't really know if it will play out like this.

Maybe you plateau at 1m users with the initial idea and pivot the product somehow. Now the app does dating, social media or specialised communications for highway construction teams.

Tradeoffs are easier to make in hindsight. Whatsapp is a good demonstration of what you can gain with good trade offs. Do less but well. Whatsapp did trade some things off though. Their web version came late, is feature poor and a little clunky. Same for a lot of features, compared to similar apps ATT. IDK what exactly can be traced to the stack, but their decisions around user identity are similar. Phone numbers only. One device at a time. They gained simplicity, but lost options.

It's easy to see the benefits in hindsight. Real time is harder. Play that game again and it might turn out different. Most apps that set out to have 1bn never get close. At this point, scalability doesn't matter and tradeoffs made for maximum scalability don't seem as wise.

Re: WhatsApp scaled to 1B users with only 50 engineers

#116
post #16

"The simpler product makes it much easier to maintain and scale." This is good news for the developers, the product owners and the customers. I still can't understand why today people choose a (Javascript) stack of build systems, ton of dependencies, and all kinds of exotic tech that is the latest and most hyped. As a developer you need to support this in the future. It might be nice to build today but it will be a n…

> I still can't understand why today people choose a (Javascript) stack of build systems, ton of dependencies, and all kinds of exotic tech

True, but one can do simpler things with JavaScript, too.

And a word on exotic tech: Well, some of it is really good in helping small dev shops achieve scale of development, deployment, and maintenance.

Re: WhatsApp scaled to 1B users with only 50 engineers

#117
post #64

Earlier quoted context omitted.

> Yet people seem to focus on the technology, because that's more easily replicated, and easier to accept, in my opinion. I think you are correct. It also works as some sort of advertisement. Others feel like they made the right tech choices, if they choose the same tech as WhatsApp or Spotify. Completely forgetting that they probably need to be somewhat proficient in Erlang to get the benefits from the language etc.…

Language choice does act as a filter, though. If you choose Erlang, do you get smarter developers by default?

From my experience it's always a good idea to choose a language that people would have to learn by themselves, i.e. none of the school languages (Java, C, C++, C#, Python, Javascript etc).

In that way you only attract people who do sit down and learn new languages by themselves in their spare time, which filters out people with less interest in programming at least.

Re: WhatsApp scaled to 1B users with only 50 engineers

#118
post #97

Earlier quoted context omitted.

The technology stack isn't even that relevant. There have been a few different articles about WhatsApp and their 1B users with only 50 engineers. The key in previous articles was that WhatsApp hired really smart people. Having extremely talented engineers and a rather small scope is what allowed them to grow til 1B users, with a minimum staff. Yet people seem to focus on the technology, because that's more easily rep…

I think the technology stack they choose is highly relevant to their success. The choice of Erlang was crucial: it's basically built for communications and has all pesky issues like version updating, resilience to failure and scalability already taken care of by nature of its architecture and framework. Of course, these 50 engineers were smart, most in that specialised space are, but I strongly doubt that they could…

Well true, but my point is that you're not going to be able to scale as successfully as WhatsApp, just by using the same technology stack, if your problem is different.

You're right that Erlang was/is the right choice for WhatsApp, and it was most likely picked as the language of choice, because of the smart people working there. It's the same with FreeBSD, a failing startup isn't going to be able to layoff 50% of its engineers just by switching from Linux.

Re: WhatsApp scaled to 1B users with only 50 engineers

#119
post #52

Earlier quoted context omitted.

Discord was written in Elixir! https://blog.discord.com/scaling-elixir-f9b8e1e7c29b

Does it mean it's technically also based on Erlang?

It runs on the Erlang BEAM virtual machine. But it’s very much it’s own language, and looks and feels very different to Erlang.

I would say the Elxir is based on Erlang about as much as Scala is based on Java.

Re: WhatsApp scaled to 1B users with only 50 engineers

#120
post #84
post #72

Earlier quoted context omitted.

Well, WhatsApp had to support exotic cases like BlackBerry, Symbian OS (Nokia), and Windows Phone. I will say, dealing with JS stacks, seems easy in comparison to mobile fragmentation from back then.

I don't see how this is related. Server-side you write and expose an API. Then you have 1-3 developers for each platform that write code that consumes that API. Those developers don't need to know anything about the internals of the server.

But this speaks to good architecture decisions, right?

If they tried to make a shared framework that ran the same codebase everywhere and then port it onto different platforms (cough facebook) then you don't get these nice isolated issues, for example.

Post reply on HN