Earlier this month, in a post to his Facebook page, WhatsApp CEO Jan Koum announced that his company’s instant messaging service is now used by more than 900 million people. And then Facebook CEO Mark Zuckerberg promptly responded with two posts of his own. One said “congrats,” and the other included a cheeky photo Zuckerberg had taken of Koum as the WhatsApp CEO keyed his 900-million-user post into a smartphone. “Here’s an action shot of you writing this update,” Zuckerberg wrote.
WhatsApp is owned by Facebook, after Zuckerberg and company paid $19 billion for the startup a little more than a year ago. That means Facebook now runs three of the most popular apps on the internet. Its primary social networking service is used by more than 1.5 billion people worldwide, and Facebook Messenger, an instant messaging service spun off from Facebook proper, spans 700 million. But the 900 million-user milestone announced by Koun is very much a WhatsApp achievement, not a product of the formidable Facebook machine.
One of the (many) intriguing parts of the WhatsApp story is that it has achieved such enormous scale with such a tiny team. When the company was acquired by Facebook, it had 35 engineers and reached more than 450 million users. Today, it employs only about 50 engineers, though the number of WhatsApp users has doubled, and this tiny engineering staff continues to run things almost entirely on its own. In a world where so many internet services are rapidly expanding to millions upon millions of users, WhatsApp shows the way forward—at least in part.
WhatsApp doesn’t talk much about its engineering work—or any other part of its operation, for that matter—but yesterday, at an event in San Jose, California, WhatsApp software engineer Jamshid Mahdavi took the stage to briefly discuss the company’s rather unusual methods. Part of the trick is that the company builds its service using a programming language called Erlang. Though not all that popular across the wider coding community, Erlang is particularly well suited to juggling communications from a huge number of users, and it lets engineers deploy new code on the fly. But Mahdavi says that the trick is as much about attitude as technology.
Mahdavi joined WhatsApp about two years ago, after the startup was up and running, and its approach to engineering was unlike any he had seen—in part because it used Erlang and a computer operating system called FreeBSD, but also because it strove to keep its operation so simple. “It was a completely different way of building a high-scale infrastructure,” he said on Monday. “It was an eye-opener to see the minimalistic approach to solving … just the problems that needed to be solved.”
Code in Parallel
In using Erlang, WhatsApp is part of a larger push towards programming languages that are designed for concurrency, where many processes run at the same time. As internet services reach more people—and juggle more tasks from all those people—such languages become more attractive. Naturally.
With its new anti-spam system—a system for identifying malicious and otherwise unwanted messages on its social network—Facebook uses a language called Haskell. Haskell began as a kind of academic experiment in the late ’80s, and it’s still not used all that often. But it’s ideal for Facebook’s spam fighting because it’s so good at juggling parallel tasks—and because it lets coders tackle urgent tasks so quickly. Meanwhile, Google and Mozilla, maker of the Firefox browser, are striving for a similar sweet spot with new languages called Go and Rust.
Like Haskell, Erlang is a product of the ’80s. Engineers at Ericsson, the Swedish multinational that builds hardware and software for telecom companies, developed the language for use with high-speed phone networks. “Instead of inventing a language and then figuring out what to do with it, they set out to invent a language which solved a very specific problem,” says Francesco Cesarini, an Erlang guru based in the UK. “The problem was that of massive scalability and reliability. Phone networks were the only systems at the time who had to display those properties.”
Erlang remains on the fringes of the modern coding world, but at WhatsApp and other internet companies, including WeChat and Whisper, it has found a home with new applications that operate not unlike a massive phone network. In essence, WhatsApp is a replacement for cellphone texting services. It too requires that “scalability and reliability.”
What’s more, Erlang lets coders work at high speed—another essential part of modern software development. It offers a way of deploying new code to an application even as the application continues to run. In an age of constant change, this is more useful than ever.
Keep It Simple, Smarty
The language does have its drawbacks. Relatively few coders know Erlang, and it doesn’t necessarily dovetail with a lot of the code already built by today’s internet companies. Facebook built its original Facebook Chat app in Erlang but eventually rebuilt so that it would better fit with the rest of its infrastructure. “You had this little island that was Erlang, and it was hard to build enough boats back to the island to make everything hook in,” says Facebook vice president of engineering Jay Parikh.
Of course, WhatsApp didn’t have to integrate with an existing infrastructure in this way. And Mahdavi believes the relative scarcity of Erlang coders isn’t a problem. “Our strategy around recruiting is to find the best and brightest engineers. We don’t bring them in specifically because the engineer knows Erlang,” Mahdavi said on Monday. “We expect the engineer to come in and spend their first week getting familiar with the language and learning to use the environment. If you hire smart people, they’ll be able to do that.”
The company has succeeded by hiring engineers who are adaptable—in more ways than one. Asked to explain the company’s secret, Mahdavi’s response seems far too simple. But that’s the point. “The number-one lesson is just be very focused on what you need to do,” he said. “Doing spend time getting distracted by other activities, other technologies, even things in the office, like meetings.”
At WhatsApp, employees almost never attend a meeting. Yes, there are only a few dozen of them. But that too is the point.
source : http://www.wired.com/2015/09/whatsapp-serves-900-million-users-50-engineers/