Skip to main content

Software Engineer Technical Interview Questions

Review this list of 58 Technical Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Apple logoAsked at Apple 

    Coin Change

    IDE
    Medium
    12 answers
    +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
  • Apple logoAsked at Apple 
    1 answer

    "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
  • LangChain logoAsked at LangChain 
    Add answer
    Software Engineer
    Technical
  • " from collections import defaultdict, deque ''' The Graph {'USD': {'EUR': 0.88}, 'EUR': {'USD': 1.1363636363636365, 'MXN': 23.255813953488374}, 'MXN': {'EUR': 0.043}, 'Kilogram': {'Pound': 2.2}, 'Pound': {'Kilogram': 0.45454545454545453, 'Ounce': 16}, 'Ounce': {'Pound': 0.0625} } ''' def construct_graph(ratios): graph = defaultdict(dict) for source, destination, ratio in ratios: graphsource = ratio graphdestination = 1/float(r"

    Ignacio H. - " from collections import defaultdict, deque ''' The Graph {'USD': {'EUR': 0.88}, 'EUR': {'USD': 1.1363636363636365, 'MXN': 23.255813953488374}, 'MXN': {'EUR': 0.043}, 'Kilogram': {'Pound': 2.2}, 'Pound': {'Kilogram': 0.45454545454545453, 'Ounce': 16}, 'Ounce': {'Pound': 0.0625} } ''' def construct_graph(ratios): graph = defaultdict(dict) for source, destination, ratio in ratios: graphsource = ratio graphdestination = 1/float(r"See full answer

    Software Engineer
    Technical
    +2 more
  • Gameberry Labs logoAsked at Gameberry Labs 
    2 answers

    "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
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Google logoAsked at Google 
    3 answers

    "Binary search is the technique to search an element in a sorted array in O(log(N)) time. It is also used in problems wherever we find monotonically increasing or decreasing patterns."

    Shivam S. - "Binary search is the technique to search an element in a sorted array in O(log(N)) time. It is also used in problems wherever we find monotonically increasing or decreasing patterns."See full answer

    Software Engineer
    Technical
    +1 more
  • Google logoAsked at Google 
    2 answers

    "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
  • "I try to solve this initially using quick select where will take a pivot element and position the remaining elements and check if the current index is answer or not and continue the same but it requires o(n*n), but interviewee is expecting the best from me, so at the end i tried solving using heaps where will check the difference between k and n-k to use min or max heap after that we will heap the array, and will keep popping the element k-1 and return the peek one which leads to answer."

    Mourya C. - "I try to solve this initially using quick select where will take a pivot element and position the remaining elements and check if the current index is answer or not and continue the same but it requires o(n*n), but interviewee is expecting the best from me, so at the end i tried solving using heaps where will check the difference between k and n-k to use min or max heap after that we will heap the array, and will keep popping the element k-1 and return the peek one which leads to answer."See full answer

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

    "CIDR (Classless Inter-Domain Routing) -- also known as supernetting -- is a method of assigning Internet Protocol (IP) addresses that improves the efficiency of address distribution and replaces the previous system based on Class A, Class B and Class C networks."

    Ali H. - "CIDR (Classless Inter-Domain Routing) -- also known as supernetting -- is a method of assigning Internet Protocol (IP) addresses that improves the efficiency of address distribution and replaces the previous system based on Class A, Class B and Class C networks."See full answer

    Software Engineer
    Technical
  • Andela logoAsked at Andela 
    1 answer

    "let str = 'this is a test of programs'; let obj={}; for (let s of str ) obj[s]?(obj[s]=obj[s]+1):(obj[s]=1) console.log(JSON.stringify(obj))"

    Anonymous Emu - "let str = 'this is a test of programs'; let obj={}; for (let s of str ) obj[s]?(obj[s]=obj[s]+1):(obj[s]=1) console.log(JSON.stringify(obj))"See full answer

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

    "Use a min-heap or sort the array, either method works"

    Kwaku K. - "Use a min-heap or sort the array, either method works"See full answer

    Software Engineer
    Technical
  • Google logoAsked at Google 
    Add answer
    Software Engineer
    Technical
  • Mastercard logoAsked at Mastercard 
    2 answers

    "function findMinMax(array){ array.sort((a,b) => a - b); let min = array[0]; let max = array.slice(-1); return [min,max]; } `"

    Adam S. - "function findMinMax(array){ array.sort((a,b) => a - b); let min = array[0]; let max = array.slice(-1); return [min,max]; } `"See full answer

    Software Engineer
    Technical
  • "Classes are represented in memory as areas where code and class shared objects are. The JVM use class loader to load classes and unload them if no more required at runtime as specified at https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.7, to name a very consolidated version of JVM. The interviewers supposed memory was freed without being subject to GC. I asked to discuss to clarify which hypothesis is right, the interviewers dismissed me. I'm very happy they didn't select m"

    Luca D. - "Classes are represented in memory as areas where code and class shared objects are. The JVM use class loader to load classes and unload them if no more required at runtime as specified at https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.7, to name a very consolidated version of JVM. The interviewers supposed memory was freed without being subject to GC. I asked to discuss to clarify which hypothesis is right, the interviewers dismissed me. I'm very happy they didn't select m"See full answer

    Software Engineer
    Technical
  • 1 answer

    "משימת בית פרונט עם התחברות לשרת רמה היה ממש קל"

    מיכל ש. - "משימת בית פרונט עם התחברות לשרת רמה היה ממש קל"See full answer

    Software Engineer
    Technical
Showing 41-58 of 58
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