I am Surma, Web Advocate and Engineer at Google. Ask me anything!

Held on 28 February 2019, 7:00 pm

Hello everyone,

I am Surma. I am an open web platform advocate and engineer at Google. For better or worse, I am half of the HTTP 203 podcast and used to do a YouTube show called Supercharged. I am part of the core team behind Squoosh, creator of Comlink and also brought you Tinder for Bananas. I also gave a talk at last year’s Chrome Dev Summit that went horribly wrong.

Ask me anything on the following topics: Anything. It’s why it’s called an “Ask Me Anything” right? But if you need some ideas to get started:

  • Web Performance
  • App development
  • Architecture
  • Houdini
  • WebAssembly
  • Standards
  • Mechanical keyboards
  • Programming languages
  • Sitting next to Jake all day

Thank you for all your questions! I think I managed to reply to everyone, but if you have more questions, please feel free to reach out to me on Twitter!

Alessio Chiffi's photo

Is Microsoft releasing a browser version based on Chromium?

Sandeep Panda's photo

Hey Surma! Thanks for the AMA. :) What led you to be a Googler? Please share your story.

Surma's photo

My story is actually really boring. I was the co-lead of the GDG Berlin Golang. Through that, I met many brilliant people that do amazing community work in Berlin. Like Stefan Hoth who was organizing the GDG Berlin or Ben Weiss who was organizing the GDG Berlin Android (they just turned 10 years old 🎂). These people along with their co-organizers also organized events like the Berlin DevFest and similar things, which gave me the opportunity to meet a lot of people, amongst of which a couple of Googlers.

Eventually, Ben got hired by Google and he recommended me to HR. At this point I had my own company that went bankrupt and still hadn’t finished my Master’s degree after three years or so. I never thought I’d get through the interviews but why not try? But I did get through. So here I am 🤷‍♂️I am incredibly fortunate and thankful for all the people who have paved the way for me and for the massive amount of luck I had to get to this point.

jalpesh vadgama's photo

Hi Surma,

Thanks for AMA!!. How is your typical work day? And what languages and tools you are using on your day to day!

Show +1 replies
Mark's photo

my go-to language

Is that a pun on "Go"? Or it's your favorite language that supports 'goto' instructions?

jalpesh vadgama's photo

Thanks for the answers. What is your favorite editor and why do you prefer it.

Girish Patil's photo

I would just like to say that. You and Jake are perfect hosts for http 203. You guys are funny and the content you guys talk about is 🔥. Thank you for that and this AMA.

Surma's photo

You are too kind <3

Roberto Clapis's photo

What is your least favorite language and why is it c++?

Surma's photo

Templates are Turing-complete.

Surma's photo

For the record, C++ is not my least favorite language.

Yves Sinkgraven's photo

Tell me your thoughts on net neutrality? :)

Surma's photo

Ah, asking the easy questions, I see 😉

Seriously, though, I think net neutrality is extremely important. And before I even try and verbalize my reasoning, CGP Grey did it much better than I ever could.

Jose Alcérreca's photo

Have you ever had a technical problem onstage? Did you succeed at finding the problem immediately? Was your laptop plugged in?


amer dababneh's photo

Hello, We are seeing new tools coming to web dev like WebAssembly,Houdini etc. It opens a lot of opportunities but at the same time it brings more complexity. Do you think the average web developer will benefit from these technologies or it requires some more advanced skills?

Surma's photo

Both, really.

Houdini, for me, is more of a “power-user” feature. I expect a couple of well-versed people to build modules for Houdini that everyone can then use. That doesn’t mean that the average web developer can’t write Houdini modules, they just might not get the same mileage out of it.

It’s practically impossible for one person to know every API browsers offer nowadays, so you need to know where your interest lies and what problems you encounter on a day-by-day basis.

Kevin Woblick's photo

Hi Surma, thank you for hosting this AMA. May I ask what your thoughts are about the ongoing discussion about Google Chrome becoming the next Internet Explorer? Many users say that Google ignores standards or develops features without them being a standard at all, to shape the web to fit their needs.

Surma's photo

I disagree with the sentiment that Google or Chrome ignores the standards process. All of the features that we want to ship go through all the stages: Write an explainer for the standard, see it through WICG, have it adopted by a standards body, have other browser vendors agree and sign off on the API design, get a TAG review, then ship it.

The part of “developing features without them being a standard” is kind of part of standards process, though. We sometimes develop a feature and put it into Chrome Canary behind a flag for experimentation. This is not shipping a feature. The only way a feature will land in stable Chrome enabled by default is when it’s been signed off by our browser colleagues at Apple, Microsoft and Mozilla.

It is not in Chrome’s interest to encourage web apps that only work in Chrome.

dGrammatiko's photo

Hey Surma, nice to see this AMA.

Quick question: some time ago you did a theme to introduce SW to WP. Could you share some infos on the event bus?

I would like to propose a similar implementation for the default Joomla templates.


Surma's photo

I am assuming you have watched YouTube series about the WordPress theme I wrote?

The event bus allows you to write individual modules that can run completely independent of each other, without even knowing if the other modules are already available. This allows much more rigorous code splitting and lazy-loading. It kinda makes you write small services rather than tightly coupled OOP code.

In a way, this was the predecessor to the Actor Model library that Tim van der Lippe, Paul Lewis and I wrote. We gave a talk about it at Chrome Dev Summit 2018!

Let me know who you get along with Joomla!

dGrammatiko's photo

Nice, I've been following both the youtube series and also watched your presentation of the Actor Model. I guess it would be extremely valuable to the Joomla project once we put some code in GitHub if you could spare some time to review it.

Thank you 🙏

Sam Mckenzie's photo

What are you really looking forward to technlogy-wise for the web in the next 5 years? WASM becoming more popular? TypeScript taking over the JavaScript world?

Surma's photo

I don’t think TypeScript “takes over” JavaScript :D It’s synergetic, not adversarial. But that just as side note.

It’s hard to pick favorites, honestly. Wasm is definitely exciting and very fun. I am also looking forward to WHATWG streams being universally available. They are so versatile and flexible. WebGPU is also cool. SO MUCH IS HAPPENING.

Michaela Merz's photo

What is Google's stance in regard to web-apps? Are they seriously considered to be (future?) alternatives or even replacements for native apps? Or is it more like let's wait and see? Or closer to .. let's throw those Javascript people a few bones, but web-apps will never replace native apps? A lot of strategies depend on those questions .. ?

Surma's photo

I think you are being purposely inflammatory here. We have been working hard on bringing capabilities to the web platform, together with the other browser vendors.

I’m curious what makes you think we’d waste this amount of resources, money and time on “throwing a bone”.

Michaela Merz's photo

Uh ohh .. it was NOT my intention to step on somebody's toe here. I am very sorry. 'tschuldigung.

Anyway - with the migration to Kotlin I have had developers asking themselves in which way they should continue to think. And - since some bugs (especially in regard to web-push to a dozing phone) haven't been taken care of in more than 15 months, I was just curious as to whether Google understands web-apps to be complementary to native apps or if they see web-apps to become as important and equal as/to native. Again - I don't want to sound disrespectful - I am genuinely curious in regard to Google's strategies.


Florian Reuschel's photo

Okay, I'm gonna try this. 😁 What's your first name?

akshay birajdar's photo

Hi, what is your opinion on "should frameworks like react, angular etc adopt webassmebly for performance benefits". Will there be any noticeable benefit or will it just add up the cost in terms of maintainability.

Surma's photo

I have no hard data to support this, but I don’t think WebAssembly will help much. The problems we see are big monolithic chunks of JavaScript, forced layouts and forced paints.

JavaScript is extraordinarily fast considering it’s a weakly typed, originally interpreted language. In V8, JavaScript and WebAssembly have the same peak performance. Sometimes it’s harder to get there with JavaScript, though. So WebAssembly might make some cases faster, but the biggest problem is that there’s no easy way to break up work into smaller chunks and yielding to the browser in between these chunks.

Additionally, all of this is still happening on the main thread, when a lot of the work web apps do could be happening in a worker to keep rendering much more responsive.

Roberto Clapis's photo

If you could remove one thing from the web platform, what would it be?

Surma's photo

The misspelling of Referer.

In all honesty, though: It would probably be the removal of “synchronous <anything>”.

Olle Hellman's photo

What apps should be native and not be a PWA?

Surma's photo

Whenever there is an API that is not available on the web (e.g: Contact API) you should go native. If you need deep integration with the hosting operating system, you’ll probably also want to go native. But in the last couple of years, browser APIs have become incredibly powerful and versatile so that going native is becoming less of a requirement and more of a choice.

Syed Fazle Rahman's photo

Hey Surma, thanks for the AMA. We are super excited to have you onboard. 😀

Just wanted to say, I regularly use squoosh.app and I am loving it. Do you plan to release its APIs? That would be interesting. :)

Surma's photo

It depends on what you mean by APIs. Contrary to popular belief, Squoosh is 100% client-side. There is no server that does the image compression, it all happens in your browser through the magic of WebAssembly. So there are no APIs we could possibly expose. I am planning on publishing the WebAssembly modules to npm though.

If you want to remote-control Squoosh with a client-side API, I am currently working on exactly that through the magic of Comlink.

Paul Melero's photo

What will be the next big thing after requestAnimationFrame for scheduling and micro tasking? (Big props to Paul Irish 🙌)

Surma's photo

I think we need a proper scheduler on the web. Something like Grand Central Dispatch on iOS. With priorities, tasks and a way to move work off the main thread.

My colleague Shubhie Panicker has been working on a Scheduler API proposal. It’s just the first step and doesn’t do anything that I’d want it to, but it’s a great first step!

Barry Pollard's photo

Can you talk to the web advocate side of your career. You’re pretty visible, (and busy!) and spend a lot of time hosting conferences, giving talks, your podcast, Twitter, AMAs... etc. How much of that is formally part of your role? What’s your split in time between that and development work on apps like Squoosh? Or is the advocacy actually your role and the fact products sometimes come out of it an added bonus? How did you and Jake get into that (other than being genuinely awesome at it)? Any issues with being seen as one of the voices of Google as I imagine you don’t run everything by a PR/Marketing person for approval!

A lot of questions there but hopefully giving you a flavour of what I’m asking rather than necessarily wanting a specific answer to each one.

Surma's photo

Pretty much all of the podcasting, tweeting, presenting is definitely part of my job although only useful to varying degrees career-wise (like shitposting on Twitter). And yes, care is definitely important when making public statements, as we do not run every tweet by our legal team (even when we tweet from @ChromiumDev. Our team is given a lot of trust, which makes our job so much easier.

For a while now we have been trying to embrace “Walk the walk, then talk the talk” as our motto, meaning that we should behave like real web developers. No cheating. Use the same tools, build apps from start to finish. Just that along the way we take notes about what is painful or difficult, where is DevTools lacking, what bugs did we find etc and feed that back to the appropriate people. And then we turn our lessons learned into (hopefully) useful articles, guidances and talks.

Squoosh is a product of that process and we are quite happy with the results and the reception :)

Paul Melero's photo

Hi, Surma! Big fan. Thanks for the AMA.

Do you think it's important to know about algorithms and data structures if you are a front end developer? 🤔

Surma's photo

Most of the time you don’t need knowledge of data structures and algorithms. I think the important skill is to recognize that a certain problem you are encountering is, let’s say, a graph problem and that you can find and implement different algorithms to solve that problem. Often you can also just pull in a library that does these things for you.

That being said, having a deeper understand of what is happening will probably help you make more informed decisions with respect to performance.

Paul Melero's photo

Thanks a lot, Surma! 🌈🙌🏾😊

Aqueel Aboobacker's photo

Hi Surma,

Which books helped you the most as an engineer?

Surma's photo

Somebody asked a similar question. I don’t learn well from books. I learn by doing and trying (and from other people!).

Gergely Nagy's photo


What are your coping mechanisms for burnout/loss of motivation?

Surma's photo

I suffered through a burnout while working at my own company (which failed miserably), so I know my signs of burn out. My alarm bells go off when topics that should be exciting are not and I am more nihilistic (than usual). But these signs are different from person to person.

If I notice these things, I know I need to take a break and “do one for the soul”, as Paul Lewis says. Find a project that I want to do, with no connection to my day job. Sometimes it’s even better to put away the technology and enjoy some sports, the outside, and other non-technology hobbies (currently that’s photography).

In general keeping an eye on work/life balance has proven quite effective for me at preventing burnout.

Drew Bradford's photo

Does WA signal the possibility of AAA game development in the browser?

Surma's photo

I think AAA games were already possible on the web.

I think with WebAssembly we might see that it becomes easier for big companies to re-use their existing tooling without having to sacrifice performance. I guess Wasm might make it more likely :D

shaiju's photo

I am a .Net Software Engineer with 4 years of experience.

Recently I saw that Data Science and AI is booming and provides lot of opportunities with high paying Jobs.

Today it’s Data Science, but in future it will be some other X technology which may boom and create opportunities.

Related to this I have 2 Questions:

  1. Is It good time to leave Software Engineer career and became a Data Scientist instead ? Or Should I be focused as a Software Engineer with mix of Data Science and AI skills like Python, R Programming etc. ?

  2. How to decide to have best tech career on fast changing technology trends?


Surma's photo
  1. Over time I have learned that experience is the most valuable asset I have, so I wouldn’t switch fields that easily. You can be part of the boom as a software engineer, you don’t need to be a scientist, in my opinion.

  2. Learn the basics, the foundation, the platform. Learning architecture and code patterns will be useful no matter what the currently popular paradigm is.

Madhu Sudhan Subedi's photo

Hi Surma, What kinds of people you like to work with?

Surma's photo

People who are better than me. I just love learning from my colleagues.

That being said, respect and ability to communicate are necessary for any form of collaboration. Can’t learn from someone who can’t communicate.

Thibault Molleman's photo

What would be the absolute pinnacle of "We finally managed to do x on the web"? (What is the absolute hardest thing to get running in a web browser right now)

Mark's photo

"We finally managed to do general artificial intelligence on the web" :-) Does it have to be already running in non-web environments?

Nicolas Bouhours's photo

Hi Surma

What is the next "new" programming language that you want to learn ? and why ?

Surma's photo

I have been writing a lot of Rust recently and have thoroughly enjoyed it. It’s like the best parts of C/C++ and Haskell in one language.

Not sure which programming language I want to pick up next, to be quite honest. Maybe I should finally learn Python?

shaiju's photo

Which is the first programming language do you recommend to learn to know the fundamentals of computer programming ?

Is C# or Python Or Java a good start ?

Sathya Gunasekaran's photo

What's your favorite new ECMAScript feature? Why?

What do you think is missing from ECMAScript?

Surma's photo


I think ECMAScript needs a way to move code between realms. Like this absolutely great Blöcks proposal.

My favorite feature would have to private fields 😉

Milica Maksimović's photo

Which books/resources would you recommend to fellow developers?

Surma's photo

I am not a book learner. I remember reading Mastering Regular Expressions and the knowledge from that book is useful to this day. It’s also hard to recommend resources for “developers”. It really depends on what you are into and what you are working on. For example, if you are into graphics, Real Time Rendering is great to have, but if you are not into that, it’s gonna be boring!

Victor's photo

I think you have one of the coolest job in the world advocating and helping mold the future of the web. If one would like to follow your career cough cough what steps you recommend?

shaiju's photo

Recently I heard Microsoft has released Blazor.NET web framework which works with WebAssembly technology.

i.e Now Blazor will allow you to use C# code client-side. No need to learn huge complex JavaScript frameworks/libraries like Angular, React, NodeJS etc.

What do you think about these innovations ? Is this is the future of the web technology ? Isn't this will help developers stop learning JavaScript and rather develop Client side apps using any one Server side technology like C#, Java etc ?


Mariko Kosaka's photo

Favorite kind of sausage ?

Sam Mckenzie's photo

What's the quickest/easiest way a web dev can make a performance improvement on their existing website?

Surma's photo

Repeat after me: I will only animate opacity and transform.

Seriously though: The biggest problems I see are

  • forced layout and paint
  • bit monolithic chunks of JavaScript execution
  • big images
  • too much JavaScript

Run Lighthouse and ship less code!

shaiju's photo

Do we need to be good in math like algebra , probability , statistics to be a Good Software Engineer ?

Milica Maksimović's photo

What does your setup look like? Which hardware and tools do you use?

Surma's photo

I recently upgraded to a completely over-the-top bonkers iMac Pro setup at work! setup

Usama Asfar's photo

Do you really love working for a company?

shaiju's photo

How would you test a Software Engineer or Programmer to find whether he really knows to code ?

Will you ask him to write c or c++ programs or ask some questions on technology ?

Pavinthan's photo

Hi Surma,

Thanks for AMA!!. I'm a web developer I need to know how browser render a website?

  1. How JavaScript execution in V8 or any other engines
  2. How can I monitor that JavaScript execution
  3. Memory and CPU usage of each and every line of code
  4. How network layer works
  5. How CSS works
  6. Can I see everything in the render cycle
  7. How Chrome developer tools works
  8. How developer tools capture performance and networks
  9. Where is the cached files store in Client's OS

may you please answer ?

Surma's photo

That’s... a lot. And those are very broad questions.

To cover a subset of your topics:

Pavinthan's photo

Thanks Surma to answer this questions, I'll read them and How can I find answers for rest of questions ?

I need to know how my code works!

Vipul's photo

There was also a time when you were starting out with things esp. Web. How did you make yourself a professional from being a beginner in this field?

Surma's photo

I started at Google without having a lot of experience in web development. I had and still have the massive privilege to sit next to incredibly smart and experienced web developers who are willing to share their knowledge with me.

Before I was at Google, I was deeply involved in the community around Go and I think that was a great way to get in contact with extremely knowledge people and learn from them.

Shukant Pal's photo

How does Google terminate Google play accounts? It terminated my developer account with anyone properly talking to me: just "you violated our terms and we won't be re-opening your account".

What can I do? I emailed them back asking for at least a valid reason.

The automated message from them says that my account was terminated due to a successful chargeback on my end, probably for registration fees. They say to contact my credit card provider if that was done in error. But I used a debit card to pay.

Bottom line: This is really petty on Google's side.

Surma's photo

Sorry mate, I have no clue. I don’t work on Google Play, nor am I in any way involved in finances. The best I can do is refer you to Google Play Support.