Skip to main content

Top Software Engineer Interview Questions

Review this list of 715 Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Amazon logoAsked at Amazon 
    2 answers

    "1) Have a common goal 2) Have a clear and fair accountability between teams 3) Ensure conflicts are resolved in time on common issues 4) Promote common Brain-storming , problem solving sessions 5) Most important , Have clear and effective communication established and practised"

    Saurabh N. - "1) Have a common goal 2) Have a clear and fair accountability between teams 3) Ensure conflicts are resolved in time on common issues 4) Promote common Brain-storming , problem solving sessions 5) Most important , Have clear and effective communication established and practised"See full answer

    Software Engineer
    Behavioral
    +5 more
  • Cisco logoAsked at Cisco 
    1 answer
    Video answer for 'What does your confidence level mean when building a confidence interval?'

    " A higher confidence level leads to a wider interval because we are more certain that the parameter of interest lies within that range. Conversely, a lower confidence level results in a narrower interval, but it also means we are less confident that the interval contains the parameter of interest.""

    Yenenash W. - " A higher confidence level leads to a wider interval because we are more certain that the parameter of interest lies within that range. Conversely, a lower confidence level results in a narrower interval, but it also means we are less confident that the interval contains the parameter of interest.""See full answer

    Software Engineer
    Statistics & Experimentation
  • Capital One logoAsked at Capital One 
    1 answer

    "Fintechs are providing ready solutions for various financial operations of banks with customer-centric UI which are easy to integrate with various platforms and cost-effective."

    Vinay P. - "Fintechs are providing ready solutions for various financial operations of banks with customer-centric UI which are easy to integrate with various platforms and cost-effective."See full answer

    Software Engineer
    Behavioral
    +1 more
  • Microsoft logoAsked at Microsoft 
    3 answers

    "Let me try to explain it with simple life analogy You're cooking dinner in the kitchen. Multithreading is when you've got a bunch of friends helping out. Each friend does a different job—like one chops veggies while another stirs a sauce. Everyone focuses on their task, and together, you all make the meal faster. In a computer, it's like different jobs happening all at once, making stuff happen quicker, just like having lots of friends helping makes dinner ready faster."

    Praveen D. - "Let me try to explain it with simple life analogy You're cooking dinner in the kitchen. Multithreading is when you've got a bunch of friends helping out. Each friend does a different job—like one chops veggies while another stirs a sauce. Everyone focuses on their task, and together, you all make the meal faster. In a computer, it's like different jobs happening all at once, making stuff happen quicker, just like having lots of friends helping makes dinner ready faster."See full answer

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

    "DNNs can learn hierarchical features, with each layer learning progressively more abstract features, and generalizes better. SNNs are better for simplier problems involving smaller datasets and if low latency is required."

    Louie Z. - "DNNs can learn hierarchical features, with each layer learning progressively more abstract features, and generalizes better. SNNs are better for simplier problems involving smaller datasets and if low latency is required."See full answer

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

  • Adobe logoAsked at Adobe 
    Add answer
    Video answer for 'Solve John Conway's "Game of Life".'
    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Dropbox logoAsked at Dropbox 
    3 answers

    "Project Schedule is a living document which is prepared based on inputs from the entire team including product, engineering, finance, sales, marketing, legal etc. It is owned by Project/Program Manager but it reflects progress of the whole team. Inputs required for the development of schedule includes project charter, list of stakeholders, project scope, WBS, freeze calendar, vendor SOWs etc. I will use the following approach for schedule development: Copy Milestone level plan from Project"

    Saket S. - "Project Schedule is a living document which is prepared based on inputs from the entire team including product, engineering, finance, sales, marketing, legal etc. It is owned by Project/Program Manager but it reflects progress of the whole team. Inputs required for the development of schedule includes project charter, list of stakeholders, project scope, WBS, freeze calendar, vendor SOWs etc. I will use the following approach for schedule development: Copy Milestone level plan from Project"See full answer

    Software Engineer
    Program Sense
    +1 more
  • Adobe logoAsked at Adobe 
    15 answers
    +10

    " function climbStairs(n) { // 4 iterations of Dynamic Programming solutions: // Step 1: Recursive: // if (n <= 2) return n // return climbStairs(n-1) + climbStairs(n-2) // Step 2: Top-down Memoization // const memo = {0:0, 1:1, 2:2} // function f(x) { // if (x in memo) return memo[x] // memo[x] = f(x-1) + f(x-2) // return memo[x] // } // return f(n) // Step 3: Bottom-up Tabulation // const tab = [0,1,2] // f"

    Matthew K. - " function climbStairs(n) { // 4 iterations of Dynamic Programming solutions: // Step 1: Recursive: // if (n <= 2) return n // return climbStairs(n-1) + climbStairs(n-2) // Step 2: Top-down Memoization // const memo = {0:0, 1:1, 2:2} // function f(x) { // if (x in memo) return memo[x] // memo[x] = f(x-1) + f(x-2) // return memo[x] // } // return f(n) // Step 3: Bottom-up Tabulation // const tab = [0,1,2] // f"See full answer

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

    "Constrain is the inbound link, so the solution is to download the file once and then distribute it internally, rather than having every machine hit that link independently. So this may call for a central staging node and p2p distribution (bit torrent style)"

    Joshua K. - "Constrain is the inbound link, so the solution is to download the file once and then distribute it internally, rather than having every machine hit that link independently. So this may call for a central staging node and p2p distribution (bit torrent style)"See full answer

    Software Engineer
    System Design
    +1 more
  • Amazon logoAsked at Amazon 
    3 answers

    "SQL databases are relational, NoSQL databases are non-relational. SQL databases use structured query language and have a predefined schema. NoSQL databases have dynamic schemas for unstructured data. SQL databases are vertically scalable, while NoSQL databases are horizontally scalable."

    Ali H. - "SQL databases are relational, NoSQL databases are non-relational. SQL databases use structured query language and have a predefined schema. NoSQL databases have dynamic schemas for unstructured data. SQL databases are vertically scalable, while NoSQL databases are horizontally scalable."See full answer

    Software Engineer
    Concept
    +7 more
  • Adobe logoAsked at Adobe 
    13 answers
    +10

    "def traprainwater(height: List[int]) -> int: n = len(height) totalwaterlevel = 0 for i in range(n): j = i+1 while j = n: break rows = j - i -1 intrwaterlevel = min(height[j], height[i]) * rows for k in range(i+1, j): intrwaterlevel -= height[k] totalwaterlevel += intrwaterlevel i = j return totalwaterlevel"

    Manoj R. - "def traprainwater(height: List[int]) -> int: n = len(height) totalwaterlevel = 0 for i in range(n): j = i+1 while j = n: break rows = j - i -1 intrwaterlevel = min(height[j], height[i]) * rows for k in range(i+1, j): intrwaterlevel -= height[k] totalwaterlevel += intrwaterlevel i = j return totalwaterlevel"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Amazon logoAsked at Amazon 
    Add answer
    Software Engineer
    System Design
  • Amazon logoAsked at Amazon 
    Add answer
    Software Engineer
    Behavioral
  • Anthropic logoAsked at Anthropic 
    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
  • +2

    "class Solution { public boolean isValid(String s) { // Time Complexity and Space complexity will be O(n) Stack stack=new Stack(); for(char c:s.toCharArray()){ if(c=='('){ stack.push(')'); } else if(c=='{'){ stack.push('}'); } else if(c=='['){ stack.push(']'); } else if(stack.pop()!=c){ return false; } } return stack.isEmpty(); } }"

    Kanishvaran P. - "class Solution { public boolean isValid(String s) { // Time Complexity and Space complexity will be O(n) Stack stack=new Stack(); for(char c:s.toCharArray()){ if(c=='('){ stack.push(')'); } else if(c=='{'){ stack.push('}'); } else if(c=='['){ stack.push(']'); } else if(stack.pop()!=c){ return false; } } return stack.isEmpty(); } }"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • 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 
    18 answers
    +13

    " from typing import List from collections import defaultdict def areSentencesSimilar(sentence1: List[str], sentence2: List[str], similarPairs: List[List[str]]) -> bool: if len(sentence1) != len(sentence2): return False graph = defaultdict(list) for pair in similarPairs: word1 = pair[0] word2 = pair[1] graph[word1].append(word2) graph[word2].append(word1) for idx in range(len(sente"

    Manoj R. - " from typing import List from collections import defaultdict def areSentencesSimilar(sentence1: List[str], sentence2: List[str], similarPairs: List[List[str]]) -> bool: if len(sentence1) != len(sentence2): return False graph = defaultdict(list) for pair in similarPairs: word1 = pair[0] word2 = pair[1] graph[word1].append(word2) graph[word2].append(word1) for idx in range(len(sente"See full answer

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

    "def friend_distance(friends, userA, userB): step = 0 total_neighs = set() llen = len(total_neighs) total_neighs.add(userB) while len(total_neighs)!=llen: s = set() step += 1 llen = len(total_neighs) for el in total_neighs: nes = neighbours(friends, userA, el) if userA in nes: return step for p in nes: s.add(p) for el in s: total_neighs.add(el) return -1 def neighbours(A,n1, n2): out = set() for i in range(len(A[n2])): if An2: out.add(i) return out"

    Batman X. - "def friend_distance(friends, userA, userB): step = 0 total_neighs = set() llen = len(total_neighs) total_neighs.add(userB) while len(total_neighs)!=llen: s = set() step += 1 llen = len(total_neighs) for el in total_neighs: nes = neighbours(friends, userA, el) if userA in nes: return step for p in nes: s.add(p) for el in s: total_neighs.add(el) return -1 def neighbours(A,n1, n2): out = set() for i in range(len(A[n2])): if An2: out.add(i) return out"See full answer

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

    "Microsoft's mission is to empower every person and every organisation on the planet to achieve more. I am always inspired by helping others to achieve more by participating to different volunteer and mentorship experiences like Microsoft Student Ambassador, and GeeksForGeeks student ambassador, and I have also created and shared a free competitive-programming guide which once reached more than 700 stars on github, that enables students and professionals to join Microsoft like Microsoft, that hav"

    Davide P. - "Microsoft's mission is to empower every person and every organisation on the planet to achieve more. I am always inspired by helping others to achieve more by participating to different volunteer and mentorship experiences like Microsoft Student Ambassador, and GeeksForGeeks student ambassador, and I have also created and shared a free competitive-programming guide which once reached more than 700 stars on github, that enables students and professionals to join Microsoft like Microsoft, that hav"See full answer

    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 
    1 answer

    "S – Situation: In a university project, my team was building a collaborative code editor. As part of the functionality, we needed a login system so users could securely access their sessions and collaborate in real time. T – Task: I was responsible for implementing the authentication system. Initially, I planned to build the entire login system from scratch, including user management, password storage, and session handling. But as the deadline approached, I realized that implementing thi"

    Hamzeh H. - "S – Situation: In a university project, my team was building a collaborative code editor. As part of the functionality, we needed a login system so users could securely access their sessions and collaborate in real time. T – Task: I was responsible for implementing the authentication system. Initially, I planned to build the entire login system from scratch, including user management, password storage, and session handling. But as the deadline approached, I realized that implementing thi"See full answer

    Software Engineer
    Behavioral
Showing 181-200 of 715
Exponent

Get updates in your inbox with the latest tips, job listings, and more.

Follow Us

Products
Courses
Interview Questions
Interview Experiences
Popular articles
Guides
Coaching
For Partners
Company
Exponent © 2026
Terms of Service | Privacy