Skip to content

Instantly share code, notes, and snippets.

@yegor256
Last active February 15, 2024 13:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yegor256/430f140e2d31e24ac2c0511eba47d36e to your computer and use it in GitHub Desktop.
Save yegor256/430f140e2d31e24ac2c0511eba47d36e to your computer and use it in GitHub Desktop.
some interview questions

These are typical interview questions I ask most of job candidates. The most complex questions are on the top. They are more relevant to architects and designers, while questions at the bottom of the list should be addressed to programmers.

Architecture:

  • What is the difference between aggregation and composition?
  • Name three most popular layers in layered web architecture

Design:

  • What does "program to interfaces, not implementations" mean?
  • What does SOLID stand for? What are its principles?
  • Can you explain Single Responsibility Principle by example?
  • What does Dependency Injection means, explain by example?
  • Can you explain how Visitor design pattern works?
  • What is cohesion and coupling in OOP?
  • Why object immutability in OOP may be beneficial?
  • Why composition is better than inheritance?
  • What is "dependency hell" and how you would avoid it?

Coding (check here too):

  • Why "exception swallowing" is a code smell?
  • What is the difference between unit and integration test?
  • Why NULL references are considered harmful in OOP?
  • How much is 2^16?

DevOps:

  • What is the difference between CI and CD?

Distributed systems:

  • What is CAP theorem, what do you think about it? What does consistency mean in this abbreviation? What is linearizability or atomic consistency?
  • What ACID and BASE stands for?
  • Can you explain how Three-Phase-Commit protocol works?
  • What is the difference between SOAP and gRPC?
  • What is distributed hash table and how does it work? What implementations do yuo know?
  • What is Lamport timestamp and vector clocks?
  • How nodes in P2P system can find each other, what is discovery protocol, which kinds do you know?
  • What is consensus alogrithm, what is leader election?
  • What network protocols can be used for P2P systems, what's the difference between TCP and UDP, what is NAT traversing?

Git:

  • What "git squash" is used for?
  • When "git rebase" is more suitable than "git merge"?

Web:

  • What is the difference between HTTP 1.1 and HTTP 2.0?
  • How does load balancer works?
  • What 302 HTTP response code means?
  • What JavaScript obfuscation is used for?
  • Can you explain how HTTP cookies work?
  • Can you explain how "long polling" works?
  • Can you explain what CDN is for and how it helps in web architecture?

Databases:

  • Can you explain how normalization works in relational algebra?
  • Name a few business cases where NoSQL databases are more suitable than relational ones?
  • What is the purpose of de-normalization in relational databases?
  • What is the difference between INNER JOIN and LEFT JOIN in SQL?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment