Software Engineer Interview Questions

Review this list of 438 software engineer interview questions and answers verified by hiring managers and candidates.
  • Apple logoAsked at Apple 

    "Reproduce the bug, read error messages, isolate the problem, use a debugger, check assumptions, review recent changes, consult documentation, Text Edge Cases, take break"

    Jennifer C. - "Reproduce the bug, read error messages, isolate the problem, use a debugger, check assumptions, review recent changes, consult documentation, Text Edge Cases, take break"See full answer

    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 

    "na"

    Nishigandha B. - "na"See full answer

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

    "Use a BFS"

    Kwaku K. - "Use a BFS"See full answer

    Software Engineer
    Technical
    +2 more
  • Meta (Facebook) logoAsked at Meta (Facebook) 
    Software Engineer
    Behavioral
  • "As we can pass info to only one child at a time, I told that from any given node, we have to pass the info to that child(of this node) which has the largest subtree rooted at it. To calculate the subtree sizes, I used DFS. And then to calculate the minimum time to pass info to all the nodes, I used BFS picking the largest subtree child first at every node. I couldn't write the complete code in the given time and also made a mistake in telling the overall time complexity of my approach. I think t"

    Lakshman B. - "As we can pass info to only one child at a time, I told that from any given node, we have to pass the info to that child(of this node) which has the largest subtree rooted at it. To calculate the subtree sizes, I used DFS. And then to calculate the minimum time to pass info to all the nodes, I used BFS picking the largest subtree child first at every node. I couldn't write the complete code in the given time and also made a mistake in telling the overall time complexity of my approach. I think t"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Dropbox logoAsked at Dropbox 
    Video answer for 'Find duplicate files in a file system.'

    " read_dir(path: str) -> list[str] returns the full path of all files and sub- directories of a given directory. is_file(path: str) -> bool: returns true if the path points to a regular file. is_dir(path: str) -> bool: returns true if the path points to a directory. read_file(path: str) -> str: reads and returns the content of the file. The algorithm: notice that storing all the file contents' is too space intensive, so we can't read all the files' contents to store and compare with each"

    Idan R. - " read_dir(path: str) -> list[str] returns the full path of all files and sub- directories of a given directory. is_file(path: str) -> bool: returns true if the path points to a regular file. is_dir(path: str) -> bool: returns true if the path points to a directory. read_file(path: str) -> str: reads and returns the content of the file. The algorithm: notice that storing all the file contents' is too space intensive, so we can't read all the files' contents to store and compare with each"See full answer

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

    "func isMatch(text: String, pattern: String) -> Bool { // Convert strings to arrays for easier indexing let s = Array(text.characters) let p = Array(pattern.characters) guard !s.isEmpty && !p.isEmpty else { return true } // Create DP table: dpi represents if s[0...i-1] matches p[0...j-1] var dp = Array(repeating: Array(repeating: false, count: p.count + 1), count: s.count + 1) // Empty pattern matches empty string dp[0]["

    Vince S. - "func isMatch(text: String, pattern: String) -> Bool { // Convert strings to arrays for easier indexing let s = Array(text.characters) let p = Array(pattern.characters) guard !s.isEmpty && !p.isEmpty else { return true } // Create DP table: dpi represents if s[0...i-1] matches p[0...j-1] var dp = Array(repeating: Array(repeating: false, count: p.count + 1), count: s.count + 1) // Empty pattern matches empty string dp[0]["See full answer

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

    "e"

    Srikar T. - "e"See full answer

    Software Engineer
    Behavioral
  • Flatiron Health logoAsked at Flatiron Health 
    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Goldman Sachs logoAsked at Goldman Sachs 

    "standard answer for this."

    Shar N. - "standard answer for this."See full answer

    Software Engineer
    Coding
    +1 more
  • "boolean isMatch(String s, String p) { int i=0; int j=0; int sID=-1; int prevM=-1; while(i<s.length()){ if(j<p.length() && (s.charAt(i)==p.charAt(j) || p.charAt(j)=='?')){ i++; j++; }else if(j<p.length() && p.charAt(j)=='*'){ sID=j; prevM=i; j++; }else if(sID!=-1){ j=sID+1; prevM++; i=prevM; }else{ return false; } } while(j<p.length() && p.charAt(j)=='*') j++; if(i!=s.length() || j!=p.leng"

    Ravi C. - "boolean isMatch(String s, String p) { int i=0; int j=0; int sID=-1; int prevM=-1; while(i<s.length()){ if(j<p.length() && (s.charAt(i)==p.charAt(j) || p.charAt(j)=='?')){ i++; j++; }else if(j<p.length() && p.charAt(j)=='*'){ sID=j; prevM=i; j++; }else if(sID!=-1){ j=sID+1; prevM++; i=prevM; }else{ return false; } } while(j<p.length() && p.charAt(j)=='*') j++; if(i!=s.length() || j!=p.leng"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Asked at Gameberry Labs 

    "Go has simpler syntax than Java. It is light weight. It is not Object Oriented. It does not support function overloading and function overriding. But these are small technical differences. Both are similar when it comes to testing. You have to create a mock object and implement an interface. Functionally, I did not feel any major difference."

    Vishal T. - "Go has simpler syntax than Java. It is light weight. It is not Object Oriented. It does not support function overloading and function overriding. But these are small technical differences. Both are similar when it comes to testing. You have to create a mock object and implement an interface. Functionally, I did not feel any major difference."See full answer

    Software Engineer
    Behavioral
    +1 more
  • Software Engineer
    Coding
    +1 more
  • Cisco logoAsked at Cisco 

    "I have been with Cisco, I am trying to move into a technical project manager role so that I will not loose the touch of latest technologies and also that aligns my passion."

    Praveena P. - "I have been with Cisco, I am trying to move into a technical project manager role so that I will not loose the touch of latest technologies and also that aligns my passion."See full answer

    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 

    "Front Page Layout Design for Newspaper App Header Section Logo: Displays at the top left. App Name: Displays alongside, so very prominent. Search Bar: Centered with search to find articles within the application. Navigation Menu: The links to the respective sections, World, Politics, Sports, Entertainment, and Opinion, etc Main Content Area Top Stories Carousel: It is a rotating banner that displays the top 3-5 news stories with images along with their headlines. Each story should be cl"

    Midde V. - "Front Page Layout Design for Newspaper App Header Section Logo: Displays at the top left. App Name: Displays alongside, so very prominent. Search Bar: Centered with search to find articles within the application. Navigation Menu: The links to the respective sections, World, Politics, Sports, Entertainment, and Opinion, etc Main Content Area Top Stories Carousel: It is a rotating banner that displays the top 3-5 news stories with images along with their headlines. Each story should be cl"See full answer

    Software Engineer
    Product Design
    +1 more
  • Gusto logoAsked at Gusto 
    Software Engineer
    Coding
  • "ArrayList allows constant time access (O(1)) to elements using their index because it uses a dynamic array internally, whereas LinkedList requires traversal from the head node, resulting in linear time complexity (O(n))."

    Aziz V. - "ArrayList allows constant time access (O(1)) to elements using their index because it uses a dynamic array internally, whereas LinkedList requires traversal from the head node, resulting in linear time complexity (O(n))."See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Apple logoAsked at Apple 
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Salesforce logoAsked at Salesforce 
    Software Engineer
    Behavioral
    +5 more
  • Apple logoAsked at Apple 
    Software Engineer
    Behavioral
Showing 341-360 of 438