Live data from Hacker News

Making Instagram.com faster: Part 3 – cache first

instagram-engineering.com

11–20 of 72 posts

Re: Making Instagram.com faster: Part 3 – cache first

#11

The trick of properly applying operations to cached posts is cool. But the overall experience is bad. It's so frustrating to see an interesting post appear for a fraction of a second and then disappear. It would be far more usable to simply focus on getting fresh data as quickly as possible.

The same thing annoys me with youtube - notice something cool as you click something on the home page but then by the time you've clicked something and gone back its disappeared

This is made worse by the mobile experience of having every part of the page be some kind of button.

80% of my clicks are my palm grazing the edge as I hold it or trying to scroll and accidentally clicking on some block element link that doesn’t stand out as a button.

Re: Making Instagram.com faster: Part 3 – cache first

#12
post #7

> we immediately present users with a cached copy of their previous feed and stories tray, and then replace it with fresh data once it’s available I vehemently HATE this pattern. I'm on a slow connection, and I open the app. Yay, I see some (cached) content. I start reading. After a random amount of time EVERYTHING CHANGES, and I can't get back to it. It's gone, for all intents and purposes, forever. I'd love to have…

Similar to Twitter and other social apps. Agreed that it's a very annoying experience.

Re: Making Instagram.com faster: Part 3 – cache first

#13
post #7

> we immediately present users with a cached copy of their previous feed and stories tray, and then replace it with fresh data once it’s available I vehemently HATE this pattern. I'm on a slow connection, and I open the app. Yay, I see some (cached) content. I start reading. After a random amount of time EVERYTHING CHANGES, and I can't get back to it. It's gone, for all intents and purposes, forever. I'd love to have…

And the Guardian app as well. Opens to the last front page headline, and then refreshes after a few seconds.

Re: Making Instagram.com faster: Part 3 – cache first

#14
post #7

> we immediately present users with a cached copy of their previous feed and stories tray, and then replace it with fresh data once it’s available I vehemently HATE this pattern. I'm on a slow connection, and I open the app. Yay, I see some (cached) content. I start reading. After a random amount of time EVERYTHING CHANGES, and I can't get back to it. It's gone, for all intents and purposes, forever. I'd love to have…

I am astonished by how any organization with considerable resources to solve these things could arrive at this solution.

If its good enough to show, it's good enough for me to look at. If it's good enough to look at, don't fucking rip it from my eyes.

Do not touch the viewport after content has been loaded. Hydrated into the feed only below everything the user might currently be looking at.

Re: Making Instagram.com faster: Part 3 – cache first

#16
post #8
post #7

> we immediately present users with a cached copy of their previous feed and stories tray, and then replace it with fresh data once it’s available I vehemently HATE this pattern. I'm on a slow connection, and I open the app. Yay, I see some (cached) content. I start reading. After a random amount of time EVERYTHING CHANGES, and I can't get back to it. It's gone, for all intents and purposes, forever. I'd love to have…

I'm pretty sure if you touch the feed at all, or it detects you haven't seen the content before it'll put a button there that won't move you to the top of the feed until you tap on it for that very reason.

You have to scroll past the first post.

Re: Making Instagram.com faster: Part 3 – cache first

#17

> However, as the product grew, a side effect was that our web performance began to slow. Over the last year we made a conscious effort to improve this. We’ve [1] been advocating strongly for using performance budgets [2] as a means of protecting hard-earned performance improvements. There’s some depressing stat around performance regressions... something like 25-50% of big sites regress in performance 6 months after…

In my experience, this cycle of "add features and performance regresses" and "fix performance" is actually not a bad way to do it, because it allows for better overall budgeting.

If you're constantly ensuring that performance doesn't regress, this makes certain features a lot harder to implement. In some cases, the better solution is not to "make this feature take a lot less of the budget", but to say, "are there other parts of the budget that are easier to cut than the current feature".

Having regular performance optimization sprints allows for us to "cut where it's easiest" rather than forcing us to restrict non-performant features, when they might be very useful for the business.

Re: Making Instagram.com faster: Part 3 – cache first

#18
post #7

> we immediately present users with a cached copy of their previous feed and stories tray, and then replace it with fresh data once it’s available I vehemently HATE this pattern. I'm on a slow connection, and I open the app. Yay, I see some (cached) content. I start reading. After a random amount of time EVERYTHING CHANGES, and I can't get back to it. It's gone, for all intents and purposes, forever. I'd love to have…

I am astonished by how any organization with considerable resources to solve these things could arrive at this solution. If its good enough to show, it's good enough for me to look at. If it's good enough to look at, don't fucking rip it from my eyes. Do not touch the viewport after content has been loaded. Hydrated into the feed only below everything the user might currently be looking at .

This constantly annoys me on the shield TV. The YouTube recommended items will change while I'm scrolling through them. Something will look interesting and before I hit OK the item I'm currently on disappears. Unless I remember enough about it I can't find it again.

Re: Making Instagram.com faster: Part 3 – cache first

#19
post #17

> However, as the product grew, a side effect was that our web performance began to slow. Over the last year we made a conscious effort to improve this. We’ve [1] been advocating strongly for using performance budgets [2] as a means of protecting hard-earned performance improvements. There’s some depressing stat around performance regressions... something like 25-50% of big sites regress in performance 6 months after…

In my experience, this cycle of "add features and performance regresses" and "fix performance" is actually not a bad way to do it, because it allows for better overall budgeting. If you're constantly ensuring that performance doesn't regress, this makes certain features a lot harder to implement. In some cases, the better solution is not to "make this feature take a lot less of the budget", but to say, "are there oth…

Monitoring is key here. The point is that sacrificing performance should be a conscious decision not an accidental one. Small fixes can sometimes prevent big regressions from ever occurring.

Re: Making Instagram.com faster: Part 3 – cache first

#20
post #7

> we immediately present users with a cached copy of their previous feed and stories tray, and then replace it with fresh data once it’s available I vehemently HATE this pattern. I'm on a slow connection, and I open the app. Yay, I see some (cached) content. I start reading. After a random amount of time EVERYTHING CHANGES, and I can't get back to it. It's gone, for all intents and purposes, forever. I'd love to have…

Yes, I would rather the page be blank and load correctly rather than having content replaced while I'm actively looking at it. This pattern should be an anti-pattern, but I would assume they probably have a KPI to decrease site load time by a percentage versus a better product experience.
Post reply on HN