Skip to content

A list of helpful back-end related questions you can use to interview potential candidates, test yourself or completely ignore.

License

Notifications You must be signed in to change notification settings

jacksnow00/Back-End-Developer-Interview-Questions

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 

Repository files navigation

Back-End Developer Interview Questions

This repo contains a number of back-end interview questions that can be used when vetting potential candidates. It is by no means recommended to use every single question here on the same candidate (that would take hours). Choosing a few items from this list should help you vet the intended skills you require.

This project is admittedly inspired by Front-end Job Interview Questions by @darcyclarke

Note: Keep in mind that many of these questions are open ended and could lead to interesting discussions that tell you more about the person's capabilities than a straight answer would.

  1. General Questions
  2. Open Questions
  3. Patterns Questions
  4. Languages Questions
  5. Web Questions
  6. Databases Questions
  7. NoSQL Questions
  8. Code Revision Questions
  9. Concurrency Questions
  10. Questions about Software Lifecycle and Team Management
  11. Questions about logic and algorithms
  12. Questions about Software Architecture
  13. Questions about Security
  14. Questions based on snippets of code

####[↑] General Questions:

  • Why Functional Programming matters?
  • What is Encapsulation important for?
  • What is a real-time system and how is it different from an ordinary system?
  • What's the relationship between real-time languages and heap memory allocation?
  • Immutability is the practice of setting values once, at the moment of their creation, and never changing them. How immutability can help writing safer code?
  • Pro and cons of mutable and unmutable values.
  • What's the Object-Relational impedence mismatch?
  • What's the difference between design, architecture, functionality and aesthetic? Discuss
  • Which principles would you apply to define the size of a cache?

####[↑] Open Questions:

  • What did you learn this week?
  • List the last 5 books you read.
  • Why are Quora's answers better than Yahoo Answers' ones?
  • Imagine there's a perfect clone of yourself. Imagine that that clone is your boss. Would you like to work for him/her?
  • Let's have a conversation about "Reinventing the wheel", the "Not Invented Here Syndrome" and the "Eating Your Own Food" practice
  • What makes good code good?
  • Why do people resist change?
  • Why is writing software difficult? What makes maintaining software hard?
  • Would you prefer working on Green Field or Brown Field projects? Why?
  • What happens when you type google.com into your browser and press enter?
  • As a software engineer you want both to innovate and to be predictable. How those 2 goals can coexist in the same strategy?

####[↑] Questions about Patterns:

  • Tell me about the Hollywood Principle.
  • About the Law of Demeter (the Principle of Least Knowledge): write a code violating it, then fix it.
  • Which are the limits and pitfalls of Active-Record?
  • What are the differences between Active-Record and Data-Mapper?
  • What is the intent of the Null Object Pattern?
  • Why is Composition often better than Inheritance?
  • What is an Anti-corruption Layer?
  • Could you write a Thread-Safe Singleton class?
  • Could you implement Objects in terms of Higher Order Functions, and vice-versa?
  • Show with an example that global objects are evil.
  • The ability to change implementation without affecting clients is called Data Abstraction. Produce and example violating this property, then fix it.
  • Write a snippet of code violating the DRY principle. Then, fix it.
  • How would you deal with Dependency Hell?
  • Why is goto evil?

####[↑] Questions about Languages:

  • Tell me the 3 worse defects of your preferred language
  • Why is there a rising interest about Functional Programming?
  • What is a closure, and what is useful for?
  • What are generics useful for?
  • What are high-order functions? What are they useful for? Write one, in your preferred language.
  • Write a loop, then transform it into a recursive function, avoiding mutability. Discuss.
  • What does it mean when a language treats functions as first-class citizens?
  • Show me an example where an Anonymous Function can be useful
  • What is Dynamic Method Dispatch?

####[↑] Questions about Web development:

  • Why first-party cookies and third-party cookies are treated so differently?

####[↑] Questions about Databases:

  • How would you manage the migration of a project from MySQL to PostgreSQL?
  • Why in SQL SELECT * FROM table WHERE field = null does not match records with null field?
  • What's ACID (Atomicity, Consistency, Isolation, Durability)?
  • How would you manage database schema migrations?
  • How is Lazy Loading achieved? When is it useful? What are its pitfalls?
  • What's the N+1 problem?
  • Write two functions, one Referentially Transparent and the other one Referentially Opaque. Discuss.
  • How would you find the most expensive queries in an application?

####[↑] Questions about NoSQL:

  • What is Eventual Consistency?

####[↑] Questions about code revision:

  • Why branching with Mercurial or git is easier than with SVN?
  • What are the pros and cons of Distributed Version Control Systems like git over Centralized ones like SVN?
  • Could you describe GitHubFLow and GitFlow workflows?
  • What's a rebase?
  • Why merges are easier with Mercurial and git than with SVN and CVS?

####[↑] Questions about Concurrency:

  • Why is testing multithreading / concurrent code so difficult?
  • What is a Race Condition? Code an example, using whatever language you like.
  • What is a Deadlock? Explain using code.
  • What is Process Starvation?
  • What is a Wait Free algorithm?
  • In which case whould you apply asynchronously communication between two systems?
  • If you are building a distributed system for scalability and robustness, what are the different things you'd think of in the case you are working in a closed and secure network environment or in geographically distributed and public system?
  • How to manage Fault Tolerance in a Web application? And in a Desktop one?
  • What are the general pitfalls of Remote Procecure Call?
  • How to deal with failures in Distributed Systems?

####[↑] Questions about Software Lifecycle and Team Management:

  • What is agility?
  • How would you deal with Legacy Code?
  • What is Kanban?
  • What is the biggest difference between Agile and Waterfall?
  • Being a team manager, how would you deal with the problem of having too many meetings?
  • How would you manage a very late project?
  • "Individuals and interactions over processes and tools" and "Customer collaboration over contract negotiation" comprise half of the values of the Agile Manifesto. Discuss

####[↑] Questions about logic and algorithms:

  • Make a FIFO Queue using only LIFO Stacks. Then build a LIFO Stack using only FIFO Queues.
  • Write a snippet of code affected by a Stack Overflow
  • Write a tail-recursive version of the factorial function
  • Using your preferred language, write a REPL that echoes your inputs. Evolve it to make it an RPN calculator.
  • How would you design a "defragger" utility?

####[↑] Questions about Software Architecture:

  • What is CQRS (Command Query Responsibility Segregation)?
  • What is Three-Tier architecture?
  • What are the pros and cons of MicroService architecture?
  • How would you design a software system for scalability?
  • What are the strategies to deal with the C10k problem?
  • How to deal with failover and user sessions?
  • How would you design a decentralized (that is, with no central server) P2P system?
  • Why doesn't CGI scale?
  • How would you defend the design of your systems against Vendor Lock-in?
  • What makes code readable?
  • What are the differences between Soa and Microservices?
  • What are the disadvantages of the Publish-Subscribe pattern at scale?
  • When would you apply horizontal scaling and when vertical scaling?
  • When is a cache not useful or even dangerous?

####[↑] Questions about Security:

  • What's Two Factor Authentication? How would you implement it in an existing web application?

####[↑] Questions about snippets of code:

  • What's the output of this Javascript function?
function hookupevents() {
  for (var i = 0; i < 3; i++) {
    document.getElementById("button" + i)
      .addEventListener("click", function() { 
        alert(i); 
      });
  }
}
  • About Type Erasure, what's the output of this Java snippet, and why?
ArrayList<Integer> li = new ArrayList<Integer>();
ArrayList<Float> lf = new ArrayList<Float>();
if (li.getClass() == lf.getClass()) // evaluates to true
  System.out.println("Equal");
  • Write a sample code that produces a memory leak
  • Generate a sequence of unique random numbers

About

A list of helpful back-end related questions you can use to interview potential candidates, test yourself or completely ignore.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published