As of June 2019, I've worked for Google in Sydney π¦πΊ for ten years, starting after I graduated university. So I'll celebrate by answering your Qs! ππ
I'm part of the Web Developer Relations team. We provide guidance on performance, tooling, new web features, ... you name it! We also do some project work like conference websites and internal tools. I aim to support the "long tail" π: my videos, talks, blog posts, etc, are themed about what the web platform can do for you. π€π¬
What should you ask? Well, ask your developer questions about the web, especially its future! Or about some of the projects I've worked on:
- Santa Tracker: I'm the engineering lead, and we build fun things like Santa to show what the web can do (and because Santa! π ππ)
- Emojityper: Because when your job is to talk about PWAs, it's nice to have one to demonstrate! π
- Events: I work on events like Chrome Dev Summit, and I/O π«
And some past highlights, before Web DevRelβas a Software Engineer:
Maps: I worked on Google Maps for iOS, joining the team six months before it launched. Yes, that app! ππ±
Keep: Part of a team who built Google Keep. I remember building the first prototype of notes having different font sizes based on how much text was in each π§
Wave: Yes, that wave! π I built the Wave protocol. If you have an hour (or 30m on 2x!), the whole video is a great watch, even years later π
Since new Date is a scary thing for a new JS dev (and I'm on long leave, while sleep-deprived with a πΆ), here's a timer showing when I'll be around to answer Qs: β³
10 π
Oldest comments (38)
As an Australian, how has Googleβs remote culture evolved in ten years?
So "Mountain View" is what we think of as head office, and ten years ago, that was just a few buildings. Visiting MTV was simple, because you could basically hit up everyone you knew or worked with, in really a very small physical radius.
Now, we actually have a challenge of the company being say, about 10x as large as when I joined in 2009. So interacting with my colleagues is not as simple as going to one head office. We have other offices in the Bay Area, plus all the other engineering centers around the world.
This is actually great: it's one of the things I love about Google, that you can work for us but not have to move to Silicon Valley or just one of a few hubs. But it's not for everyone, and it means that it's really hard to conceptualize everything the company is doing.
Congratulations Sam! π
I have two questions for you -
I love the quote of "every language either dies or lives long enough to be transpiled to JavaScript". And it's true, I think it's the most universal language we have, so it'd have to be JS (even though that's probably a predictable answer).
Measuring our effectiveness is really difficult. If 100 people use a library or read a post, but go and change their behavior based on that, that's more effective than 1000's of people reading an article about something that perhaps they already understand.
Congratulations Sam!
I just have a simple question, what are your recommendations or suggestions for developers who want to work for Google? :)
Here are some links:
careers.google.com/how-we-hire/
techdevguide.withgoogle.com/
I'm actually involved with hiring, and have gone on many outreach campus trips around Australia and NZ (we get 100s of students in a room, and talk about Google and try to get applications). Fun story: I got made into a meme on Reddit once (from a photo from these trips).
For Software Engineering roles, my opinion is that Google hires generalists. This means that while you might be an expert in Java, maybe a team will have an opening for a C++ dev. We don't expect you to know C++ if your resume says you're a Java developer, but we try to assess that you'd be capable of slotting into almost any role.
What this means is, don't focus too much on the minutia of one language or type of problem. As for how we assess this, my advice for interviews: know one or two programming languages reasonably well, and be able to talk through solving problems on the phone. Call even your non-technical friends and get them to ask you the "basic" questions from online coding questions, and write up an answer in Google Docs while you do it.
HTH
Now, that's something I don't usually see on the quora, or reddit posts!
Thank you, Sam!
What's different and similarity between Developer Relation and Developer Advocate?
Will your team refactor Santa Tracker using lit-html or lit-element this year?
What are Web API features you wish published and stable in all browsers in several next years?
So Google has two very similar roles, DPE "Developer Programs Engineer" (which I am) and DA "Developer Advocate". Both roles exist within Developer Relations, but we also have Tech Writers, UX folks, ... etc.
Yes! I suppose you saw my post. After the crazy failure we had last year, I have a much better idea of how to build it out this year. Also, I'm currently weighing up whether to drop IE11: global usage is sub-2%, and it would save us a huge burden: I literally would get to ship only
<script type="module">code because that's what all evergreens support.I'm actually not sure! I think for PWAs to be successful, we have to solve some of the 'gaps' that make folks want apps. I'm often asked at events about access to SMS, Contacts, etc, and this list is huge enough that I'm not convinced just playing whack-a-mole is the right answer. (But I also don't work on standards at all.)
I feel that the largest issue with PWA's is the lack of public knowledge.
On Android users are hit with a popup, something they are trained to ignore. Then if every site pressured you to download its PWA then users will stop caring.
On iOS users are given no hint that it exists without prompt from the site. Apple seem keen to bury them.
I feel the solution would be to allow PWA's onto app stores and have more seamless transitions between the 'APP' and the web
So something you should look at is the
onbeforeinstallpromptevent. It lets you capture the 'popup' and display it again somewhere in your UI. Controlling this display is a better experience, because you can show it only to your engaged users, in a part of the UI that they'll expect.Trusted Web Activities are also a way, on Android, to get your PWAs on the Play Store.
TIL! Ill take a proper look at all this.
How does information flow between teams and departments at Google?
Most teams at Google will be located in a few offices with different timezones (although usually always partially on the west coast of the USA). So whatever you work on, you tend to use email, internal sites, docs etc, to share information, and have a couple of group chats.
Google has a culture of building its own tooling right? Could you describe that?
There's a bit of history here, I think. A good example is Google's Closure Compiler (which I've worked on, a little bit): it existed aeons before the Node ecosystem, and Babel and Rollup etc, and I think we tend to try to build things that don't exist elsewhere.
I think the (assumed) negative connotation is that we still use Closure, and so we must not be keeping up with the times. I'll let readers decide if that's correct or not π€·
Congratulations Sam! π
Here is my question for you -
With regards to learning and diving in actual code, what resources have helped you in your journey and would really recommend to aspiring beginners? =)
So I started coding when I was a young'en, so I don't think I can actually give solid advice for beginners. I had a head-start that many others did not.
I think there's two angles: aim to build a real website, app, etc, because it's something you can do. Use frameworks and tools because they are how the world works, but don't be afraid to dig into their source to see how they work, either.
If I worked at Google, what would be the top 3 things to learn?
I've answered this a bit elsewhere, but my advice is that we look for generalists. Be able to dive into varied code bases in different programming languages.
Please don't the f*ck follow ANY of these links. Reported for blatant spam. Please go away.
What general purpose books do you think are a must read for a software developer or programmer? By general purpose books, I mean something like "Introduction to Algorithms".
Thanks.
I'm trying to think back to my university days (literally 10 years ago). For me, my CS degree provided a bunch of those foundations for me (and yeah, my professors got me to read textbooks, but it's been so long that I've forgotten them). So I don't have specific advice.
What I will say though, is understanding the fundamentals is important. As bland as it seems, research how a dictionary/hashmap works, and research big-O notation at a high level.
And my favourite esoteric resource, for anyone programming languages with proper integer types (i.e., not JS, but WASM is fine):
graphics.stanford.edu/~seander/bit...
Thanks for the response. That resource feels like a cheat sheet for math-based CP problems. :)