Hacker News new | ask | show | jobs
by brendamn 1241 days ago
Using WhatsApp as an example of a lean engineering org should almost be banned at this point. WhatsApp had a high performing engineering team that used basically the perfect set of tools to build their application (which also had a narrow feature scope; plaintext messaging). Even with hindsight there is very little you could do to improve on how they executed.

Just because WhatsApp scaled to almost half a billion users with a small engineering team doesn't mean that's the standard, or even achievable, for almost all teams.

6 comments

Agreed. There was a poster here who argued that Twitter could run on 50 engineers because WhatsApp did as well. It was a response to Elon firing most of Twitter's engineers.

In terms of actual revenue per employee, Twitter (pre-Elon) actually beat Whatsapp (pre-Facebook).

A better measure of success might be employees/revenue.

In 2014, Whatsapp made $10m and lost $140m. That's only $200k/engineer.[0]

By comparison, Apple is at 2.3m/employee. Meta is 1.6m/employee. Twitter is 680k/employee. These include non-engineers of course.

When you need to start making money, you suddenly need to a lot more engineers. Now you need developers to make sales tools, compliance, moderation, finance, A/B test engineers for growth ideas, niche features for big customers, engineers to bring down cloud costs, etc.

[0]https://www.theverge.com/2014/10/28/7085905/facebooks-prized...

Banning an example of a perfectly engineered product seems wrong. Does it set an example that’s very hard to achieve? Perhaps. Should others strive to learn from it? I say yes.
I think that one might think that an example is relevant if it has repeatable properties.

WhatsApp might be so straight to optimum that no visible properties of engineering are extractable, besides that the engineers made no errors in their judgments.

Making no errors is something you want to replicate, you just don’t know how. Seen like that, the example has no value.

Personally I think that showing that it is possible had some value per se

Was WhatsApp a "perfectly engineered product"? It's important to note that, at the time that Facebook purchased WhatsApp, WhatsApp was still running at a loss. That $0.99/year subscription fee wasn't cutting it. Maybe WhatsApp could have survived by raising prices, or maybe that would have prompted everyone to switch to Facebook Messenger (or Google Hangouts). It's an open question.

It's hard to claim, though, that WhatsApp was perfectly engineered when its financial model was unsustainable.

i fail to see the reasonning. History has proven that revenue is very orthogonal to technological perfection ( unfortunately for the amateurs of good engineering that we are here on HN).

Trying to assess the performance of the engineering team with the money the company generated would lead you to use let's say crappy php web framework everywhere, because that's what most businesses that make profit out of the internet are running for their CRM systems.

Doesn't make any sense.

    Trying to assess the performance of the engineering team with the money the
    company generated
 
But is that wrong? And if so, why? We're hired, as engineers, so that the business can make money. Insofar as our excellent engineering makes the business money, it is valuable. When David Hennemeier Hanson wrote the Rails framework for Ruby, his justification for using it was not that it was more elegant than Java, although it certainly was. It was that his convention over configuration approach allowed small teams of developers to launch websites quickly, by having the framework assume that they were doing things in "sensible" ways.

    would lead you to use let's say crappy php web framework
    everywhere
Maybe we should use more "boring" technology like PHP and Java. Has the continued replacement of Java with PHP, PHP with Rails, Rails with Node.js actually benefited our customers? Or has it benefited programmers' desire for novelty at the expense of our customers? At work, one of my co-workers proposed writing a new front-end component in Vue.js, rather than React, because React was "old" and "showing its limitations". I pushed back, arguing that all the rest of our code was in React, and I wasn't sure that he'd necessarily made the case for Vue providing tangible improvements in maintainability or speed of development. We went back and forth, but in the end he won out, and now we have a bit of Vue in our codebase. Has this improved anything for anyone, other than the programmer who now gets to say on his resume that he's implemented production code in Vue.js?

EDIT: That's not to say that I'm against all innovation. There are certain classes of innovation that have definitely brought tangible improvements in the speed of development and reliability of the software developed. Memory management is a big one. Going from (legacy) C++ to Java is a huge step forward, just by freeing the programmer from having to worry about the most common sources of memory leaks. Likewise, strong type systems are another advance, that is just coming into the mainstream with Rust (and, to a lesser extent, Typescript). Lisp-like languages (although little used) offer another step forward in productivity by allowing the programmer to write functions that can inspect the internals of other functions as data.

But I feel like that's a different category of thing than trying to argue the merits of React versus Vue or Python versus Javascript.

It’s arguably just not that relevant to most products; few real world products are as _simple_ in their requirements as original-WhatsApp. (Not a knock on original-WhatsApp, but you just can’t necessarily scale this model)
No, you see. We must rush out and break things first, then ask questions later. That's true engineering.

And then your computer wails in agony as another opened chrome tab drains 6GB of RAM.

Chrome has a million requirements compared to the original WhatsApp.

So do those tabs Chrome is probably loading.

And yes, in 2040, Chrome will be using 60GB of RAM for "similar" stuff (superficially similar).

WhatsApp is the platonic ideal of a consumer-facing software company. Even if your product does not fit the same mold, we all have something to learn from them.

I don't think it is commonly held up as a standard. Too few people are aware of the magnitude of its success for it to play that role, IMO. If anything its story is underrated and understated. Instagram's, as well.

Idolizing anything is a mistake, but treating them as a case study or example for lean engineering feels entirely appropriate -- who else would you point to?

I say the opposite, it should be done more often.

The problem is if you decide that you will need 1000 person org in 5 years, you will have 2000 person org in 5 years.

If you challenge yourself to have a 100 person org, you might end up with 1000 people anyways, but at least you're giving yourself a fair chance.

Way too often I see engineering for headcount rather than scale. Building out systems thinking "we'll hire X experts" instead of "we're Y experts, so let's use Y` that's inline with our in house skillset"

But Whatsapp lost $140m and made only $10m in revenue in 2014.

It wasn't a sustainable business.

In the six months ending June 30, 2014, WhatsApp brought in $15.921 million in revenue, but had a net loss of $232.5 million. However, $206.5 million of that loss was for share-based compensation expenses and issuance of common stock below fair value. Its net cash used in operating expenses during the first half of 2014 was $13.5 million, which sounds much more reasonable.

Essentially, due to WhatsApp’s quickly rising valuation, it used share-based compensation to attract top talent. Eventually, the $22 billion acquisition by Facebook would largely make the “expenses” of issuing that stock moot. This wasn’t cash that WhatsApp was burning, but paper money it was doling out.

My 10 yo was curious why whatsapp is free. “Nice of them to do that”. I couldn’t explain it I suspect something something selling your data
It also massively discounts all of the computing help they had from cloud providers. So if you tried to compare this to a company in say 1998, the team would probably be 10x fold (just data center people admins alone).
I usually use Instagram as my example. When Facebook bought them, they had 13 employees.