17 ms·
Why WhatsApp Only Needs 50 Engineers for Its 900M Users
- ilitirit 11y agoWorth reading, especially the stuff that is linked: http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html http://highscalability.com/blog/2014/2/26/the-whatsapp-archi...
- oskarth 11y agoThis was a much better article. I submitted it to HN: https://news.ycombinator.com/item?id=10226317 https://news.ycombinator.com/item?id=10226317 Perhaps the mods could merge/replace this (pretty bad) Wired article?
- feld 11y agoThey didn't cover that they use FreeBSD and are handling 2 million tcp connections per server which is not a trivial task
- swills 11y agoThere is a brief mention of FreeBSD in the article, but more would have been nice.
- smcl 11y agoIsn't it more because they're a simple IM application (albeit spread across a number of platforms)? I know they're hugely successful and there are considerations about scaling to that sort of size, but surely the fact that their product is extremely simple has to be a huge factor?
- kartan 11y agoBecause adding more engineers will make the development slower (https://en.wikipedia.org/wiki/The_Mythical_Man-Month https://en.wikipedia.org/wiki/The_Mythical_Man-Month).
- ghshephard 11y ago"Enlightened Product Management" is the phrase I've heard to describe WhatsApp's success in keeping their engineering requirements to a bare minimum.
- jamespo 11y agoI got my first ever spam on whatsapp the other day from someone who had never been a contact, and there seems to be no way whatsoever to prevent it. So maybe they should hire 1 more engineer to work on spam.
- arihant 11y agoAdding more privacy controls would sort of kill the point of it as SMS killer. You can block specific people. What they should control is the APIs that are popping up like promotional SMS with support for Whatsapp. These companies are obviously circumventing their endpoints.
- mobiuscog 11y agoI have to disagree. Whitelisting should always be an option - it's simple to achieve technically and allows the consumer to have complete control. Edit: And the fact there is no whitelisting is also the reason I removed the app from my phone.
- ghshephard 11y agoWhat version of Whatsapp/Platform are you using - newer versions of Whatsapp have spam blocking features. http://www.ibtimes.co.uk/whatsapp-rolls-out-new-spam-blocker-feature-1497715 http://www.ibtimes.co.uk/whatsapp-rolls-out-new-spam-blocker...
- berdario 11y agoThat only works with direct messages. Spammers have upped their ante, and they are now sending spam by adding you to group messages which (when I looked it up) don't allow you to report them as spammer (you can still block them, but that doesn't prevent a spam epidemy)
- jamespo 11y agoExactly how I was spammed, and I echo someone else's comments that I can't believe you can't activate a whitelist.
- ghshephard 11y agoIf this isn't a counter to the inane recruiting requirements of "5 years with language X" I don't know what is: 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.”
- interpol_p 11y agoThis reminds me of how we have been hiring engineers. We sit them down for a day with a fairly simple task (build a simple web or mobile app, about three screens with a basic data model) but we make sure to give them a language or framework they are unfamiliar with. They have Google, Stack Overflow, and other employees to use as a resource. It's a great way to get to know new hires while seeing how resourceful and interested in learning they are. Every candidate has built the app to spec with a few hours remaining, but it's really good to see those who take the initiative to spend a bit of extra time polishing it and explaining it to us, and responding to our feedback.
- hockeybias 11y agoA day? No thank you...
- mdellabitta 11y agoDoes this interviewing methodology mean that you only hire devs that don't currently have a gig or have vacation days to blow on the possibility of getting a job with you?
- interpol_p 11y agoWe do have an initial hour meeting with candidates just to get to know them and propose the trial if they seem like a possibility. Wouldn't most people take a day off to interview somewhere? I know I wouldn't be comfortable ducking out for a few hours to interview — it would feel tense and uncomfortable. Facebook, and I'm sure many other places, do full-day interviews. It's certainly not unusual.
- planetjones 11y agoI don't quite understand the correlation. If the article was about how Whatsapp achieves scale and parallelism through functional languages, then fair enough. But I'm not sure it's fair to say they need 50 engineers, in part, because of the language choice ? Surely they need 50 engineers because their product is fairly simple and there's no need to have more engineers than features. Maybe the point it should have made is that Whatsapp values higher quality over quantity ? That I could relate to.
- rtpg 11y agoWell, isn't the language a hood enough reason? I think most seasoned game developers would be faster making a simple 3D game with Unity rather than just openGL + C ( mainly because with Unity you get soon much boilerplate-y stuff out of the box) The language and the amazing properties of failure tolerance could be productivity multipliers ( think of the times you've had to deal with catastrophic failures of software)
- forgottenpass 11y agoNah, language alone isn't a good enough reason. It can contribute, just like every choice of tool can contribute. You example, unity, isn't a language, but instead an off the shelf engine and toolchain. But just like the development on an individual game seem less impressive technologically the more they rely on existing tech [1], admitting "Yeah, we forked ejabberd and rigidly fight scope creep" doesn't have the same ring as hyping up features in the runtime of a hip yet obscure programming language. [1] Fun side note: If you watch the games press interviews devs, pay attention to when they ask about what engine they use. The press don't and viewers often don't know anything about software projects, so the devs are reluctant to to admit how much they've relied on off the self components for their admittedly-huge undertaking. Fun to watch the paid hype men try to talk around that.
- humanrebar 11y ago> Surely they need 50 engineers because their product is fairly simple and there's no need to have more engineers than features. Right. There's not even a way to adjust notification levels based on person or group. I ended up turning off notifications for the whole app, so it stopped serving the same use cases that text messages do. People still need to text or call me if they need an urgent answer.
- perishabledave 11y agoFor reference here is a talk they did about how they scaled WhatsApp and the problems they faced: http://www.infoq.com/presentations/whatsapp-scalability http://www.infoq.com/presentations/whatsapp-scalability
- hashin 11y agoThis articles doesn't look that convincing to me. I has no technical details to prove that Erlang was the major reason why WhatsApp was scalable. I think the low number of engineers has more to do with the simplicity of their product than with this particular language choice.
- kozukumi 11y agoWhatsApp seems to be a great example of designing your system with the best tools available. To go from nothing to pretty much being the de-facto modern replacement for SMS in a couple of years is an amazing achievement. I really need to sit down and spend some time properly learning a functional language. I can hack my way through Haskell code but I do it in a very non-Haskell way. I really need to change that. My primary language is C++ and I am open to any recommendations for what direction to go in :)
- fsloth 11y agoFor Erlang, there is the book by Joe Armstrong: https://pragprog.com/book/jaerlang2/programming-erlang https://pragprog.com/book/jaerlang2/programming-erlang The problem with learning functional languages is finding pragmatic learning materials. I would claim F# is currently the most approachable functional language (just my opinion but I have at least toyed with the other mainstream offerings). My background is also in C++. The F# materials listed helped me personally to develop as a programmer and have made approaching other languages like Erlang easier. Sestoft's programming language concepts: https://www.itu.dk/~sestoft/plc/ https://www.itu.dk/~sestoft/plc/ Expert F# 3.0 contains lots of short snippets and examples: http://www.apress.com/9781430246503 http://www.apress.com/9781430246503 Flying frog consultancys materials are steep in price but I found them worth my dime (Visual F# 2010 for Technical Computing and the materials in The F# Journal) http://www.ffconsultancy.com/products/index.html http://www.ffconsultancy.com/products/index.html
- maze-le 11y ago> The problem with learning functional languages is finding pragmatic learning materials. This is kind of true. But there is a nice community around erlang. I always found good, valueable input at erlangcentral.org and stackoverflow.
- woah 11y agoAlso try learnyousomeerlang.com
- vvanders 11y ago
- calgoo 11y agoI heard that they have the philosophy of "you build it, you own it", meaning that anything you build, you are also responsible for running. So if you don't want a call at 3am, make sure your code works correctly.
- amelius 11y ago> Why WhatsApp Only Needs 50 Engineers for Its 900M Users Answer: because sending short messages from A to B is basically a solved problem. There is even a programming language (Erlang) that was made with this application in mind. The prototypical "Hello World" example for Erlang is a messaging application.
- radmuzom 11y agoThis comment focuses on the back-end. As important as it is, as far as I remember when FB acquired WhatsApp then one of the main advantages was the presence of clients in almost any mobile device (thanks to J2ME). I am pretty sure it is not trivial to maintain so many clients, even though over time the older clients will disappear and it will be mostly Android / IPhone / Windows (??) that the engineers need to maintain.
- mpweiher 11y agoYep. And of course, Erlang is really only a functional language in the small, the parts that don't matter so much. In the large, arguably the scale that matters, it's an actor language, with highly encapsulated entities exchanging messages. So essentially what Alan Kay had in mind when he coined the term "object oriented". http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
- karmajunkie 11y agoUpvoted for correctly invoking Alan Kay's vision of object oriented. :)
- noblethrasher 11y agoIndeed, Joe Armstrong once said that he believes Erlang to be the only OO language according to Alan Kay's idea [1]. Also, let's not forget to give credit to Carl Hewitt who came up with actors in the first place [2]. [1] http://www.infoq.com/interviews/johnson-armstrong-oop http://www.infoq.com/interviews/johnson-armstrong-oop [2] https://www.youtube.com/watch?v=7erJ1DV_Tlo https://www.youtube.com/watch?v=7erJ1DV_Tlo
- 11y ago
- mcintyre1994 11y agoI have to say I was expecting this to be a little older - it's really impressive that Facebook have kept the culture and tiny headcount of that team. I doubt it's ever a good idea for a company like Facebook to do layoffs but I wonder if there are any lessons from the WhatsApp team for a company that size - their intern cohort looked way bigger than 50 and they seem to have almost 50 offices [0]. Obviously a very different product and much more complex but it's interesting to wonder what the same product led by Jan Koum would hypothetically look like. [0] http://newsroom.fb.com/company-info/ http://newsroom.fb.com/company-info/
- DanielBMarkham 11y ago(Disclaimer: I teach this stuff) Good article. It's a keeper. Touches on a lot of things I've been telling clients for years. My takeaways: - Pure functions in little composable pieces. Screw the fact you can't find programmers. With 1/20th the staff, it's not important - Zero to few meetings. Keep focused on one thing. No playing around with WhizzBang Platform 7.0 because all the cool kids are using it. Mind your knitting. - Keep It Simple, Stupid. Engineers are our own worst enemy. Solve the most simple problem possible. Then add complexity a little bit at a time, only as a last resort. For those of you saying "But messaging is solved", "Erlang was written for messaging", and so forth, this is where you missed. Any complex system (with a few notable exceptions) will look very simple when solved in this manner. In fact, that's the entire point. - Running and deploying are the same thing. CI/CD. There is no Big Red Button to push because we're always working on the airplane engines while the plane is flying Coming from a traditional OOA/D/P background, this mentality was extremely foreign to me. Even though I was using and talking about TDD, it was still in terms of composing and re-arranging object graphs. It wasn't until I got into F# several years ago that the pieces started coming together. This is a very difficult conceptual leap to make, because a lot of the ways you work looks completely ass-backwards to folks who are used to doing it the other way.
- throwaway437812 11y agoCould you elaborate what is is that F# taught you, and how it changed the way you work?
- DanielBMarkham 11y agoI realize you're using a throwaway account, but this is really more like an essay, not a HN comment (cue up snarky observations about the length of my comments). There were four or five things that all came together at the same time for me: lean startup, functional programming, TDD, and static page web programming. If you're interested, my contact details are in my profile. Happy to have a call/Skype. It's an important topic.
- baronseng 11y ago
- apexkid 11y agoI wish there were some good online resources around Erlang. Most of the content is very theoretical and not explanatory. Its hard to find implementation of common algorithms like Sorting, graphs, link-list and other dataStructures in erlang.
- maze-le 11y agoCheck out: http://rosettacode.org/wiki/Erlang http://rosettacode.org/wiki/Erlang for some erlang implementation examples of common algorithms
- clessg 11y agoLearn You Some Erlang for Great Good is nice in my opinion: http://learnyousomeerlang.com/ http://learnyousomeerlang.com/ But an even better idea is to check out Elixir http://elixir-lang.org/ http://elixir-lang.org/ and http://www.phoenixframework.org/ http://www.phoenixframework.org/ which have been gaining a lot of steam as of late.
- lostcolony 11y agoUh...what exactly are you looking to learn? If you're looking to learn the language, there are plenty of resources online (Fred Hebert's Learn You Some Erlang For Great Good and Erlang in Anger are great as introductory, and intermediate texts, respectively). If you already know the language fundamentals...you'd not be asking about linked lists; you can only have singly linked lists in an immutable language (without extremely bad performance, that requires every update/insert/delete to re-copy the entire list), and they're so fundamental that the language's core has them for you. And most of the common data structures are well discussed in Learn You Some Erlang For Great Good. Sorting, eh, https://gillesleblanc.wordpress.com/2012/05/12/sorting-algorithms-in-erlang/ https://gillesleblanc.wordpress.com/2012/05/12/sorting-algor... . Graphs, you need to narrow down a bit, different types of graphs require different implementations, and due to the immutableness of Erlang will likely require thinking about in a different way than in a mutable language.
- amorphid 11y agoI haven't taken the Erlang plunge yet, but if I did, I'd probably try starting with Elixir, a language written in Erlang. There is a growing amount of buzz, community, tooling, etc. A basic understanding of Elixir would probably make Erlang a lot easier to understand.
- wslh 11y agoI would love to see a list of these 50 engineers, their skills and how they are organized. It provides guidance for other teams (even if part of their software is written in Erlang!).
- alkonaut 11y agoLanguage/platform choice explains why they need 50 engineers rather than 100. The trivial scope of the application explains why it's 50-100 and not 5000. It's a messaging service! If they weren't extending their application by developing new functionality then 50 even sounds like a lot (assuming they don't run any of their own hardware).
- koffiezet 11y agoDon't forget they also have to develop the front-end applications, which include iOS, Android, web, ... That will probably be the largest part of their engineering effort.
- nbevans 11y ago50 developers actually seems grossly too much for such a simple product. I can only imagine it is because they wrote the app over and over again for each platform, in that terrible legacy fashion, without being able to share any code.
- reitoei 11y agoYou say this, of course, with the experience of supporting that many users and platforms... right?
- KuhlMensch 11y agoThe language and culture of simplicity are great aspirations, all companies should look at doing this. However, not all companies are going to get such a huge benefit, as not all companies operate within a narrow problem domain. INSTAGRAM is another similar case: relatively simple solution (share photos with limitations), uses only single language PHP (at least since last I heard). I mean this is partly a reflection of the teams brilliance, and the foresight. But its also that the operational cost is relatively low compared to a payroll system that needs to abide by government regulations and reporting requirements (for instance).
- joeyspn 11y agoPHP? They're known for being a huge Django (Python) success. Or did fb converted them to HipHop?
- monkey_slap 11y agoStill Python here
- codeisawesome 11y ago"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." Concurrency is not parallelism! /whacks author over the head with a Go manual
- acconsta 11y agoYeah, but what's the best way to explain concurrency to a general audience?
- codeisawesome 11y agoLet me give it a non-journalistic stab: "A method of programming where you can safely allow many different, but related computations to occur simultaneously to arrive at a desired result. Thanks to the "safety" aspect, these computations can be automatically processed in parallel (at once) by many thousands of computers to increase the speed of the program, but no collisions of data processing will occur. In other words, no two parallel processes will work at cross purposes as a result of parallelization - when the code is written correctly and concurrently."
- sidcool 11y agoComments in this thread are quite cringeworthy. People calling WhatsApp a simple application seem to fail to understand the cost of simplicity under such scale.
- JupiterMoon 11y agoI think the point is more that WhatsApp continues to do one thing and to do it well. Conceptually this is simple -- although yes the scale adds plenty of complexity. Other social type services/apps/whatever try to become all things to all people they therefore become complex conceptually as well as due to scale.
- snake117 11y agoI like the "startup feel" that WhatsApp retained; hire few people that can solve immediate problems and roll out necessary features. This alone takes a great deal of work, but admittedly much more manageable because you don't have to deal with unnecessary features that could potentially hinder your customers experience.
- hellbanner 11y agoWell, they do more than just "one thing" like text-messaging. They support voice chat, location sharing, group messaging, games (I read that the Threes game is a WhatsApp game in Eastern Asia) -- lots of features.
- mpdehaan2 11y agoIt wasn't a great article from wired. I feel the language choice is probably the least contributing factor in terms of what's interesting at that scale. Yes, it's an eclectic choice, but I find systems/component architecture much more interesting than language and program architecture in scaling considerations. A bit more info here: http://highscalability.com/blog/2014/3/31/how-whatsapp-grew-to-nearly-500-million-users-11000-cores-an.html http://highscalability.com/blog/2014/3/31/how-whatsapp-grew-... With regard to fun challenges to solve, from that article: "Lots of problems related to scale as you might imagine. Problems with flapping connections, queues getting so long they delay high priority operations, flapping of timers, code that worked just fine at one traffic level breaking badly at higher traffic levels, high priority messages not getting serviced under high load, operations blocking other operations in unexpected ways, failures causing resources issues, and so on. These things just happen and have to be worked through no matter what system you are using."
- hokkos 11y agoBecause they kept their product simple and focused, it does a few things well. The Erlang thing is nice a nice fit, but mostly because they leveraged an open source product.
- hudell 11y agoI'll never understand why so many people prefered WhatsApp over anything that already existed previously and even worked better.
- piyushpr134 11y agobecause their product was and is the best.
- aianus 11y agoHow on earth is it better than Facebook Messenger?
- themoonbus 11y agoI don't need a Facebook account to use it.
- jzzskijj 11y agoBecause you can reach your friends and loved ones with WA. It is quite simple. You can make a better IM with fewer people, when you don't have bloat like stickers market and celebrity chats. And don't try to push people to buy those stickers in every possible menu. (Hi Viber).
- linkydinkandyou 11y agoOur company is solving a similar large-scale problem with very few engineers. And our answer, too, is Erlang! (And also, a few very smart, highly experienced, people with Math graduate degrees.)
- davidw 11y agoSo... what are you doing? Link?
- abebaaphumein 11y agoElevation of Privilege Vulnerability Could Bypass "Screen Lock" Of Android 5.0 Within 5 minutes http://haktuts.blogspot.com/2015/09/Bypass-Screen-Lock-Of-Android-5-x.html http://haktuts.blogspot.com/2015/09/Bypass-Screen-Lock-Of-An...
- joelthelion 11y agoI think part of it is their awesome product design: their app has few features, but they are well thought out and enough to make WhatsApp very useful. Fewer features mean less people needed for development and operations.
- bendtherules 11y ago"WhatsApp doesn’t talk much about its engineering work" - Wrong as hell. They first talked about this in erlang conf about 3 yrs ago, in 2012. [Youtube Link]( https://www.youtube.com/watch?v=wDk6l3tPBuw https://www.youtube.com/watch?v=wDk6l3tPBuw ). I hate how tech blogs take a thing thats quite well known and old and spins into a "did you know?" post like it was just unraveled (Oh, maybe your staff just heard about it, doesnt mean no one knows shit.)
- morley 11y agoI'd say one talk at an erlang conference three years ago falls into the umbrella of not talking much. The article doesn't say "they never talk about engineering."
- rdtsc 11y agoIt is an hour talk and it specifically mentions how Erlang was used and how it gave them a strategic advantage. I have found other mentions about it, perhaps on Erlang mail lists, here is an interview with Eugene Fooksman: https://pdincau.wordpress.com/2013/03/27/an-interview-with-eugene-fooksman-erlang/ https://pdincau.wordpress.com/2013/03/27/an-interview-with-e... """ And the consensus in our team is that it is largely because of Erlang. We’re managing to serve huge amount of connections from single front-end server (this is from last year’s Erlang """ I don't know how much clearer can it get. Here is another directly from their website: https://blog.whatsapp.com/196/1-million-is-so-2011 https://blog.whatsapp.com/196/1-million-is-so-2011 It is a bit older they clearly indicate that FreeBSD and Erlang are key and critical elements that let them operate they way they do.
- rdtsc 11y agoReading through comments, I think there is an undercurrent of slight envy or resentment (perhaps unconscious) both towards WhatsApp and Erlang. We are rational people so we'll never admit to that, so it comes out in other objections "It is a simple system", "I could do the backend in a weekend"... There are a lot of startup people here, who work at a startup, bet their time, money, life? on one, and talking about a successful lean startup sold for 19B probably bring feelings of "How come it is not my startup?". And then for Erlang, it has different syntax, and have to think about concurrency, functional programming, and it is hard for someone used to curly braces. Maybe many tried it, but dismissed it, or bet (time, money, life?) one something else so it is easy to say "But it is not about the platform or technology". Because other conclusions might mean "heck, maybe I made a mistake, I should have that up as well for my problem domain", nobody like to feel that way. Of course, nevermind that engineers from WhatApp have mentioned Erlang was one of their strategic advantages. Managing 2-3M connections per machine means needing to have fault tolerance (so Erlang is a good choice), but also means managing an order of magnitude less machines! One of the deeper insights we can learn in general is that at scale no matter how cool the concurrency mechanisms, how fast, and new, if they don't go hand in hand with fault isolation then it will just be a very fast system until it starts crashing and its throughput drops to 0. Of course you can do fault isolation with separate servers and OS processes (containers,VMs...) but in this case they do it at a finer grained level.
- rwj 11y agoThere are more than 50 engineers working to support WhatsApp. A complete count should include all of the work that was out-sourced, such as engineers at AWS (or whomever is supplying the computing), the engineers for Erlang, etc. If the government builds a bridge by using a construction company, no one says the government is capable of building a bridge with zero engineers. The app is still a remarkable achievement. Those engineers have done a remarkable job integrating everything (plus their own business logic on top), but they are also leveraging a great deal of work done by others.
- hansolo669 11y ago> If the government builds a bridge by using a construction company, no one says the government is capable of building a bridge with zero engineers. However I doubt people pay much attention to the companies quarrying rock to make concrete, or the engineers designing the axles of the trucks. Any large project is a team effort, but to count tangentially related projects as partitions of another ignores the achievements of those projects (i.e. AWS and Erlang are massive achievements that have, and will, exist regardless of WhatsApp). So, WhatsApp has 50 engineers modulo any dedicated support staff.
- claysmithr 11y ago> A complete count should include all of the work that was out-sourced No, it shouldn't. A complete account should just be people employed by the company.
- e0m 11y agoWhat I want to hear more about is how they got those users in the first place. Supporting 900M users might be easier then acquiring 900M users.
- bra-ket 11y agogreat product + word of mouth
- vinceyuan 11y agoI did know WhatsApp uses Erlang which supports hot deployment. But after reading this article, I still don't know Why WhatsApp Only Needs 50 Engineers for Its 900M Users.
- ericjang 11y agoQuestion for HN: what is your estimate on the minimum man/womanpower needed to scale a product/service up to 10K users? 1M? 900M? For instance, what fraction of Facebook's work is related to making things scale? How much effort does a smaller company like Quora put into scaling for users? I imagine PaaS/IaaS services like Google App Engine and Amazon Elastic Beanstalk help a lot but I'm curious as to what you think.
- temuze 11y agoDepends on the product! Are you making something that searches the entire internet for relevant documents based on a custom query? Or are you sending a picture to another phone that goes away in < 5s? Or is this a blog? If you're talking "minimum" then theoretically it could be 1 person. It's very easy to scale static pages. Heck - you could host a static page on S3.
- acconsta 11y agoSure, but what's the most popular application hosted on AWS? Does it approach 900 million users?
- joeyspn 11y agoIt was probably Instagram before they moved to FB datacenters, with around 150-200 million monthly users ... http://instagram-engineering.tumblr.com/post/89992572022/migrating-aws-fb http://instagram-engineering.tumblr.com/post/89992572022/mig...
- acconsta 11y agoMaybe Reddit now then? 200 million monthly uniques: https://www.reddit.com/about/ https://www.reddit.com/about/
- paradite 11y agoOn a side note, there is a Chinese Internet messaging software called QQ developed by Tencent (which later developed WeChat). it had hundreds of millions of users about 8 years ago, and it runs on multiple platforms, including Nokia, Android, etc. So the point is that it is not surprising for a similar app to be developed 5 years later by a small group of people. https://en.wikipedia.org/wiki/Tencent_QQ https://en.wikipedia.org/wiki/Tencent_QQ
- USNetizen 11y agoHere's part of what I don't get - there are so many government organizations, state and federal, jumping over themselves to provide funding, incubation and support to IT product/app companies across the country claiming it creates jobs when, as this shows, it is entirely possible to operate at incredible scale nowadays with a mere skeleton staff. So why do so many government-run and government-funded programs fawn over such companies when their ultimate goal is job creation and these companies are designed to run with barely a couple dozen people at most? This has nothing to do with private VC's; I completely understand why they are in the game. I'm talking about government programs or government-funded NGO programs that provide tax incentives and other funding or support to startups in the product/app space hoping it will create jobs. Maybe this isn't every state, but where I live this is the case.
- davidw 11y agoMy view is that government should stick to 'government' things like providing infrastructure, education, health care, and stuff like that. If there's money left over, lower taxes some, or even better, get rid of annoying fees and streamline things.
- kuschku 11y agoPart of this "streamline things" includes lots of IT infrastructure, though. You can’t get electronic tax filing without technology, you can’t get full open data availability with nice diagrams like https://www.destatis.de/bevoelkerungspyramide/ https://www.destatis.de/bevoelkerungspyramide/ without lots of IT workers in the government (this is available for every data collected by the German Federal Statistics Agency, btw), and you can’t get stuff like http://ims.kiel.de/extern/kielmaps/ http://ims.kiel.de/extern/kielmaps/ which show even lanes and zoning for cities without people working on it. Part of the job of governments is also always having reliable, high quality data about their country, for government purposes. But it also means they need to publish those for citizen, and they need people taking care of that.
- davidw 11y ago
- pbreit 11y agoI think this is the key line: “The number-one lesson is just be very focused on what you need to do”. My sense is that WhatsApp spends all of its energy on the very core product offering and not a bunch of superfluous activities. I don't think the language choice has much to do with it unless there's some sort of "keep it simple" thinking that the languages somehow exude.
- BuckRogers 11y agoYup, Erlang. If I move on from Python as my main programming language of choice, it would be to Erlang. So many are enthralled by Go and I never saw it. The Google association helps for those that idolize the corporation. Others feel Java is all we need or C# is all we need. Or JS and C++ and call it done. Some want to JS all the things. Erlang is a bit niche but it's indispensable like C, and Python is just such a great gen purpose platform. The most value is in the C/Python/Erlang triforce.
- KirinDave 11y agoFor reference, Level Money sold to C1 and had 1 backend engineer, 1 android engineer, and 1 ios engineer. This scale isn't unusual at all. Really it's a lot more about feature development. The smart way to build most mobile startups is to use managed providers like google app engine, AWS Container Service, or Heroku. Between that and how not-bad both Android and iOS are to develop for these days (compared to their history), it's possible to get your engineering team size pretty small.
- acconsta 11y ago>This scale isn't unusual at all How many apps are used by 13% of the world population every month?
- KirinDave 11y agoDepending on your architecture, this difference is often immaterial. That's what people don't get. When architected correctly, the actual amount of code to be written and maintained is quite low. And an easy way to jump-start that architecture is to have other people who have amortized the cost into a service model do that work for you.
- mahyarm 11y agoThe reason why whatsapp can keep it small is because they decide features based on engineering cost first. Does the designer want a feature or UX design that would be a pain in the ass to create with this UX kit? Is there a probably uglier equivalent that would take 1/10th of the engineering time? It gets shot down and we do it the engineer-simpler way. One UX example in the iphone app is the action sheet that pops up when you want to send photos or your location. While in facebook it gets embedded in a fancy keyboard drawer. The action sheet version probably took about 5 hours total for all of it, while facebook messenger's version probably took 500 hours minimum. Another example on the backend is how they are relatively stateless, do not keep chat histories, do not have real multi-device w/ one account capabilities and so on. Each of those features would increase engineering and machine cost, sometimes significantly.
- kcorbitt 11y agoI totally agree with what you're saying. But remember that they got to 900M users with this approach. Obviously users liked something about what Whatsapp's philosophy produces.
- chetanahuja 11y agoI'm surprised that nobody mentioned why whatsapp started with Erlang in the first place. They started out with an open source xmpp package. The most popular one at the time happened to be written in Erlang (ejabberd). There was no masterplan to scale to close to a billion accounts. As it happens, Erlang is an excellent platform upon which to build a message exchange service. Also, the article doesn't mention their completely non-traditional approach to ops. Despite the conventional wisdom in the valley, they run their own servers. And squeeze an enormous amount of value from a small number of servers. Their unique ops strategy is probably as much a part of their success as simply using Erlang. http://www.erlang-factory.com/static/upload/media/1394350183453526efsf2014whatsappscaling.pdf http://www.erlang-factory.com/static/upload/media/1394350183...
- chetanahuja 11y agoBasically they're a silicon valley company who've done everything that's exactly the opposite of standard silicon valley advise -- bootstrapped for first few years, complete apathy or even aversion to silicon valley marketing (if you live in the valley and have no foreign connection, you probably didn't even know what whatsapp was before 2012 or so), built for all client platforms simultaneously (including blackberry and Nokia), focus on non-US markets first, built out on leased hardware instead of public cloud, a simple pay-for-use business model selling to consumers (before facebook bought them), deep aversion to ads (http://blog.whatsapp.com/245/Why-we-dont-sell-ads? http://blog.whatsapp.com/245/Why-we-dont-sell-ads?) etc. The fact that their technology stack ended up being Erlang on FreeBSD is probably the least distinguishing feature about them.
- riffraff 11y ago> bootstrapped for first few years I recall whatsapp being free before it was for pay, how was it bootstrapped?
- ryanburk 11y agothey didn't take venture capital and instead self funded. even if you aren't generating revenue, you can bootstrap
- dodecaphonic 11y agoI recall paying for it in iOS, and getting a "it's free for a year" message on Android before the Facebook transaction.
- rurban 11y agoWhy would you need more than 3 engineers? This article should talk about what the 47 others are doing.
- guj11 11y agoDoes anyone know if WhatsApp uses Scrum (or similar methodology)? Also, do they do pair programming? My company has recently learned about scrum and pair-programming, that seems like the only way to success to them. So, it would be nice to know how other successful companies are organized and develop software.
- RangerScience 11y agoOnly comments as to a part of your question, but: "Employees rarely attend a meeting". Stand-ups are still meetings.