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 π
Top comments (38)
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
onbeforeinstallprompt
event. 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.
Hi Sam,
We are aspiring to build a strong developer community for our SaaS product. Our product has a marketplace where the apps are developed using the platform features & we are expecting 3x growth in no. of apps. (one of the primary metrics from our perspective). Currently, the engagement with developers is at its nascent stage.
What do you think should be the approach of DevRel and key aspects that should be focused at this point ?
What are the top 5 things that you would recommend to do in the short term? Say in 6 months to ensure strong developer engagement & enable them to build high-quality apps ?
It's not five things, but some general DevRel advice I've learned over the years:
make sure the sample code (or whatever) to use your platform is well-written and polishedβ99% of devs will copy and paste it to create their experience
be your zeroth customerβconstantly ensure your onboarding experience works well and try to look at it from different levels of experience
what 'community' means is different to everyone (mailing list, public chat, GitHub issues... ?), but make sure you have one, and code samples/answers are well-indexed so when folks search, they can get their answers easily!
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.
Please don't the f*ck follow ANY of these links. Reported for blatant spam. Please go away.
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.
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 π€·
Well I know this can be subjective, I'm a junior dev got his second job after many interviews and still failing at many interviews, but should I opt out and start learning Dart and Flutter? Anyways I want to focus more on mobile App dev and I think from the videos I have seen and the flutter community on reddit urges me to learn it, so yeah.
Also in the long run how should I not get burned out and frustrated of failing interviews. Even my senior friends (3-8 years of experience) also gets rejected in 3 out of 6 interviews here so yeah I don't want that to keep happening to me at an age of 30 or more. Any advise on that?
If this sounds more controversial I can understand anyone avoiding this question
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. :)
I know this will sound a bit like a stock question, but what's a typical day for you? Coding, creating talks, demos etc. or all the above?
Right now, it's wake up, change the baby, help my wife feed the baby, write a blog post to keep my sanity, ... repeat π€£
But when I'm not on parental leave, that is about right. The days stretch a bit too: while Googlers can work 9-5, for a remote person, it's often useful to get up early or stay up late to dial in to some meetings where possible. I try to work from the office even though my local team in Sydney is mostly DevRel folks from other teams, tooβlike Chris Banes (Android) and Brett Morgan (Flutter), so while we socialize etc, our product goals are totally not aligned at all.
I think the flow for DevRel is: we have an idea, we shop it around our colleagues, we build a prototype/polyfill, and then go to building some developer artefact (talk, video, whatever we think is best), or put pressure on browser vendors to fix some hole. Demos like proxx, built by my colleagues Mariko and Surma, is a recent amazing example of that. DevRel honestly is an amazing job because I mostly get to be creative for a living.
Cool. Thanks for sharing!
Oh, and my days right now also consist of watching game design talks from GDC's from previous years, because I find that interesting (and I have a naΓ―ve goal of writing video games while on leave).