Software Application Engineer at Google : My Interview Experience

Vimal Tiwari
9 min readDec 31, 2021

--

In this Post, we will discuss below items,

  1. My Background.
  2. How Did I get this opportunity?
  3. The Interview Process. (My views with Preparation Techniques)
  4. The Difference between SAE & SWE?
  5. How Can I help you to prepare?

So, without any further delay, Lets Get Started…

My Background

I am a Software Engineer working in the Tech-Industry since 2016. I did my Engineering from SGSITS, Indore. Since then, I have worked in service based companies, Startups and product based as well. I have experience in Mobile App development, Desktop App development and Web App Development. You can explore my projects and other stuff here.

How Did I get this opportunity?

That’s an interesting story. So, one day, an InMail popped up in my wife’s (Hina B. Tiwari) LinkedIn inbox. She was reached out by a Google recruiter for SAE opportunity. She went through the Interview process (which we will discuss in next part), and got selected for the offer. Due to some unavoidable circumstances, she was not able to accept the offer. The recruiter asked her to recommend someone for the same role, and she referred me. The recruiter went through my LinkedIn profile and then contacted me. That’s how, I got this opportunity. No referral, no reaching out to people over linkedin, no online job apply, nothing.

The Interview Process.

The process starts with a quick sync up with the recruiter. It’s a kind of rapid fire session, where the recruiter asks you some basic technical questions over programming, System design and software development.

For example,

  1. Which data structure stores unique values - Set OR List?
  2. What is the difference between publisher-subscriber and push-pull model?

The intent of this session, is to understand, whether you could be a potential fit for this role or not.

Once, you clear this round, the recruiter tells you the complete process. The process consists of 5 rounds in (2+3) combination.

Rounds (2+3):

  1. Coding
  2. Coding

(2+3) means — If you clear the above 2, then only, you can appear for next 3.

  1. System Design
  2. System Integration (Could also be System Design 2)
  3. Googliness.

Coding :-

First 2 rounds will be of coding and purely based on DSA. you can expect questions on Strings, Arrays, Stacks, Queues, Trees and Graph(not much).

Now, here is the most important tip. The interviewers don’t expect a highly optimized code, that can be executed for tons of test cases. A complete solution is enough, covering all the edge cases as many as possible, like Null checks etc. But that doesn’t mean, you should not optimize it. If you have time, go for it and gain some more points. :)

The level of questions would be Leetcode’s Medium problems. Also, geeksforgeeks is must.

Questions asked to me were on Trees, Stack and graphs. Some of them are,

  1. https://leetcode.com/problems/minimum-height-trees/
  2. https://leetcode.com/problems/binary-tree-coloring-game/
  3. https://leetcode.com/problems/check-if-a-parentheses-string-can-be-valid/
  4. https://leetcode.com/problems/find-the-town-judge/
  5. https://leetcode.com/problems/network-delay-time/

Once you clear both the coding rounds, You are eligible for next 3 rounds.

System Design

This round checks your ability to build a highly scalable system. Systems like, Movie ticket booking like BookMyShow, or E-commerce like Amazon or Flipkart, or a Search engine like Google. Don’t worry, they won’t expect you to build any system end to end.

Source

Then, What do they expect?

The basic Idea behind this round, is to understand, how does a given system should be built according to you. The solution need not to be the exact replica of any existing system, but it should serve the purpose. For example, If they ask you to build a online food delivery system, it should not be the exact replica of Zomato/Swiggy. You can be creative but at the same time, your thoughts should make sense. You are supposed to discuss,

  1. What could be schema design? — you can take a section of the whole system and discuss it’s schema.
  2. How many components will be there in system, and how do they connect?
  3. What technologies will you use? — for backend, frontend, middleware, etc.
  4. How would you rectify scalability issues? — Always consider volume of data and concurrency.

Now, the important tip here is, You can ask the interviewer about, how should you proceed with the problem.

  1. Start from scratch and design the whole system — you can start gathering the inputs from interview about the system, like what features they need and so on.
  2. Design a part of it — Like schema, or Frontend, or APIs and so on.

Most of the times, interviewers leave the choice on you, in that case, go for 1.

Also,

  1. make sure to read out loud while writing,
  2. keep on discussing the thoughts with the interviewers, otherwise you might lose them.
  3. whenever you take any assumption, just write it down

You are supposed to use google doc and google draw(for drawing) for writing and clip arts. So make sure to practice on these only.

Question asked to me was system design of Walmart and ability to generate quarterly, weekly, monthly, and yearly revenue report across globe based on region.

System Integration (System Design 2)

The intent of this round, is to understand, how familiar are you with the concepts and design of integrating 2 systems. if an API design task that needs to get data from some SAP/AWS/Google cloud server etc. How will you design the API? What things you would like to consider while designing the API?

Considering sender and receiver systems could be same or different, you should always consider them different so that, you would be able to design the solution with minimum flaws. For example, Sender system could be AWS and receiver system could be SAP or Salesforce or any other cloud.

You can either ask the interviewer, whether both the systems are same or not. If they are same, generally connectivity becomes easy because of trust. But interviewers generally leave this to you, so better consider 2 systems as different.

Now, as mentioned in above System Design’ paragraph, you’ll be given google doc and google draw to design the system, you should write your assumptions before starting the design. Also keep the discussion on with the interviewer, so that they would know, what’s going on.

The points you should cover while designing the system are:

  1. Design Techniques — In case of real time used cases, request response should be used, else Publisher subscriber Or push pull can be used
  2. Authentication — How will you design the authentication. Does it require 2 factor or not? Will it be Rest based or SOAP based.
  3. Authorization — to check, whether the request has come from right source, you can use MD5, JWT, other token based technique.
  4. Protocols — Which protocols will be used? for example, if there is file transfer, FTP will be used.
  5. Data transfer type — JSON, XML, File etc.
  6. Volume — the solution can work at what volume? for example, a file can be sent in one go, or it requires chunking. What could be the JSON size which can be accepted?
  7. Latency — request served per second. Throughput, Rate limiting in case of throttling,
  8. Security — Encryption techniques, MD5 etc
  9. Common errors — Timeout, Server is unavailable, Busy etc.

you might find few of the points irrelevant because most of the cloud technologies takes care of them, so you can simple state, which system has which ability and you don’t need to consider it explicitly.

Now, considering the fact, you might not have expertise in integration, you should at-least know, which term is used for which propose. you are not supposed to design the system completely, but you are supposed to know, how the flow starts like from authentication and authorization, then the data transfer happens. What could be the possible issues, that can be encountered during data transfer, etc. and then how does the flow complete.

Question asked to me was Design a system that sends payment info to banks and get it approved. Like phonepe, Googlepay etc.

Googliness

This round checks your passion towards the work, culture and community. Interviewers will ask questions to understand your experience in various aspects, like cross team collaboration, customer obsession , Community contribution, supporting peers, self learning etc.

For example,

  1. Have you ever worked with cross team collaboration? if yes, how did you manage the communication?
  2. Have you ever denied any customer request?
  3. Did you have any work related argument with your manager? if yes, what was the outcome?
  4. Tell me about a time, when you got a last minute request from manager, and you denied it? If yes, what was the outcome?
  5. Have you ever missed go-live dates? If yes, how did you compensated this to client.

You might find this round irrelevant, but that’s an integral part of Google's interview process. So, you should not take this lightly. Although, this round doesn’t require any preparation, still I would recommend you to go through STAR Technique of answering behavioral question. This technique is an industry standard and many product based companies like Amazon, Google, Facebook etc. expects it’s usage during behavioral interviews.

Also, you might not be able to answer all the questions, because you might not have experienced few use cases. For example, Software engineers, generally don’t deal with customers, so they would have zero expertise in customer related questions. In that case, you can simply explain this to your interviewer that, you don’t have any such experience because of your work profile.

Don’t try to bluff interviewers by making random stories, as they will catch you for sure, and it’s won’t be good for you.

Reference :

  1. https://jeffhsipe.medium.com/understanding-googelyness-4d61a70ada95
  2. https://www.youtube.com/watch?v=TWFs3dxfiOc

The Difference between SAE & SWE?

The basic difference between SWE and SAE is, SWEs are hired and then trained to work on projects, while SAEs are engineers, who are already specialist in a technology/framework, and are hired to work directly on projects without any training. Other than this, there is no difference, in terms of work like, benefits, culture, promotions and compensations. Both are same.

Also, SAE profile is only at Google India. For other centers, across globe, you will be considered SWE. :)

How Can I help you to prepare?

I write blogs over System design , Programming, Salesforce and Java, so you can go through it. I generally write content every week, so keep an eye over it.

Also, you feel free to connect over, in case of queries and help,

Medium , Quora Or LinkedIn.

ALL THE BEST!!, and always remember,

If I can, You can TOO.

--

--