Skip to main content

Software Engineer Interview Questions

Review this list of 665 Software Engineer interview questions and answers verified by hiring managers and candidates.
  • "Build a counter using queue, one queue per service ("a", "b") and one with just timestamps to get the overall load. Build rate limiter service using the counter and interviewer asked if there rate limiter might use a different instance of a counter"

    Chethan N. - "Build a counter using queue, one queue per service ("a", "b") and one with just timestamps to get the overall load. Build rate limiter service using the counter and interviewer asked if there rate limiter might use a different instance of a counter"See full answer

    Software Engineer
    Coding
  • Anthropic logoAsked at Anthropic 
    Add answer
    Software Engineer
    Behavioral
  • Salesforce logoAsked at Salesforce 
    Add answer
    Video answer for 'Design Ticketmaster'
    Software Engineer
    System Design
  • Anthropic logoAsked at Anthropic 
    Add answer
    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 
    2 answers
    Video answer for 'Implement k-means clustering.'

    "at first I want to know number of cluster I will put random number if I don't know and I will use method called Elbow method or Silhouette Score ,Gap Statistic and Davies–Bouldin Index to know the best number of cluster and I will use scikit-learn library to import kmeans from sklearn.cluster import KMeans kmeans = KMeans(nclusters=2, randomstate=0) kmeans.fit(X) and X this my data "

    Taheia S. - "at first I want to know number of cluster I will put random number if I don't know and I will use method called Elbow method or Silhouette Score ,Gap Statistic and Davies–Bouldin Index to know the best number of cluster and I will use scikit-learn library to import kmeans from sklearn.cluster import KMeans kmeans = KMeans(nclusters=2, randomstate=0) kmeans.fit(X) and X this my data "See full answer

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

  • Google logoAsked at Google 
    2 answers

    "I would assume that this is similar to an intervals question. Meeting Rooms II (https://www.lintcode.com/problem/919/?fromId=203&_from=collection) on Leetcode seems like the closest comparison, it's a premium question so I linked Lintcode. I'm assuming that we also need to just return the minimum number of cars used. You need to sort for the most optimal solution, so you're constrained by an O(nlogn) time complexity. So any sorting solution could work (using a heap, sorting the array input arra"

    Sohum S. - "I would assume that this is similar to an intervals question. Meeting Rooms II (https://www.lintcode.com/problem/919/?fromId=203&_from=collection) on Leetcode seems like the closest comparison, it's a premium question so I linked Lintcode. I'm assuming that we also need to just return the minimum number of cars used. You need to sort for the most optimal solution, so you're constrained by an O(nlogn) time complexity. So any sorting solution could work (using a heap, sorting the array input arra"See full answer

    Software Engineer
    Data Structures & Algorithms
    +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
  • +1

    "Binary serach on E range"

    Shikha S. - "Binary serach on E range"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Google logoAsked at Google 
    7 answers
    Video answer for 'Write functions to serialize and deserialize a list of strings.'
    +4

    "Maybe we can use this solution: 1, connect all the strings together, and add an integer value ahead each string. 2, use Huffmans algorithm to encode the step 1 result, to make the result size smaller. 3, return the root of Huffmans tree. This solution man be slower than the common serialize method, but it can save a lot of memory, I think, at lease doing serialize is mainly for tranfering data or storing data."

    Jordan Z. - "Maybe we can use this solution: 1, connect all the strings together, and add an integer value ahead each string. 2, use Huffmans algorithm to encode the step 1 result, to make the result size smaller. 3, return the root of Huffmans tree. This solution man be slower than the common serialize method, but it can save a lot of memory, I think, at lease doing serialize is mainly for tranfering data or storing data."See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Meta logoAsked at Meta 
    4 answers
    Video answer for 'Design a streaming service like Netflix.'
    +1

    "using a relational database isn't a good choice for this system! we need more availability here than consistency (CAP theorem)"

    Anonymous Capybara - "using a relational database isn't a good choice for this system! we need more availability here than consistency (CAP theorem)"See full answer

    Software Engineer
    System Design
    +2 more
  • Google logoAsked at Google 
    2 answers

    "Okay so the objective is to describe a product which I think is poorly designed despite of what market sentiments are around this and how the product is performing currently. Okay understood, so the way I would like to go about it is first I will state what are the factors which I look in a product to tell it is a good product. Then will see how a particular product doesn’t follow this and that's why I called it a poorly designed product. For me a product is great if it is having these qualities"

    Anonymous Muskox - "Okay so the objective is to describe a product which I think is poorly designed despite of what market sentiments are around this and how the product is performing currently. Okay understood, so the way I would like to go about it is first I will state what are the factors which I look in a product to tell it is a good product. Then will see how a particular product doesn’t follow this and that's why I called it a poorly designed product. For me a product is great if it is having these qualities"See full answer

    Software Engineer
    Product Design
    +1 more
  • Amazon logoAsked at Amazon 
    8 answers
    +5

    "A few months ago I joined a micro-services platform engineering team as their manager, at that time my team was struggling to deliver towards an upcoming production deadline for a customer facing product. Production date had been moved 5 times already and there were about 40% of product features which were remaining to be tested and signed off to move to production . I was made responsible to deliver the release of this product within the deadline and turnaround the software delivery throughput."

    Shuchi A. - "A few months ago I joined a micro-services platform engineering team as their manager, at that time my team was struggling to deliver towards an upcoming production deadline for a customer facing product. Production date had been moved 5 times already and there were about 40% of product features which were remaining to be tested and signed off to move to production . I was made responsible to deliver the release of this product within the deadline and turnaround the software delivery throughput."See full answer

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

    "I told a story about how our team was focussed on moving a key metric i.e. NPS and to do that we build 3 top requested user feature. Post release the detractors % didn't move even though the detractors request for features shipped went down. Then I connect with users and did some analysis post which we realised that we need to pivot our focus from shipping features to enabling complete workflows for our users i.e. shipping all those feature which are used together in a feature as then only users"

    Aditya S. - "I told a story about how our team was focussed on moving a key metric i.e. NPS and to do that we build 3 top requested user feature. Post release the detractors % didn't move even though the detractors request for features shipped went down. Then I connect with users and did some analysis post which we realised that we need to pivot our focus from shipping features to enabling complete workflows for our users i.e. shipping all those feature which are used together in a feature as then only users"See full answer

    Software Engineer
    Behavioral
    +2 more
  • Amazon logoAsked at Amazon 
    13 answers
    +10

    " class Node { constructor(data) { this.data = data; this.left = null; this.right = null; } } function diameterOfTree(root) { // your code goes here let maxPath = 0 function helper(node) { if (!node || !node.data) return 0 const left = helper(node.left) const right = helper(node.right) maxPath = Math.max(maxPath, left + right) return Math.max(left, right) + 1 } helper(root) return maxP"

    Matthew K. - " class Node { constructor(data) { this.data = data; this.left = null; this.right = null; } } function diameterOfTree(root) { // your code goes here let maxPath = 0 function helper(node) { if (!node || !node.data) return 0 const left = helper(node.left) const right = helper(node.right) maxPath = Math.max(maxPath, left + right) return Math.max(left, right) + 1 } helper(root) return maxP"See full answer

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

    " Project Overview: Real-Time Risk Management System Objective The goal was to develop a real-time risk management system capable of processing and analyzing large volumes of trading data to provide near-instantaneous risk assessments. This system was crucial for enabling traders to make informed decisions while managing their exposure to various market risks in real-time. Complexity Factors 1. \\Data Volume and Velocity\\ \\High Throughput:\\ The system needed to ha"

    Scott S. - " Project Overview: Real-Time Risk Management System Objective The goal was to develop a real-time risk management system capable of processing and analyzing large volumes of trading data to provide near-instantaneous risk assessments. This system was crucial for enabling traders to make informed decisions while managing their exposure to various market risks in real-time. Complexity Factors 1. \\Data Volume and Velocity\\ \\High Throughput:\\ The system needed to ha"See full answer

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

    "I tried solving this question and here is the recorded video for the entire solution - https://youtu.be/G_LIbTp58XA Feel free to comment here or on the video for further discussion."

    Rjj - "I tried solving this question and here is the recorded video for the entire solution - https://youtu.be/G_LIbTp58XA Feel free to comment here or on the video for further discussion."See full answer

    Software Engineer
    System Design
    +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
  • Databricks logoAsked at Databricks 
    2 answers

    "One Accomplishment I'm most proud of is that I graduated from Schaumburg High School In May of 2021 and I was able to get up the stage and collect my diploma. This was a HUGE Impact in regards of passing all of my classes and earning all of my credits in order to be apart of the NOW Arena graduation."

    Amparo L. - "One Accomplishment I'm most proud of is that I graduated from Schaumburg High School In May of 2021 and I was able to get up the stage and collect my diploma. This was a HUGE Impact in regards of passing all of my classes and earning all of my credits in order to be apart of the NOW Arena graduation."See full answer

    Software Engineer
    Behavioral
    +1 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
  • Amazon logoAsked at Amazon 
    3 answers

    "It was like say we have a library A which has a library B as a dependency and so on, how would we determine in the dependency chain that whether there is a circular depedency?"

    Chris R. - "It was like say we have a library A which has a library B as a dependency and so on, how would we determine in the dependency chain that whether there is a circular depedency?"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
Showing 181-200 of 665