gitmyhub

Back-End-Developer-Interview-Questions

★ 17k updated 1y ago

A list of back-end related questions you can be inspired from to interview potential candidates, test yourself or completely ignore

A curated list of open-ended conversation questions for back-end developer interviews, covering design patterns, databases, distributed systems, concurrency, and architecture, with no answers included by design.

setup: easycomplexity 1/5

This repository is a curated list of open-ended interview questions for back-end software developers. The author created it as a personal collection of topics they enjoyed discussing with colleagues, and they openly say they prefer sitting down and pair-programming with candidates over asking question-and-answer style interviews. The questions are not meant as a quiz: they are conversation starters intended to reveal how a candidate thinks about problems, not whether they can recite a textbook answer.

The list is grouped into broad sections covering the areas a back-end developer typically works with. These include design patterns (Inversion of Control, Singleton, Active-Record, Data-Mapper, Law of Demeter, Anti-Corruption Layer, Separation of Concerns), code design principles (high cohesion and loose coupling, Don't Repeat Yourself, TDD, refactoring, the role of code comments), programming-language concepts (closures, functional programming, generics, higher-order functions, static versus dynamic typing, exceptions, pattern matching, namespaces), web fundamentals (REST versus SOAP, statelessness, API versioning, MVC and MVVM, single-page applications, third-party cookies), databases (ACID, schema migrations, the N+1 problem, normalization, lazy loading, blue/green deployment), NoSQL topics (CAP theorem, eventual consistency, scalability), code versioning (Git, Mercurial, GitFlow, rebase, merging), concurrency (race conditions, deadlocks, process starvation), distributed systems (RPC pitfalls, fault tolerance, network partitions, the fallacies of distributed computing), software lifecycle and team management (Agile, Kanban, legacy code, meetings, team organization), small algorithm and logic puzzles, and software architecture (event-driven design, CQRS, n-tier, scaling).

The repository deliberately contains no answers. The author suggests that an interviewer pick a small relevant subset of questions rather than going through the whole list, and notes that even questions the interviewer cannot fully answer themselves can lead to useful conversations. There is no code in the repository — it is a single document. The full README is longer than what was provided.

Where it fits