Skip to main content

Software Engineer Technical Interview Questions

Review this list of 50 Technical Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Meta logoAsked at Meta 
    Video answer for 'Design an API for searching a folder.'
    Software Engineer
    Technical
    +1 more
  • TikTok logoAsked at TikTok 

    "This system design question is very small compared to other questions like design instagram, twitter, google drive etc... Since the design involves less components the level of detail we have to go in them were deep. I had to explain how to deal with all the NFR for the distributed cache system. Whether it is a push model or a pull model. Hade to do BOE calculations for the database too."

    Jagan M. - "This system design question is very small compared to other questions like design instagram, twitter, google drive etc... Since the design involves less components the level of detail we have to go in them were deep. I had to explain how to deal with all the NFR for the distributed cache system. Whether it is a push model or a pull model. Hade to do BOE calculations for the database too."See full answer

    Software Engineer
    Technical
    +1 more
  • +7

    "function knapsack(weights, values, cap) { const indicesByValue = Object.keys(weights).map(weight => parseInt(weight)); indicesByValue.sort((a, b) => values[b]-values[a]); const steps = new Map(); function knapsackStep(cap, sack) { if (steps.has(sack)) { return steps.get(sack); } let maxOutput = 0; for (let index of indicesByValue) { if (!sack.has(index) && weights[index] <= cap) { maxOutput ="

    Tiago R. - "function knapsack(weights, values, cap) { const indicesByValue = Object.keys(weights).map(weight => parseInt(weight)); indicesByValue.sort((a, b) => values[b]-values[a]); const steps = new Map(); function knapsackStep(cap, sack) { if (steps.has(sack)) { return steps.get(sack); } let maxOutput = 0; for (let index of indicesByValue) { if (!sack.has(index) && weights[index] <= cap) { maxOutput ="See full answer

    Software Engineer
    Technical
    +2 more
  • Amazon logoAsked at Amazon 
    +1

    "To determine if a graph is not a tree, you can check for the following conditions: Presence of cycles: A graph is not a tree if it contains cycles. In a tree, there should be exactly one unique path between any two vertices. If you can find a cycle in the graph, it cannot be a tree. Insufficient number of edges: A tree with N vertices will have exactly N-1 edges. If the graph has fewer or more than N-1 edges, then it is not a tree. Disconnected components: A tree is a connected graph, m"

    Vaibhav C. - "To determine if a graph is not a tree, you can check for the following conditions: Presence of cycles: A graph is not a tree if it contains cycles. In a tree, there should be exactly one unique path between any two vertices. If you can find a cycle in the graph, it cannot be a tree. Insufficient number of edges: A tree with N vertices will have exactly N-1 edges. If the graph has fewer or more than N-1 edges, then it is not a tree. Disconnected components: A tree is a connected graph, m"See full answer

    Software Engineer
    Technical
    +2 more
  • Amazon logoAsked at Amazon 

    "no"

    Hamilton D. - "no"See full answer

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

  • Stripe logoAsked at Stripe 

    "Use a mapping to store number characters to possible meaning, iterate through the numeronym matching all digits with their representation"

    Anonymous Bobcat - "Use a mapping to store number characters to possible meaning, iterate through the numeronym matching all digits with their representation"See full answer

    Software Engineer
    Technical
  • Nvidia logoAsked at Nvidia 

    "Clarifying When we say cloud gaming, we refer to a video gaming experience using cloud computing, right? Assumption: Yes. Understanding of cloud computing first. I'll use some analogies: Imagine you are looking to do heavy computing but don't have a powerful CPU and GPU. CPU and GPU are like your big calculators. You can buy a powerful CPU and GPU, but problems: It costs a lot to buy. It costs a lot to run. You don't need it 24-7. You are not a un"

    Darpan D. - "Clarifying When we say cloud gaming, we refer to a video gaming experience using cloud computing, right? Assumption: Yes. Understanding of cloud computing first. I'll use some analogies: Imagine you are looking to do heavy computing but don't have a powerful CPU and GPU. CPU and GPU are like your big calculators. You can buy a powerful CPU and GPU, but problems: It costs a lot to buy. It costs a lot to run. You don't need it 24-7. You are not a un"See full answer

    Software Engineer
    Technical
    +3 more
  • Meta logoAsked at Meta 
    Software Engineer
    Technical
    +1 more
  • "The first part is to design with either a linked list of IDs or an array of boolean values. The second part is to optimize both time and memory."

    Seamus L. - "The first part is to design with either a linked list of IDs or an array of boolean values. The second part is to optimize both time and memory."See full answer

    Software Engineer
    Technical
  • Google logoAsked at Google 
    Software Engineer
    Technical
    +2 more
  • 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
    Technical
    +2 more
  • Amazon logoAsked at Amazon 

    "Use Dijkstra's Algorithm with priority queue"

    Karthik R. - "Use Dijkstra's Algorithm with priority queue"See full answer

    Software Engineer
    Technical
    +2 more
  • LangChain logoAsked at LangChain 
    Software Engineer
    Technical
  • Flatiron Health logoAsked at Flatiron Health 
    Software Engineer
    Technical
    +2 more
  • Apple logoAsked at Apple 

    "A full stack developer could be summarized as the person who both writes the APIs and consumes the APIs. They are familiar with Databases/Data-layer services, middle-layer/application services and business logic, and finally familiar with the consumers whether front-end applications/UIs or other systems. They can understand the trade-offs up and down the stack, where to adjust along the service-call-path. Ideally they are comfortable programming both async calls (front end javascript promises, e"

    Luke P. - "A full stack developer could be summarized as the person who both writes the APIs and consumes the APIs. They are familiar with Databases/Data-layer services, middle-layer/application services and business logic, and finally familiar with the consumers whether front-end applications/UIs or other systems. They can understand the trade-offs up and down the stack, where to adjust along the service-call-path. Ideally they are comfortable programming both async calls (front end javascript promises, e"See full answer

    Software Engineer
    Technical
  • Apple logoAsked at Apple 

    Coin Change

    IDE
    Medium
    +9

    "The example given is wrong. The 2nd test case should have answer 3, as we can get to 6 by using 3 coins of denomination 2."

    Anmol R. - "The example given is wrong. The 2nd test case should have answer 3, as we can get to 6 by using 3 coins of denomination 2."See full answer

    Software Engineer
    Technical
    +4 more
  • "public Double calculateRatio(String source, String destination) { Double ratio=1.0; while(graph.containsKey(source) && !visited.contains(source)) { visited.add(source); Map valueMap=graph.get(source); if(valueMap.containsKey(destination)) { return ratio*=valueMap.get(destination); } Map.Entry firstEntry=valueMap.entrySet().iterator().next(); source=firstEntry.getKey(); ratio*=firstEntry.getValue(); System.out.println("Entered"); } return null; }"

    Divya R. - "public Double calculateRatio(String source, String destination) { Double ratio=1.0; while(graph.containsKey(source) && !visited.contains(source)) { visited.add(source); Map valueMap=graph.get(source); if(valueMap.containsKey(destination)) { return ratio*=valueMap.get(destination); } Map.Entry firstEntry=valueMap.entrySet().iterator().next(); source=firstEntry.getKey(); ratio*=firstEntry.getValue(); System.out.println("Entered"); } return null; }"See full answer

    Software Engineer
    Technical
    +2 more
  • Gameberry Labs logoAsked 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
    Technical
    +1 more
  • Google logoAsked at Google 

    "Here’s a commonly used Git branching and release strategy that we used at my previous role: Branching strategy (Git-based) a. Main Branches main: Production-ready branch. Only tested and stable code is merged here. develop: Feature branches are merged here before being merged into main. b. Supporting Branches Feature Branches (feature/) Release Branches (release/) Hotfix Branches (hotfix/) 2.Release Strategy a. Continuous Deplo"

    Anonymous Dingo - "Here’s a commonly used Git branching and release strategy that we used at my previous role: Branching strategy (Git-based) a. Main Branches main: Production-ready branch. Only tested and stable code is merged here. develop: Feature branches are merged here before being merged into main. b. Supporting Branches Feature Branches (feature/) Release Branches (release/) Hotfix Branches (hotfix/) 2.Release Strategy a. Continuous Deplo"See full answer

    Software Engineer
    Technical
  • " The productofarrays() function works by first creating an empty array to store the product of the two integers. Then, it iterates through the first array and multiplies each element by each element in the second array. The product of each element is then appended to the product array. Finally, the product array is returned def productofarrays(array1, array2): """ Calculates the product of two integers represented by two arrays. Args: array1: The first array. array2: The se"

    Praful B. - " The productofarrays() function works by first creating an empty array to store the product of the two integers. Then, it iterates through the first array and multiplies each element by each element in the second array. The product of each element is then appended to the product array. Finally, the product array is returned def productofarrays(array1, array2): """ Calculates the product of two integers represented by two arrays. Args: array1: The first array. array2: The se"See full answer

    Software Engineer
    Technical
Showing 21-40 of 50