Skip to main content

Software Engineer Interview Questions

Review this list of 619 Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Software Engineer
    Behavioral
  • American Express logoAsked at American Express 
    +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
    +1 more
  • Amazon logoAsked at Amazon 

    "input_logs = [ f"{senderid} {receiverid} {transaction_count}" "1 2 2", "3 2 42", "2 2 22", "1 1 12", "2 1 1", "2 5 4", "4 2 15" ] input_threshold = 20 exptected_output = [ list of user_ids that made more than 20 transactions sorted by number of transactions in descending order "3", # 42 transactions "2", # 27 transactions (22 + 1 + 4) #"4", # 15 transactions #"1" # 14 transactions (2 + 12 + 1) ] def gettopapi_users(logs, thres"

    Anonymous Unicorn - "input_logs = [ f"{senderid} {receiverid} {transaction_count}" "1 2 2", "3 2 42", "2 2 22", "1 1 12", "2 1 1", "2 5 4", "4 2 15" ] input_threshold = 20 exptected_output = [ list of user_ids that made more than 20 transactions sorted by number of transactions in descending order "3", # 42 transactions "2", # 27 transactions (22 + 1 + 4) #"4", # 15 transactions #"1" # 14 transactions (2 + 12 + 1) ] def gettopapi_users(logs, thres"See full answer

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

    "Approach 1: Use sorting and return the kth largest element from the sorted list. Time complexity: O(nlogn) Approach 2: Use max heap and then select the kth largest element. time complexity: O(n+logn) Approach 3: Quickselect. Time complexity O(n) I explained my interviewer the 3 approaches. He told me to solve in a naive manner. Used Approach 1 had some time left so coded approach 3 also The average time complexity of Quickselect is O(n), making it very efficient for its purpose. However, in"

    GalacticInterviewer - "Approach 1: Use sorting and return the kth largest element from the sorted list. Time complexity: O(nlogn) Approach 2: Use max heap and then select the kth largest element. time complexity: O(n+logn) Approach 3: Quickselect. Time complexity O(n) I explained my interviewer the 3 approaches. He told me to solve in a naive manner. Used Approach 1 had some time left so coded approach 3 also The average time complexity of Quickselect is O(n), making it very efficient for its purpose. However, in"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Adobe logoAsked at Adobe 
    +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
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Software Engineer
    Behavioral
    +1 more
  • Oracle logoAsked at Oracle 
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Apple logoAsked at Apple 

    "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
  • Apple logoAsked at Apple 
    +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
  • Software Engineer
    Behavioral
  • Google logoAsked at Google 
    +6

    "import time class Task: def init\(self, description, interval=None): self.description = description self.interval = interval self.next_run = time.time() class SimpleTaskScheduler: def init\(self): self.tasks = [] def add_task(self, description, interval=None): self.tasks.append(Task(description, interval)) def run(self, duration=60): end_time = time.time() + duration while time.time() < end_time: curr"

    Yash N. - "import time class Task: def init\(self, description, interval=None): self.description = description self.interval = interval self.next_run = time.time() class SimpleTaskScheduler: def init\(self): self.tasks = [] def add_task(self, description, interval=None): self.tasks.append(Task(description, interval)) def run(self, duration=60): end_time = time.time() + duration while time.time() < end_time: curr"See full answer

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

    "I aim to utilize hands-on activities to apply the knowledge I've acquired, safeguard the organization from threat actors, and contribute to its growth."

    Bravin V. - "I aim to utilize hands-on activities to apply the knowledge I've acquired, safeguard the organization from threat actors, and contribute to its growth."See full answer

    Software Engineer
    Behavioral
  • Airbnb logoAsked at Airbnb 
    +4

    "I always ask to clarify if this is a brand new team. If so, then I focus on bringing in people with strong technical aptitudes(since I'm hiring for software engineering), but also team members that have experience mentoring and good communication is a must. I look for people who have leadership qualities. I emphasize that building a brand new team isn't something I can do on my own, so the initial hires of that team are very important to help me expand it."

    Catherine I. - "I always ask to clarify if this is a brand new team. If so, then I focus on bringing in people with strong technical aptitudes(since I'm hiring for software engineering), but also team members that have experience mentoring and good communication is a must. I look for people who have leadership qualities. I emphasize that building a brand new team isn't something I can do on my own, so the initial hires of that team are very important to help me expand it."See full answer

    Software Engineer
    Behavioral
    +4 more
  • "I said we could always revert the production issues. Solve it at DEV environment and then publish again. Interviewer gave me an example of it like a database schema change that may not be possible to revert. I said that we always used SQL scripts to upgrade and downgrade the database schema for each production deployment. So it would not be a problem for us. I guess my answer was not accepted."

    Bulent K. - "I said we could always revert the production issues. Solve it at DEV environment and then publish again. Interviewer gave me an example of it like a database schema change that may not be possible to revert. I said that we always used SQL scripts to upgrade and downgrade the database schema for each production deployment. So it would not be a problem for us. I guess my answer was not accepted."See full answer

    Software Engineer
    Behavioral
  • Meta logoAsked at Meta 
    +17

    "function insertItem(heap, item) { heap.push(item); if (heap.length > 0) { let current = heap.length - 1; while(current > 0 && heap[Math.floor(current/2)] > heap[current]) { [heap[Math.floor(current/2)], heap[current]] = [heap[current], heap[Math.floor(current/2)]]; current = Math.floor(current/2); } } } function extractMin(heap) { let smallest = heap[0]; let len = heap.length; if (len > 2) { heap[0] = heap[len - 1]; heap.splice(len - 1); "

    Arturo Z. - "function insertItem(heap, item) { heap.push(item); if (heap.length > 0) { let current = heap.length - 1; while(current > 0 && heap[Math.floor(current/2)] > heap[current]) { [heap[Math.floor(current/2)], heap[current]] = [heap[current], heap[Math.floor(current/2)]]; current = Math.floor(current/2); } } } function extractMin(heap) { let smallest = heap[0]; let len = heap.length; if (len > 2) { heap[0] = heap[len - 1]; heap.splice(len - 1); "See full answer

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

    "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
  • Amazon logoAsked at Amazon 

    "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
  • "find total sum. assign that to rightsum traverse from left to right: keep updating left sum and right sum, when they match return the index. else if you reach end return -1 or not found"

    Rahul J. - "find total sum. assign that to rightsum traverse from left to right: keep updating left sum and right sum, when they match return the index. else if you reach end return -1 or not found"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Adobe logoAsked at Adobe 
    +22

    "This problem could be solved in two ways(both using Kadane's algorithm): Simple iterating 1-D dp function maxSubarraySum(nums) { const n = nums.length; if ( n === 0) return 0; const dp = Array(n).fill(0); dp[0] = nums[0]; for (let i = 1; i < n; i++) { dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]); } return Math.max(...dp); } "

    Mark K. - "This problem could be solved in two ways(both using Kadane's algorithm): Simple iterating 1-D dp function maxSubarraySum(nums) { const n = nums.length; if ( n === 0) return 0; const dp = Array(n).fill(0); dp[0] = nums[0]; for (let i = 1; i < n; i++) { dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]); } return Math.max(...dp); } "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    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
Showing 281-300 of 619