Skip to main content

Google Software Engineer Interview Questions

Review this list of 120 Google Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Google logoAsked at Google 
    10 answers
    +7

    "Should this question be BST, not just BT? Otherwise it would not be possible to reconstruct the tree solely based on the array regardless of its order"

    TreeOfWisdom - "Should this question be BST, not just BT? Otherwise it would not be possible to reconstruct the tree solely based on the array regardless of its order"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Google logoAsked at Google 
    4 answers
    +1

    "After more than five years at my previous company, I had contributed significantly to many important projects and helped the team navigate critical transitions, such as our shift from a monolithic to a microservices architecture. However, over time, I realized that my goals and the direction of the company were no longer fully aligned. I felt I had outgrown the position and was ready for new challenges, where I could continue to grow both technically and professionally. Ultimately, I’m excited a"

    Chinedu ekene O. - "After more than five years at my previous company, I had contributed significantly to many important projects and helped the team navigate critical transitions, such as our shift from a monolithic to a microservices architecture. However, over time, I realized that my goals and the direction of the company were no longer fully aligned. I felt I had outgrown the position and was ready for new challenges, where I could continue to grow both technically and professionally. Ultimately, I’m excited a"See full answer

    Software Engineer
    Behavioral
    +2 more
  • Google logoAsked at Google 
    7 answers
    +4

    "public static void sortBinaryArray(int[] array) { int len = array.length; int[] res = new int[len]; int r=len-1; for (int value : array) { if(value==1){ res[r]= 1; r--; } } System.out.println(Arrays.toString(res)); } `"

    Nitin P. - "public static void sortBinaryArray(int[] array) { int len = array.length; int[] res = new int[len]; int r=len-1; for (int value : array) { if(value==1){ res[r]= 1; r--; } } System.out.println(Arrays.toString(res)); } `"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Google logoAsked at Google 
    1 answer

    "def encode(root): if not root: return [] def dfs(node): if not node: return res.append(node.val) res.append(len(node,children)) for child_node in node.children: dfs(child_node) res = [] dfs(root) return res def decode(arr): if not arr: return None n = len(arr) i = 0 def dfs(val, children_count): if children_count == 0: return Node(val) cur_node = Node(val) cur_node.children = [] for j in range(children_count): nonlocal i i += 2 cur_node.children.append(dfs(arr[i], arr[i"

    Ying T. - "def encode(root): if not root: return [] def dfs(node): if not node: return res.append(node.val) res.append(len(node,children)) for child_node in node.children: dfs(child_node) res = [] dfs(root) return res def decode(arr): if not arr: return None n = len(arr) i = 0 def dfs(val, children_count): if children_count == 0: return Node(val) cur_node = Node(val) cur_node.children = [] for j in range(children_count): nonlocal i i += 2 cur_node.children.append(dfs(arr[i], arr[i"See full answer

    Software Engineer
    Coding
  • Google logoAsked at Google 
    4 answers

    "I was a student worker at Gordon's Food Service, Schaumburg, My tasks were vacuuming onion peels, checking expiration dates, cleaning the break room, cleaning the shelves from the Ailes, Stocking stuff on shelves, sweeping the backroom, mopping, Refilling bottles with cleaning supplies and cleaning the fridge glass."

    Amparo L. - "I was a student worker at Gordon's Food Service, Schaumburg, My tasks were vacuuming onion peels, checking expiration dates, cleaning the break room, cleaning the shelves from the Ailes, Stocking stuff on shelves, sweeping the backroom, mopping, Refilling bottles with cleaning supplies and cleaning the fridge glass."See full answer

    Software Engineer
    Behavioral
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Google logoAsked at Google 
    18 answers
    +13

    "function areSentencesSimilar(sentence1, sentence2, similarPairs) { if (sentence1.length !== sentence2.length) return false; for (let i=0; i (w1 === word1 && !visited.has(w2)) || (w2 === word1 && !visited.has(w1))); if (!edge) { "

    Tiago R. - "function areSentencesSimilar(sentence1, sentence2, similarPairs) { if (sentence1.length !== sentence2.length) return false; for (let i=0; i (w1 === word1 && !visited.has(w2)) || (w2 === word1 && !visited.has(w1))); if (!edge) { "See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Google logoAsked at Google 
    2 answers

    "Conflict is unavoidable for any project. The most important part of moving past conflict is to understand why it manifested in the first place. I would start by understanding: What type of conflict is it? 1 on 1, with another team, with another function? What shape it? Is it about communication, strategy, implementation, style? What impact does it have? Will it affect our timelines, how we work together, etc How do I feel about it? Is it a thorn in my side or something"

    James W. - "Conflict is unavoidable for any project. The most important part of moving past conflict is to understand why it manifested in the first place. I would start by understanding: What type of conflict is it? 1 on 1, with another team, with another function? What shape it? Is it about communication, strategy, implementation, style? What impact does it have? Will it affect our timelines, how we work together, etc How do I feel about it? Is it a thorn in my side or something"See full answer

    Software Engineer
    Behavioral
    +1 more
  • Google logoAsked at Google 
    13 answers
    Video answer for 'Merge k sorted linked lists.'
    +7

    "A much better solution than the one in the article, below: It looks like the ones writing articles here in Javascript do not understand the time/space complexity of javascript methods. shift, splice, sort, etc... In the solution article you have a shift and a sort being done inside a while, that is, the multiplication of Ns. My solution, below, iterates through the list once and then sorts it, separately. It´s O(N+Log(N)) class ListNode { constructor(val = 0, next = null) { th"

    Guilherme F. - "A much better solution than the one in the article, below: It looks like the ones writing articles here in Javascript do not understand the time/space complexity of javascript methods. shift, splice, sort, etc... In the solution article you have a shift and a sort being done inside a while, that is, the multiplication of Ns. My solution, below, iterates through the list once and then sorts it, separately. It´s O(N+Log(N)) class ListNode { constructor(val = 0, next = null) { th"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Google logoAsked at Google 
    16 answers
    +12

    "Problem Statement: The Fibonacci sequence is defined as F(n) = F(n-1) + F(n-2) with F(0) = 1 and F(1) = 1. The solution is given in the problem statement itself. If the value of n = 0, return 1. If the value of n = 1, return 1. Otherwise, return the sum of data at (n - 1) and (n - 2). Explanation: The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, typically starting with 0 and 1. Java Solution: public static int fib(int n"

    Rishi G. - "Problem Statement: The Fibonacci sequence is defined as F(n) = F(n-1) + F(n-2) with F(0) = 1 and F(1) = 1. The solution is given in the problem statement itself. If the value of n = 0, return 1. If the value of n = 1, return 1. Otherwise, return the sum of data at (n - 1) and (n - 2). Explanation: The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, typically starting with 0 and 1. Java Solution: public static int fib(int n"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Google logoAsked at Google 
    4 answers
    +1

    "As far as i know, when we type a web address in the browser- the broswer connects to the DNS server & finds the address of the website we are looking for after finding it, the browser sends an HTTP request message to the server,with a request to send a copy of the website to the user. all of this information is sent using TCP/IP protocol across your internet"

    Debajyoti B. - "As far as i know, when we type a web address in the browser- the broswer connects to the DNS server & finds the address of the website we are looking for after finding it, the browser sends an HTTP request message to the server,with a request to send a copy of the website to the user. all of this information is sent using TCP/IP protocol across your internet"See full answer

    Software Engineer
    Technical
  • Google logoAsked at Google 
    1 answer

    "A load balancer accepts requests from clients (e.g. web browsers on the Internet) and backend services (e.g. a web server). Load balancers are useful for replicating backend services onto multiple machines to meet increased demand. The design of a load balancer should address the following questions: What protocols should be supported? IP allows computers to communicate using packets, similarly to how people send letters. IP packets are addressed using an IP address and port number. "

    Anonymous Hyena - "A load balancer accepts requests from clients (e.g. web browsers on the Internet) and backend services (e.g. a web server). Load balancers are useful for replicating backend services onto multiple machines to meet increased demand. The design of a load balancer should address the following questions: What protocols should be supported? IP allows computers to communicate using packets, similarly to how people send letters. IP packets are addressed using an IP address and port number. "See full answer

    Software Engineer
    System Design
  • Google logoAsked at Google 
    Add answer
    Software Engineer
    Program Sense
    +2 more
  • Google logoAsked at Google 
    Add answer
    Software Engineer
    Behavioral
    +3 more
  • Google logoAsked at Google 
    2 answers

    "def split_count(s): return 2**(len(s)-1) `"

    Steve M. - "def split_count(s): return 2**(len(s)-1) `"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Google logoAsked at Google 
    2 answers

    "To recount an experience from my last project . We were at the initial stages of designing a new data platform to enhance our trading analytics capabilities. The conflict arose over the selection of a data processing framework. I was advocating for Apache Spark due to its scalability and performance benefits, especially for handling large volumes of derivatives data. Another senior team member preferred a different technology they had more experience with, which they believed would be easier to"

    Scott S. - "To recount an experience from my last project . We were at the initial stages of designing a new data platform to enhance our trading analytics capabilities. The conflict arose over the selection of a data processing framework. I was advocating for Apache Spark due to its scalability and performance benefits, especially for handling large volumes of derivatives data. Another senior team member preferred a different technology they had more experience with, which they believed would be easier to"See full answer

    Software Engineer
    Behavioral
    +1 more
  • Google logoAsked at Google 
    10 answers
    +6

    "bool isValidBST(TreeNode* root, long min = LONGMIN, long max = LONGMAX){ if (root == NULL) return true; if (root->val val >= max) return false; return isValidBST(root->left, min, root->val) && isValidBST(root->right, root->val, max); } `"

    Alvaro R. - "bool isValidBST(TreeNode* root, long min = LONGMIN, long max = LONGMAX){ if (root == NULL) return true; if (root->val val >= max) return false; return isValidBST(root->left, min, root->val) && isValidBST(root->right, root->val, max); } `"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Google logoAsked at Google 
    3 answers

    "I'm seeking a role in which I can be continually challenged to devise innovative and streamlined solutions for complex issues, particularly with regard to the persistent soaking problem. I'm excited about the opportunity to not only excel in my own performance but also to empower and enable my colleagues to perform at their absolute best. My goal is to wield my influence and magnetic qualities to not only attract but also retain top-tier engineering talent, all in alignment with our shared objec"

    Anonymous Narwhal - "I'm seeking a role in which I can be continually challenged to devise innovative and streamlined solutions for complex issues, particularly with regard to the persistent soaking problem. I'm excited about the opportunity to not only excel in my own performance but also to empower and enable my colleagues to perform at their absolute best. My goal is to wield my influence and magnetic qualities to not only attract but also retain top-tier engineering talent, all in alignment with our shared objec"See full answer

    Software Engineer
    Behavioral
    +2 more
  • Google logoAsked at Google 
    2 answers

    "Whenever I find resistance to my idea, my general approach is to : Validate my idea Identify if it is a political reason or is it a valid engineering tech reason Assuming it is not political but it is resource/difference of opinions that are causing resistance. Then I would try to do a quick POC and show a value proposition for the idea to get the buy-in. One similar situation happened The situation was that stakeholders were promised a feature that would decrease their number of ticket"

    Jaim - "Whenever I find resistance to my idea, my general approach is to : Validate my idea Identify if it is a political reason or is it a valid engineering tech reason Assuming it is not political but it is resource/difference of opinions that are causing resistance. Then I would try to do a quick POC and show a value proposition for the idea to get the buy-in. One similar situation happened The situation was that stakeholders were promised a feature that would decrease their number of ticket"See full answer

    Software Engineer
    Behavioral
    +1 more
  • Google logoAsked at Google 
    2 answers

    "Law is my passion. Traveling all over the world in 5 years"

    Moshe S. - "Law is my passion. Traveling all over the world in 5 years"See full answer

    Software Engineer
    Behavioral
    +4 more
  • Google logoAsked at Google 
    2 answers

    "no"

    Hamilton D. - "no"See full answer

    Software Engineer
    Technical
    +1 more
Showing 81-100 of 120