Intern Impact: Brotli compression for Play Store app downloads
students.googleblog.com
students.googleblog.com
You have a right to be unimpressed, but if you're taking the time to say "So what?" or "This is just a recruiting ad" then you should probably rethink. I never thought I'd say this, but the negativity here really indicates the kind of latent discrimination that so many URMs & women in tech complain about. I have literally no other explanation for it -- a senior engineer at Google could have implemented this compression and it would still be HN worthy, and nobody would be calling the blog article a fluffy PR piece.
No, I doubt it would be. How many of the hundreds of little features in the google play store have been posted on HN with an article about the person who implemented them?
Also, I find it more than a little presumptuous of you to assume that any scoffing is due to sexism. I see the exact same cynicism and lack of awe in the posts below that I have come to expect from HN - regardless of gender or color of the person involved.
Agreed on the high level of cynicism here -- we've also come to expect that. Moreover I never come to HN (my account is five years old) to point out sexism/racism -- it's just too sensitive and difficult of a subject and to be honest I'd rather just read/talk about topical things without getting political. But again, what I pointed out is stark and I have no other explanation for it (believe me, I want one).
Let me point out the title of the blog: "Google Student Blog: Google news and updates especially for students". Of course there is PR going on, and of course the achievements of an intern will often be on a smaller scale. But this particular achievement is high-impact and the intern deserves credit on that blog for her work. If you're not impressed, then just move on.
I think the issue is that the project here was a library swap, which isn't hard to do. It just so happens to be at Google, where small optimizations reap huge rewards. Google want's to market it as "hey, look at the huge impact our interns have" and make it sound like a big deal, when in reality it's not that much of a crazy technical achievement.
>> 1.5 petabytes of savings in data usage per day is not HN worthy? I've seen far less significant improvements get voted to the front page with hundreds of comments. This is more than a small tweak to the Play store.
I know a lot of interns at smaller companies who did very impressive work, but because the companies are smaller the numbers aren't as crazy (both women and men, I should add). The effort by them might very much be HN worthy, but you won't see it here because they don't have a huge PR machine behind them.
Kudos to Anamaria for the great work though! Will probably save Google some cash.
Well it is, but the merit should come first to the engineers who implemented the Brotli algorithm. What Anamaria did was just to include the code for that algorithm in the Play Store. Sure, it's some good work, especially for an intern, but I think it's a big exaggeration to say that it is that work that saved 1.5 petabytes/day.
Um, the fact that that her work saved that much bandwidth is a happy accident of the fact that she was at Google and assigned on a project that had a high user volume. Other than passing the intern interview loop, that took no absolutely no merit or effort on her part whatsoever.
Moreover, the blog post describes the work as "to add support for Brotli for both new app installs and app update." I mean, hundreds of thousands of developers use third-party libraries to add functionality every single day of the year. Some "achievement".
Please take off the X-ism colored glasses, dajohnson89. I promise that it makes the world look like a better place.
But, to say that there is "no merit or effort on her part" is an insult to all the good work interns do while they're here. They're not coasting.
Seems like you're so eager to tear this down that you'll say anything.
The intern in question had no part in making Google the size it is and was most likely not offered much choice in the way of team or project assigned, so no merit or effort was involved in either of the two. Which part would you like to dispute?
If you're going to make that argument, nobody at Google deserves any credit for anything we do. That's not how we normally measure impact. We all stand on the shoulders of giants, but putting those resources to work effectively still counts.
To be fair, 10% is the better number attributed to this change.
That ten percent amounts to 1.5 petabytes is a credit to the Google Play Store / Android platform.
Come on. That is so not hip these days. She saved a bunch of PB ? who cares. If only she built a nice shiny js app, now that is something to talk about
/s
was with you until this. hn's negativity is across the board, it's very unlikely there's discrimination going on here imo
So yeah, it's awesome she did this, but most interns should not expect this out of their Google internship.
It is things like this one which makes a great engineer. Not only to spend decades coding an earth-shattering algorithm that will take the industry by storm, but also knowing how to save 1.5PB per day with a rather simple (I guess it's not as simple) decision.
HN is supposedly full of business-minded technologists. How are we missing the great impact this had on the business is mind-boggling.
I can't find an explanation for this reaction either.
So bravo, Anamaria, for completing important work for Google, and bravo, Google, for highlighting her work in an appropriate place. Not every good work needs to be earth shattering.
If I had done something to save anybody 1.5 Petabytes of bandwidth per day, I would be very content for at least a few months. Congratulations to the intern for having such a lasting impact.
Please don't mar your fine comment with an uncharitable dismissal of your own, and please don't make up generalizations about HN to score rhetorical points. The problem of dismissiveness and snark on the internet is a systemic one that is far from limited to HN. Many more people here are charitable and good-natured than not.
We need more stories like this.
Please - if you criticised this article about how an engineer implemented a newly-published compression algorithm that saved 1.5 petabytes day, please go take 2 minutes to think genuinely about why you criticised this article. Your 120 seconds of introspection will benefit our entire industry regardless of your motivations and conclusions.
I'm sure this woman is a perfectly competent engineer and will go on to do things that are actually super cool in her life. And she likely already has, if she's got an internship at Google. This just isn't one of them, we all know it, and so do the authors of this article.
And from a technological viewpoint, some people here may find that swapping gzip/etc for brotli is not that astonishing. After all, she didn't invent or implement Brotli, but merely applied it.
Note, this is not to denigrate her work in any way - the results, scaled at Google's level, are very impressive.
It is sad to see this turn into a gender-focused discussion, as I'm sure we'd see all the same "meh" comments here regardless of intern's gender or any other physical traits.
Also, I've noticed this trend where the top comment is attacking over-exaggerated "astounding negativity". There's skepticism here under nearly every article, and the odd couple of dead, downvoted comments; not "astounding negativity" by any means. While it's challenging to resist the desire to virtue signal and collect karma points, please don't exaggerate.
I'm guessing this is not a measure of data at rest, but data transferred over the network. The couple samples listed on the page ranged from 2.5% improvement to 20.3% (vs. zLib) so I guess they're extrapolating that out to all app downloads and updates across the world. Nicely done.
More generally, we've seen some great advances in compression lately. I've been using Facebook's zStandard [1] for compression in a product I'm currently working on, and I've been extremely pleased with both its speed and compression ratio. The days of "just use zLib" are coming to a close.
Aside: anywhere you store compressed data at rest, you need to store (in a header somewhere) the algorithm used to compress that data. If you need to change algorithms down the road--e.g. you do get into a lawsuit with Facebook--you'll need that header to know how to decompress old data vs. new.
So no need to worry about the patent clause in this case right?
This [1] states that a LZMA has a decompression speed of 70 MB/s, which is about 0.7 seconds. The 334 MB/s speed of Brotli does the same in about 0.15 seconds. So the additional overhead of LZMA (compared to Brotli) in decompression is just 0.65 seconds.
Given these orders of magnitudes, I think optimizing for compression ratio is a much better option than decompression speed.
[1] https://cran.r-project.org/web/packages/brotli/vignettes/bro...
I am concerned that the Brotli v LZMA v GZip paper you cite is not fully representative as it is written by the the Brotli team.
Brotli: 4.77MB -> 1.21MB (8.5s) xz: 4.77MB -> 1.129MB (1.4s)
LZMA does better than Brotli in the case of binaries by a fair bit every time.
https://cran.r-project.org/web/packages/brotli/vignettes/bro...
I'm sure you can use those results to argue that LZMA is superior in some way (e.g. compression speed) but it definitely isn't clear cut superior in other important ways (compressed size and decompression speed are inferior).
I can see why, given those results, that they would use Brotli over LZMA.
And also those here: https://www.percona.com/blog/2016/03/09/evaluating-database-...
Suggest that LZMA compresses better than Brotli except in the case of text documents.
The thing that makes Brotli attractive though, is that it has high compression (again, very close to LZMA, sometimes even better) while decompressing MUCH faster than LZMA.
The big downside is that it is very slow in compressing, which makes it mainly suitable for 'compress once, decompress MANY times' type data.
Last year I was walking around a recruiting event at CU and just listening to the pitches being made by companies Facebook, Microsoft, Google, and LinkedIn (and in full disclosure was making the same sort of pitches for IBM with "Hey its the Watson group, its the most important company project and we're building one of the most important projects in it!" all to counter the fact that it was hundreds of thousands of employees, most of which were not having much impact at all.
You need stories where you can pitch them "if you're brilliant enough and work hard enough you can be the person who changes the world." otherwise the siren song of startups of "You will probably eat lunch with the CEO at least once a month, and everything you do will be really impactful." will carry the day.
A lot of my friends who have interned at Google felt insignificant, Google needs this counter-marketing.
The world has changed a lot.
When I was in college, I sought an internship specifically to have real-world experience on my resume to get a leg up when it came time to find a job.
I would say in my day, a Google Internship would have been amazing experience, even if I wasn't special and unique, however, Google wasn't really a the massive behemoth in 2001 (I first started using Google at my internship when the head of IT told me about it).
When will HN readers that they are furthering corporate agendas when they upvote fluff like this?
Speaking from my own experience trying to put together good intern projects, it's actually pretty tough to find that magic combination of something that will occupy an entry-level programmer for a summer, and give them a sense of accomplishment, and actually be useful to the team in the long term. In the past I've deferred useful work so that it could be given to an intern.
I think outside of this article, it's very different who gets recognition here.
However, this has got me wondering as a general corollary for application delivery...would it just make more sense to use something like a well-pruned and compact git repo, and make the connections over HTTP with gzip compression? I'm not sure how space efficient the git repo is but may seem like an interesting project. I'm wary of using any Google technology, open source or not if it can be done yourself in an afternoon.
Does such a thing even exist?
All objects in git packfiles are already compressed, so you aren't gaining much by adding another layer of compression.
Important context for this blog post and the comments in this thread.
First off, there is no such thing as a library swap at Google. Our codebase is quite large. Like shockingly overwhelmingly large. Executing a change like this is almost certainly not a case of "swapping out one configuration line for another." It requires writing new code, testing it appropriately, updating any integration tests, updating documentation, etc. But the real fun starts when you're done coding...
There's the issue of frontend and backend. Serving Brotli-compressed data is great, but what if you're app doesn't support it? If you're lucky, this will be handled by the underlying network layer but then you have to deal with...
Rollout. I don't know how many servers are dedicated to app updates, but I imagine it's a lot. I also imagine they're distributed geographically, across regions and probably even continents. Getting all those servers to support new features is a delicate, time consuming process where any misstep will result in users noticing. It's not coding, but that's why it's called "software engineering" and not "coding engineering." But then once you're servers are all up and running you have to deal with...
Versioning. Updating backend servers is bad enough, but at least you control them. What about that zoo of Android versions out in the wild? How do you ensure they all support this changes? Short answer: you don't. You design a strategy that will allow the rollout to happen gradually over a period of time, and closely monitor it to make sure nothing unintended is happening.
Then how do you turn down the old feature? When do you turn it down? You need to build and properly use instrumentation to determine the safest time to kill off the old feature. Or you could never kill it and commit to paying the cost in perpetuity. That's a design decision, and not a trivial one.
But, odds are you're not the only feature being rolled out. You have to anticipate/deal with potential interactions with other features, rollbacks of other people's work, etc.
I could go on, but I think I've already demonstrated why this is by no means a trivial accomplishment, even for a full time engineer. Add to this the fact that every intern has to race against the clock to get ramped up on their project, making something of this complexity and with this large an impact happen deserves applause.
I should add, I'm speaking as myself here and not representing Google in any way.
More akin to enabling GZIP in IIS...
Even small changes at that scale require careful analysis and coordination.
However my response was more to the click baity title giving the automatic impression an intern came up with an innovative approach that netted tremendous result.
To use an analogy, imagine if someone wrote: "$1.5M B" instead of 1.5 quadrillion or 1,500,000,000,000,000. You'd be confused, and rightly so. A lot of people would mistakenly read it either as $1.5M or $1.5B, neither of which is right.
In this case a lot of people are misreading it as 1.5 GB/Day instead of 1.5 PB/Day.
PS - The way Google uses it in the Blog post is pretty clear, they're describing what a petabyte is. My issue is with the HN title only.
¹https://en.oxforddictionaries.com/explore/how-many-is-a-bill...
Why not express it in nanobytes?
PB is a unit everyone is more familiar with than MGB.
M is well-known in headlines as million. A GB is something people appreciate the size of, TB not as much, and PB is definitely not in most people's vocab.
In which case it doesn't get combined with an SI prefix because the financial "M" is not the same as the SI Mega. Jamming two SI prefixes together is plain ignorant.
Nobody measures things in megagigabytes.
To be truly pedantic, "M" can also mean "mille" or thousand if you're talking about things like CPM. Mixing units like this introduces needless confusion when there's already a SI unit for the job: P.
I hope the rock you live under is heated, they're paid $6.6K a month + 9K-12K housing in the US.
I happen to know the person in the article. I was also an intern at Google this summer in Europe.
edit: In fact, for a lot of people, that is insanely good! Apologies if I came across as an asshole when I said "for an intern".
Also, it's a lot less than what competitors pay interns in London (Bloomberg, Facebook and Palantir pay interns a LOT better, among others).
In Poland, ~1000EUR/4000PLN/month is more than what an accountant makes. Teachers never reach this salary, even with 30+ years of experience.
You can easily live very comfortably on that salary, if there's two of you making that money you can buy a house and pay it off within 10 years or build one.
Being paid that much as an intern is just unheard of, most people I know would trip over and faint if they heard this.
Although I'd imagine Google pay their interns
"it's hard to predict what appeals court judges will rule on any of these cases."
https://www.washingtonpost.com/news/wonk/wp/2013/06/13/are-u...
> There are some circumstances under which individuals who participate in “for-profit” private sector internships or training programs may do so without compensation.
edit: (I'm guessing the downvotes are because I phrased it like a meme, but to clarify, this was a genuine compliment in response to a 'look what this person did' type post- it's inspiring stuff)
Don't get me wrong, I'm sure she did a lot of work for it, but looks like a lot of people would have been able to do that, there is nothing innovative in what she did, right?
That's why many 'hot' areas (like machine learning, for example) have a large gap between industry and academia. Researchers focus on "innovation" in terms of new approaches, aiming for marginally higher performance, and requiring increasingly complex models/infrastructure to unlock the remaining performance. On the other hand, combining an existing technology with industry knowledge of how to apply it can have a huge impact.
I personally wouldn't be too happy if my modest contributions as novice described as 'massive improvement for millions of our users'.
That's $15000 a day saved on data traffic. You are worth $5M+ per year now (at the same scale).
Yes.
> So what?
So she saved 1.5PB per day - which no other Googler did. Nor you or me. She did.
> Don't get me wrong, I'm sure she did a lot of work for it, but looks like a lot of people would have been able to do that, there is nothing innovative in what she did, right?
If it was that easy, why wasn't done already? Why did she have to come along to do it?
You are confusing easy to implement with easy to come up with the idea. In hindsight it is a no-brainer, but somehow the almighty Google didn't do in years of Play Store.
Go figure, right?
P.S.: Please support your downvotes with a reply.
How do you know that?
It might have not been her sole idea or even her idea, I'll give you that. However there's no evidence it was not her idea of partly her idea.
> Read the article
Please, this is the kind of comment not welcomed here. I did read the article before commenting. You are trying very hard to read between the lines, when Google is claiming once and again that her work saved 1.5PB/day - I'm not sure why will you try so hard to read a hidden message in Google's words and dismiss what's written in plain English.
> it's clear that it was her "project".
So what? See my previous paragraph.
> She's an intern at Google, they're generally on a short leash.
Generally or always? In the US or in Europe? It was the second time she was interning at Google (it's in the article).
Again, you are trying very hard to read between the lines and guess.
This engineer did something that saved users 1.5PB/day. She did, no one else did. Other people did other stuff. To each their own - I'm not sure why do we have to downplay her achievement though.
P.S.: This is the kind of shit women have to put up with constantly. It might look like it's not important, but when you have to go through this every day it takes a toll on you. The worst part is that we don't even want to acknowledge it.
Oh, come on. I'm not being facetious. The wording in the article is "work", "project" not "idea" or "initiative" -- which frankly would have been the article I was expecting to read. The article isn't even about her, by word count it's mostly about Brotli. There's nothing in the article to suggest that this was anything outside the realm of day-to-day software engineering.
> This is the kind of shit women have to put up with constantly.
Why are you bringing gender into this? I don't care what her biological sex is. I care that the original HN title made it sound like an interesting article about storage or service architecture and instead it was just "Google intern successfully uses existing Google library".
"Anamaria’s project was to add support for Brotli for both new app installs and app updates."
So someone else told her to do it, if she wasn't there some other intern would have made the same savings.
She did it, no one else did. You didn't, I didn't.
If other intern would have did it, then we would be having the same conversation about that other intern.