DEV Community

Cover image for AMA, Sam 10-yr Googler in Web DevRel
Sam Thorogood
Sam Thorogood

Posted on

AMA, Sam 10-yr Googler in Web DevRel

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 (40)

Collapse
 
joshuamdeguzman profile image
Joshua de Guzman

Congratulations Sam!

I just have a simple question, what are your recommendations or suggestions for developers who want to work for Google? :)

Collapse
 
samthor profile image
Sam Thorogood • Edited

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

Collapse
 
joshuamdeguzman profile image
Joshua de Guzman

Now, that's something I don't usually see on the quora, or reddit posts!

Thank you, Sam!

Collapse
 
kresnasatya profile image
Kresna Satya
  1. What's different and similarity between Developer Relation and Developer Advocate?

  2. Will your team refactor Santa Tracker using lit-html or lit-element this year?

  3. What are Web API features you wish published and stable in all browsers in several next years?

Collapse
 
samthor profile image
Sam Thorogood • Edited
  1. 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.

  2. 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.

  3. 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.)

Collapse
 
georgecoldham profile image
George

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

Thread Thread
 
samthor profile image
Sam Thorogood

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.

Thread Thread
 
georgecoldham profile image
George

TIL! Ill take a proper look at all this.

Collapse
 
hem profile image
Hem

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.

  1. What do you think should be the approach of DevRel and key aspects that should be focused at this point ?

  2. 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 ?

Collapse
 
samthor profile image
Sam Thorogood

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!

Collapse
 
ananyaneogi profile image
Ananya Neogi

Congratulations Sam! πŸŽ‰

I have two questions for you -

  1. Out of all the programming languages you've worked with what's your favourite one and why ?
  2. What's the most challenging part of being in DevRel ?
Collapse
 
samthor profile image
Sam Thorogood
  1. 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).

  2. 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.

Collapse
 
dr profile image
David R. • Edited

Please don't the f*ck follow ANY of these links. Reported for blatant spam. Please go away.

Collapse
 
kensixx profile image
Ken Flake • Edited

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? =)

Collapse
 
samthor profile image
Sam Thorogood

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.

Collapse
 
ben profile image
Ben Halpern

Google has a culture of building its own tooling right? Could you describe that?

Collapse
 
samthor profile image
Sam Thorogood

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 🀷

Collapse
 
oathkeeper profile image
Divyesh Parmar

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

Collapse
 
aviaryan profile image
Avi Aryan

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.

Collapse
 
samthor profile image
Sam Thorogood

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...

Collapse
 
aviaryan profile image
Avi Aryan

Thanks for the response. That resource feels like a cheat sheet for math-based CP problems. :)

Collapse
 
nickytonline profile image
Nick Taylor

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?

Collapse
 
samthor profile image
Sam Thorogood

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.

Collapse
 
nickytonline profile image
Nick Taylor

Cool. Thanks for sharing!

Thread Thread
 
samthor profile image
Sam Thorogood

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).

Collapse
 
geekymoktan profile image
GeekyMoktan

I'm 17 years old. I know react. I build some projects using React.
What should I do next now.
Can you help to me know what should I do next

Collapse
 
samthor profile image
Sam Thorogood

When I was 17, I was mostly having a good time, working casual jobs and studying. My advice is that React might not be around forever (it also could be, I'm not prescient), so try broadening your knowledge a bit so you can become a generalist able to work in any environment. Build some toy programs in other non-web languages like Python, C/C++ (if possible), and study basic algorithms (they'll help you no matter what you end up doing).

Collapse
 
geekymoktan profile image
GeekyMoktan

Thank you

Collapse
 
stefandorresteijn profile image
Stefan Dorresteijn

Hey Sam, how do you feel about PWAs and their future?

Collapse
 
samthor profile image
Sam Thorogood

I think it's my job to say optimistic! πŸ˜„πŸ‘

Discovery and mindshare is always going to be a challenging problem. But even in 2016 (!), our stats from Santa Tracker showed that 10% of all Android launches came from the home screen icon, so it's not insurmountable either. Some of the ways we've tried to make the web more discoverable haven't worked eitherβ€”there used to be a beacon protocol which'd announce URLs on your Android, but that's been cut, and QR codes aren't exactly ubiquitous.

And this is all while every modern browser can actually register SWs, use their own cache and run offline. 99% of your users don't know this is happening. I'm still surprised when sites like dev.to do anything while my internet is down, and my job is literally to promote this behavior. And to be clear, I don't think being on the home screen is necessarily the ultimate goal of PWAs either. I don't want Reddit on my home screen but I'd love it if the experience was better when I do go there.

I'm reassured by the big players like Twitter and Facebook building proper PWAs, as that happens, I think your classic 'agencies' who are told by their customers that "we need an app" will have more data to push back on that and argue for web-only. I'm always amused when some single-purpose app is built for no particularly good reason (... I'm excited to see what @ShouldBePWA tweets next). I think this sort of 'fixing the long tail' will be what actually brings PWAs into the limelight.

Collapse
 
stefandorresteijn profile image
Stefan Dorresteijn

Thanks for the response!

I'm a big fan of PWAs and am writing a series on them at the moment. Google is clearly supporting PWAs, but Apple still seems to lack behind. Do you see them increasing their support or get behind PWAs in the way Google has done?

Thread Thread
 
samthor profile image
Sam Thorogood

I have no insight into Apple's motivations but we've seen some progress (reading the Web App Manifest, Service Worker support, ...). I can also plug PWACompat as a partial solution to some of Apple's problems... but it won't get you ATHS prompts. I don't think that should always be the ultimate goal, but it's what most people equate PWA success to.

Collapse
 
ben profile image
Ben Halpern

As an Australian, how has Google’s remote culture evolved in ten years?

Collapse
 
samthor profile image
Sam Thorogood

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.

Collapse
 
yaser profile image
Yaser Al-Najjar

If I worked at Google, what would be the top 3 things to learn?

Collapse
 
samthor profile image
Sam Thorogood

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.

Collapse
 
dev_in_the_house profile image
Devin

How does information flow between teams and departments at Google?

Collapse
 
samthor profile image
Sam Thorogood

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.