It's amazing how much faster Mastodon is than Twitter, e.g., it takes 22s vs. 86s to load the same thread (https://mastodon.social/@danluu/109310899548757516 / https://twitter.com/danluu/status/1590122315274412034) on an old cell phone with a mediocre connection in Toronto.

Mastodon isn't exactly hyper optimized, but Twitter is anti-optimized despite quite a few very good engineers having done serious optimization work to speed up Twitter.

Unfortunately, that was always a 1 step forward 2 steps back affair due to leadership priorities.

I always thought that was funny since, if you looked at the data, client optimization work was consistently the highest ROI work around for $ and also high ROI for DAU for the obvious reason that the site and app are so slow that most potential users can't use it.

This can also be framed as an accessibility issue, but Twitter didn't even have an accessibility team until a thread about how accessibility work was spare-time volunteer work went viral, so of course Twitter didn't care about that.

I had a https://thezvi.wordpress.com/2019/05/30/quotes-from-moral-mazes/ moment when I looked into this.

Because no one could get permission from management to do client optimization work, someone fixed an anti-optimization while they were on paternity leave and no one could prevent the work.

The anti-optimization was that feature flag parsing at startup took something like 1s to 2s on a fast-ish phone, which meant that it could take half a minute on a slow phone.

Fix was worth ~0.3% revenue, a huge amount of $ for a simple fix.

Quotes from Moral Mazes

Don't Worry About the Vase

But leadership was much more interested in "visionary" work than mundane, high-ROI, data driven work. Putting 1% of SWE-hours towards client optimization would've generated huge returns but the company couldn't even do 0.1% consistently.

Anyway, the people wanting to do client optimization work had been fighting for a very long time to get funded but still couldn't get funded, so I emailed [Very Important IC] with a short explanation of why I thought the work should be funded and then

VIIC emailed a couple people with a short comment like "this looks interesting". Some director or VP responded with, basically "We already knew about this and were already planning on funding it, nothing to see here", and the team got funded.

The team was defunded after a while. Of the reasons I've heard as to why, I think the two funniest are:

1. Covid caused enough user growth for the company to hit its growth target for the year, so work that directly drove more growth was deprioritized.

2. The team was told by org leadership they had a year's runway, so they prioritized the highest impact stuff that would pay off a year down the line instead of doing a series of smaller things. When leadership evaluated the team, they didn't see short term impact and killed it.

Anyway, when people ask "why doesn't company X not produce more with N employees?", much of the reason is due to leadership ADD as well as conflicting leadership priorities resulting in opposing work being done.

@danluu exceedingly few of the managers on teams I've consulted with understand the revenue relationship here, and that leads them down shockingly bad tech tree branches on the back of false (or at least misapplied) narratives
@danluu How much of the long list of requests on the left is tracking & ads related?

@anseljh @danluu: TL;DR: both are quite slow, but the Twitter trace has a LOT of small component fetches (presumably for later use/caching) that don't impact the critical path much.

Big UX difference is ~570K vs ~360K main JS bundle. Both are obscenely huge, and Mastodon's could take a second off with better hosting, but that difference matters.

@danluu interesting for sure, I've found mastodon iOS apps to be very slow and a bad UX on the whole, while the twitter app seems much better. I'm probably doing something wrong?
@danluu @peepstein you might enjoy using mastodon in browser more, and adding it to your Home Screen, it works pretty well
@zeina @danluu making scalable distributed systems work well is very challenging.. and "distributed systems" includes the client behaviour. So I don't fault them for it, but in order to make even the web UX usable, I've had to turn off streaming updates.
@peepstein @danluu they’re getting better, there’s a bunch to watch out for like Tusker and Mammoth

@danluu how many trackers and other unnecessary marketing elements are on the proprietary services?

Corporate sites sometimes put a lot of effort into optimization, then lag waiting for all the pixels and trackers