Hacker News new | ask | show | jobs
by greenleafjacob 2438 days ago
Former Imgur engineer here who worked on the desktop site and helped on mobile when I could. A lot of the code that is loaded supports features that are used by a long tail of users [1]. However, they do serve the javascript with appropriate cache-control headers and serve them from Fastly's CDN so analyzing a cold load is a bit misleading to say the least. Moreover, as other commentators have mentioned, they optimized more for the subsequent images than the initial pageloads (they'd prefetch the next N images).

Keep in mind Imgur is not a large company despite their high traffic, even at their peak of employees the engineering team was pretty small (probably about 12-15 people after series A), and the mobile web team in particular was a handful of people, with a handful of people on iOS and Android, and a handful of people on desktop/backend/API (where I worked).

That said, I think Alan does care about these things. I know at some point they did support NoScript and did care about the experience with JavaScript off (and had code to support uploading images and viewing images with no JavaScript at all). But it's hard to have it as your top priority when Reddit and Instagram are trying to eat your lunch.

I'm sympathetic with the page bloat problem and noscript and I do think more effort should be spent on optimizing this stuff, especially because bandwidth is much of their opex.

[1] Posting, voting, commenting, uploading, accounts, tagging, albums, search. There is even a hidden-ish feature to "auto-browse" in a slideshow-like manner which you can find if you crawl around the source code.

9 comments

> A lot of the code that is loaded supports features that are used by a long tail of users

Bounce rate 53% according to alexa. So, majority of imgur users don't appreciate it, do hit cold load, etc. A user probably has to be dozens of interactions deep for initial loading cost to not be so high, but more likely there is no way to ever offset overhead of all that bloat for any user.

Personally, I use an extension to fix imgur brokenness and extract images from imgur pages without loading anything else.

Or the signal indicates most visitors are a result of an accidental link click.
care to share the extension? i found this, which seems similar: https://greasyfork.org/en/scripts/390194-imgur-redirect
Which extension? Sounds very useful.
> Keep in mind Imgur is not a large company despite their high traffic, even at their peak of employees the engineering team was pretty small (probably about 12-15 people after series A)

12-15 engineers is small? I'd call that a full-size team, for any single project.

"Officially" Google makes an entire web browser with less than double that: https://www.quora.com/How-large-is-the-Google-Chrome-team/an...

Conway's Law in action here. If it were one person, it'd be one IMG tag. When you put 12-15 engineers to work making a social website for serving one IMG, you get this.

Chrome.... definitely has more people working on it than that. It's absolutely ludicrous to try to say Google only pays 23 people to work on chrome. Perhaps that quora answer is being pedantic and saying only 23 people work on the closed source, non chromium bits?

Regardless, 15 engineers to make a webapp and mobile apps with all of the features mentioned for a site that gets "lots" of views (not sure how many but I'd guess we are counting in hundreds of millions of clicks a day at this point) seems pretty efficient to me?

Chrome is at the top of a giant tower of abstraction. Sure, millions of people built the tower. Imgur is even higher on the tower of abstraction, though. It should be much simpler. That's the whole point of the tower.

15 engineers doesn't seem especially efficient to me for what it does (or ought to). Just because you get a lot of views doesn't mean the software itself has to be terribly sophisticated. It usually means you host a ton of user-generated content. Websites which are relatively straightforward hosting of user content, like Wikipedia [1] and Reddit, tend to have orders-of-magnitude fewer employees than other types of equally popular websites.

[1]: https://meta.wikimedia.org/wiki/Wikimedia_Foundation/Annual_...

If you assume WMF were about 20% engineers back in 2010-2011, as they are today according to their Staff page, that would mean they had about 16 engineers. Is Imgur today as complex as all Wikipedia properties in 2011? That seems rather inefficient to me.

Chrome has hundreds of people working on it, at least. Aside from that Quora link likely being wrong anyway, it's also 7 years out of date.
Even Safari/WebKit has like a hundred people working on it, and the Chrome team is much larger. Probably an order of magnitude more.
> so analyzing a cold load is a bit misleading to say the least. Moreover, as other commentators have mentioned, they optimized more for the subsequent images than the initial pageloads (they'd prefetch the next N images).

I've been opening imgur links on my phone and watched it do nothing for like ten seconds, and I just assumed it was intentionally slow/broken so I'd install the app or something. I'm flabbergasted that it's actually the outcome of a deliberate optimization.

I'm sympathetic to what you say, but optimizing for following pages might be a tad optimistic if I leave after first failed load attempt.
It also doesn't help privacy-conscious users who clear their cache regularly. I use Firefox Focus on mobile and have Firefox in permanent private browsing mode on desktop, so I always get a cold load.
12 to 15 developers can be a significant, if they are experience and with good leadership. Lacking experience and good leadership you get what we're seeing here. I'm older, been coding since the 70's and smaller teams than this wrote many well known operating systems, many major brand-name applications, and the majority of the classic video games were created with teams 1/2 to 1/4 that size. Looks to me like Imgur has inept engineering management.
Serving less code is more important than serving lots of code from a CDN. All that javascript needs to be parsed too after downloading, and that's probably taking the bulk of the time on mobile devices.
Earning money is important so serving ads is important. The masses don’t care about them including 20 frameworks so serving less code is not important.
I've built 4 adtech companies. Page load speed is directly related to ad revenue. Faster pages provide more ad impressions, not less.
Imgur removed most of those features from the mobile site, apparently.[1]

[1] https://twitter.com/martinbean/status/1185605846933352450

We are considering 12-15 people a "small team" now? I've worked on large enterprise applications and I've never worked on a team that big!
Reddit is trying to eat their lunch?

Imgur sprung up as a fast image host for Reddit, then Imgur turned into a social media site - a competitor for Reddit.

In that process Imgur became shitty at their core function... hosting images!