Software Engineer System Design Interview Questions

Review this list of 78 system design software engineer interview questions and answers verified by hiring managers and candidates.
  • "While all branches should ideally be tested, some are more critical than others based on the following factors: A. High-Risk or Business-Critical Logic Branches that handle authentication & authorization (e.g., login, role-based access control) Financial transactions or payment processing logic (e.g., tax calculations, refunds, invoice generation) Security-related branches (e.g., encryption/decryption, token verification) B. Error Handling & Exception Paths Branches that deal with error conditi"

    Adesegun K. - "While all branches should ideally be tested, some are more critical than others based on the following factors: A. High-Risk or Business-Critical Logic Branches that handle authentication & authorization (e.g., login, role-based access control) Financial transactions or payment processing logic (e.g., tax calculations, refunds, invoice generation) Security-related branches (e.g., encryption/decryption, token verification) B. Error Handling & Exception Paths Branches that deal with error conditi"See full answer

    Software Engineer
    System Design
  • Meta (Facebook) logoAsked at Meta (Facebook) 
    Software Engineer
    System Design
    +1 more
  • "Control plane has few component, it's like the brain of the cluster, the data plane is the work horse, CP has etcd, api-server, DP has kublet and kube-proxy"

    Hyder A. - "Control plane has few component, it's like the brain of the cluster, the data plane is the work horse, CP has etcd, api-server, DP has kublet and kube-proxy"See full answer

    Software Engineer
    System Design
  • Goldman Sachs logoAsked at Goldman Sachs 
    Software Engineer
    System Design
  • Meta (Facebook) logoAsked at Meta (Facebook) 

    "Evication Strategy: LFU Access Pattern: Write Around"

    Yomna H. - "Evication Strategy: LFU Access Pattern: Write Around"See full answer

    Software Engineer
    System Design
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • DocuSign logoAsked at DocuSign 

    "The real discussion was very much similar o what exposed at https://www.tryexponent.com/courses/software-engineering/system-design/design-rate-limiter, but - as I commented the video - the real interviewer wasn't so naive to do not forgive the client identification only because IP. I had to introduce glimpses of https://en.wikipedia.org/wiki/Knowyourcustomer practice, I quoted JWT. I proposed a logical map of id addressing a "deque" of time-stamps of requests, with a threshold for the deque an"

    Luca D. - "The real discussion was very much similar o what exposed at https://www.tryexponent.com/courses/software-engineering/system-design/design-rate-limiter, but - as I commented the video - the real interviewer wasn't so naive to do not forgive the client identification only because IP. I had to introduce glimpses of https://en.wikipedia.org/wiki/Knowyourcustomer practice, I quoted JWT. I proposed a logical map of id addressing a "deque" of time-stamps of requests, with a threshold for the deque an"See full answer

    Software Engineer
    System Design
  • Amazon logoAsked at Amazon 
    Video answer for 'Design a URL shortener.'
    +19

    "I studied Exponent's TinyURL system design video. My interviewer was asking many detailed questions on API design, schema, as well as data required to store. I found system design questions are bit high level instead of depth. I think should have detail design of API, schema and some additional flavors."

    Yag S. - "I studied Exponent's TinyURL system design video. My interviewer was asking many detailed questions on API design, schema, as well as data required to store. I found system design questions are bit high level instead of depth. I think should have detail design of API, schema and some additional flavors."See full answer

    Software Engineer
    System Design
    +1 more
  • Netflix logoAsked at Netflix 
    Video answer for 'Design a streaming service like Netflix.'

    "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
    +1 more
  • Goldman Sachs logoAsked at Goldman Sachs 

    "Microservices for resolving diffs, storage S3 for keeping files"

    Anonymous Jellyfish - "Microservices for resolving diffs, storage S3 for keeping files"See full answer

    Software Engineer
    System Design
  • Google logoAsked at Google 
    Video answer for 'Design a visual landmark recognition system.'
    +3

    "I understand this is more focused on ML. However, I have a system question. If users allow us to access their location, or they send location via text box, could we use CDNs for the search without hitting our database? We only query the database when we have zero information on location. Other questions: does embedding always guarantee information on location? Do we discharge the user images after we return a prediction? I heard the feedback that we should keep it for future learning. What would"

    Bini T. - "I understand this is more focused on ML. However, I have a system question. If users allow us to access their location, or they send location via text box, could we use CDNs for the search without hitting our database? We only query the database when we have zero information on location. Other questions: does embedding always guarantee information on location? Do we discharge the user images after we return a prediction? I heard the feedback that we should keep it for future learning. What would"See full answer

    Software Engineer
    System Design
    +1 more
  • Amazon logoAsked at Amazon 

    "I saw this question in one of my interviews."

    Ven E. - "I saw this question in one of my interviews."See full answer

    Software Engineer
    System Design
    +2 more
  • Visa logoAsked at Visa 
    Software Engineer
    System Design
  • Meta (Facebook) logoAsked at Meta (Facebook) 

    "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
    +2 more
  • Stripe logoAsked at Stripe 

    "TCP server/client to facilitate high throughput of incoming metrics.(This is the standard used in the industry by Datadog etc). NoSQL or timeseries database for storing metrics. Timeseries databases are better for aggregating metrics in a given time period. REST API for serving metrics data to visualization frontend."

    Abhi R. - "TCP server/client to facilitate high throughput of incoming metrics.(This is the standard used in the industry by Datadog etc). NoSQL or timeseries database for storing metrics. Timeseries databases are better for aggregating metrics in a given time period. REST API for serving metrics data to visualization frontend."See full answer

    Software Engineer
    System Design
  • Amazon logoAsked at Amazon 

    "Functional Requirement Monitor health, metrics Alert in case of failure/anomaly Visualize the live health Analyse machines on periodic basis Non Functional Should not exert load on machines low latency Highly scalable Logs/Metrics Gathering push - machine gather and send to system and low priority background thread along with batching pull - heart beat check (for offline machines) Processing Real time streaming using Kafka/kinesis + Flink TimeSeries database for stor"

    Sourabh G. - "Functional Requirement Monitor health, metrics Alert in case of failure/anomaly Visualize the live health Analyse machines on periodic basis Non Functional Should not exert load on machines low latency Highly scalable Logs/Metrics Gathering push - machine gather and send to system and low priority background thread along with batching pull - heart beat check (for offline machines) Processing Real time streaming using Kafka/kinesis + Flink TimeSeries database for stor"See full answer

    Software Engineer
    System Design
    +2 more
  • Meta (Facebook) logoAsked at Meta (Facebook) 

    "Microservices are small parts of a application we can deploy them seprately and use them as a application feature."

    Anonymous Salamander - "Microservices are small parts of a application we can deploy them seprately and use them as a application feature."See full answer

    Software Engineer
    System Design
  • Asked at The Trade Desk 

    "Design the cache, set policy like LRU or other custom policies."

    Poha - "Design the cache, set policy like LRU or other custom policies."See full answer

    Software Engineer
    System Design
  • Affirm logoAsked at Affirm 

    "The interviewer focused on the data models and steered the conversation there from the beginning. He had a specific design in mind and I just wasn't hitting it. He also wanted details on how I would implement the logic for splitting users into variants. I would recommend reading the LinkedIn blog on their AB Test system design."

    Anonymous Kingfisher - "The interviewer focused on the data models and steered the conversation there from the beginning. He had a specific design in mind and I just wasn't hitting it. He also wanted details on how I would implement the logic for splitting users into variants. I would recommend reading the LinkedIn blog on their AB Test system design."See full answer

    Software Engineer
    System Design
  • Meta (Facebook) logoAsked at Meta (Facebook) 
    Video answer for 'Design an API for searching a folder.'
    Software Engineer
    System Design
    +1 more
  • Google logoAsked at Google 

    "A load balancer accepts requests from clients (e.g. web browsers on the Internet) and backend services (e.g. a web server). Load balancers are useful for replicating backend services onto multiple machines to meet increased demand. The design of a load balancer should address the following questions: What protocols should be supported? IP allows computers to communicate using packets, similarly to how people send letters. IP packets are addressed using an IP address and port number. "

    Anonymous Hyena - "A load balancer accepts requests from clients (e.g. web browsers on the Internet) and backend services (e.g. a web server). Load balancers are useful for replicating backend services onto multiple machines to meet increased demand. The design of a load balancer should address the following questions: What protocols should be supported? IP allows computers to communicate using packets, similarly to how people send letters. IP packets are addressed using an IP address and port number. "See full answer

    Software Engineer
    System Design
Showing 41-60 of 78