This page has been translated to Chinese by monklof.
I started writing down this list as a personal reminder of topics I had the chance to discuss with colleagues and friends, and that I wanted to deepen...
I'm not a big fan of asking technical questions in job interviews: I rather prefer to sit together with candidates in front of some real code, hands on the keyboard, facing a real problem, and have a full day of pair programming, hopefully rotating with all the other team members. Yet, I feel some technical questions could be a good starting point to begin an engaging and nice conversation, and this can be useful to get a deeper knowledge of each others.
This repo collects a number of back end related questions that can be used when vetting potential candidates. It is by no means recommended to use every single question on the same candidate: that would take hours, and would have no sense at all, as they cover a too broad set of topics for a single developer's to possibly know. Browse the section you find more relevant for your context, and pick the questions that give you more ideas on the conversation to have.
Most of the questions are open-ended, and some of them just don't have a right or a wrong answer. On the contrary, they are intended to be used as the starting point for a conversation that hopefully tells you more about the person's capabilities than a straight answer would. Personally, I would even choose the questions whose answers are not yet clear to me.
Again, I stress that just asking questions is hardly sufficient. Complete the interview with a long pair programming session with your candidates: it is one of the best opportunities to know each others' style and approach and to let candidates know some details about their future day job.
This project is admittedly inspired by Front-end Job Interview Questions by @darcyclarke
Sooner or later I will complete it with the relative answers. Feel free to contribute, it would be highly appreciated!
- Questions about Design Patterns
- Questions about Code Design
- Questions about languages
- Web Questions
- Databases Questions
- NoSQL Questions
- Code Versioning Questions
- Concurrency Questions
- Questions about Distributed Systems
- Questions about Software Lifecycle and Team Management
- Questions about logic and algorithms
- Questions about Software Architecture
- Questions about Service Oriented Architecture and Microservices
- Questions about Security
- General Questions
- Open Questions
- Questions based on snippets of code
- Bill Gates Style Questions
- COOK Why are first-party cookies and third-party cookies treated so differently?
- APIV How would you manage Web Services API versioning?
- SPA From a backend perspective, are there any disadvantages or drawbacks on the adoption of Single Page Applications?
- STATELS Why do we usually put so much effort for having stateless services? What's so good in stateless code and why and when is statefulness bad?
- RESTSOAP REST and SOAP: when would you choose one, and when the other?
- MVC In web development, Model-View Controller and Model-View-View-Model approaches are very common, both in the backend and in the frontend. What are they, and why are they advisable?
- Why are first-party cookies and third-party cookies treated so differently? COOK
- How would you manage Web Services API versioning? APIV
- From a backend perspective, are there any disadvantages or drawbacks on the adoption of Single Page Applications? SPA
- Why do we usually put so much effort for having stateless services? What's so good in stateless code and why and when is statefulness bad? STATELS
- REST and SOAP: when would you choose one, and when the other? RESTSOAP
- In web development, Model-View Controller and Model-View-View-Model approaches are very common, both in the backend and in the frontend. What are they, and why are they advisable? MVC
| COOK | Why are first-party cookies and third-party cookies treated so differently? |
| APIV | How would you manage Web Services API versioning? |
| SPA | From a backend perspective, are there any disadvantages or drawbacks on the adoption of Single Page Applications? |
| STATELS | Why do we usually put so much effort for having stateless services? What's so good in stateless code and why and when is statefulness bad? |
| RESTSOAP | REST and SOAP: when would you choose one, and when the other? |
| MVC | In web development, Model-View Controller and Model-View-View-Model approaches are very common, both in the backend and in the frontend. What are they, and why are they advisable? |
| Why are first-party cookies and third-party cookies treated so differently? | COOK |
| How would you manage Web Services API versioning? | APIV |
| From a backend perspective, are there any disadvantages or drawbacks on the adoption of Single Page Applications? | SPA |
| Why do we usually put so much effort for having stateless services? What's so good in stateless code and why and when is statefulness bad? | STATELS |
| REST and SOAP: when would you choose one, and when the other? | RESTSOAP |
| In web development, Model-View Controller and Model-View-View-Model approaches are very common, both in the backend and in the frontend. What are they, and why are they advisable? | MVC |
How would you migrate an application from a database to another, for example from MySQL to PostgreSQL? If you had to manage that project, which issues would you expect to face? [Answers](http://some.com]
Why do databases treat null as a so special case? For example, why does SELECT * FROM table WHERE field = null not match records with null field in SQL? Answers
ACID is an acronym that refers to Atomicity, Consistency, Isolation and Durability, 4 properties guaranteed by a database transaction in most database engines. What do you know about this topic? Would you like to elaborate? Answers
How would you manage database schema migrations? That is, how would you automate changes to database schema, as the application evolves, version after version? Answers
How is lazy loading achieved? When is it useful? What are its pitfalls? Answers
The so called "N + 1 problem" is an issue that occurs when code needs to load the children of a parent-child relationship with a ORMs that have lazy-loading enabled, and that therefore issue a query for the parent record, and then one query for each child record. How to fix it?Answers
How would you find the most expensive queries in an application? Answers
In your opinion, is it always needed to use database normalization? When is it advisable to use denormalized databases? Answers
Of of the Continuous Integration's techniques is called Blue-Green Deployment: it consists in having two production environments, as identical as possible, and in performing the deployment in one of them while the other one is still operating, and than in safely switching the traffic to the second one after some convenient testing. This technique becomes more complicated when the deployment includes changes to the database structure or content. I'd like to discuss this topic with you. Answers
Migration | Answers
How would you migrate an application from a database to another, for example from MySQL to PostgreSQL? If you had to manage that project, which issues would you expect to face?
Or example, why does SELECT * FROM table WHERE field = null not match records with null field in SQL?
Why do databases treat null as a so special case? For example, why does SELECT * FROM table WHERE field = null not match records with null field in SQL? Answers
ACID is an acronym that refers to Atomicity, Consistency, Isolation and Durability, 4 properties guaranteed by a database transaction in most database engines. What do you know about this topic? Would you like to elaborate?
Answers
How would you manage database schema migrations? That is, how would you automate changes to database schema, as the application evolves, version after version?
Answers
How is lazy loading achieved? When is it useful? What are its pitfalls?
Answers
The so called "N + 1 problem" is an issue that occurs when code needs to load the children of a parent-child relationship with a ORMs that have lazy-loading enabled, and that therefore issue a query for the parent record, and then one query for each child record. How to fix it?
Answers
How would you find the most expensive queries in an application?
Answers
In your opinion, is it always needed to use database normalization? When is it advisable to use denormalized databases?
Answers
Of of the Continuous Integration's techniques is called Blue-Green Deployment: it consists in having two production environments, as identical as possible, and in performing the deployment in one of them while the other one is still operating, and than in safely switching the traffic to the second one after some convenient testing. This technique becomes more complicated when the deployment includes changes to the database structure or content. I'd like to discuss this topic with you.
Answers
How would you migrate an application from a database to another, for example from MySQL to PostgreSQL? If you had to manage that project, which issues would you expect to face?
Why do databases treat null as a so special case? For example, why does SELECT * FROM table WHERE field = null not match records with null field in SQL?
ACID is an acronym that refers to Atomicity, Consistency, Isolation and Durability, 4 properties guaranteed by a database transaction in most database engines. What do you know about this topic? Would you like to elaborate?
How would you manage database schema migrations? That is, how would you automate changes to database schema, as the application evolves, version after version?
How is lazy loading achieved? When is it useful? What are its pitfalls?
The so called "N + 1 problem" is an issue that occurs when code needs to load the children of a parent-child relationship with a ORMs that have lazy-loading enabled, and that therefore issue a query for the parent record, and then one query for each child record. How to fix it?
How would you find the most expensive queries in an application?
In your opinion, is it always needed to use database normalization? When is it advisable to use denormalized databases?
Of of the Continuous Integration's techniques is called Blue-Green Deployment: it consists in having two production environments, as identical as possible, and in performing the deployment in one of them while the other one is still operating, and than in safely switching the traffic to the second one after some convenient testing. This technique becomes more complicated when the deployment includes changes to the database structure or content. I'd like to discuss this topic with you.
- Why are first-party cookies and third-party cookies treated so differently? COOK
- How would you manage Web Services API versioning? APIV
- From a backend perspective, are there any disadvantages or drawbacks on the adoption of Single Page Applications? SPA
- Why do we usually put so much effort for having stateless services? What's so good in stateless code and why and when is statefulness bad? STATELS
- REST and SOAP: when would you choose one, and when the other? RESTSOAP
- In web development, Model-View Controller and Model-View-View-Model approaches are very common, both in the backend and in the frontend. What are they, and why are they advisable? MVC
- Why are first-party cookies and third-party cookies treated so differently? Answers
- How would you manage Web Services API versioning? Answers
- From a backend perspective, are there any disadvantages or drawbacks on the adoption of Single Page Applications? Answers
- Why do we usually put so much effort for having stateless services? What's so good in stateless code and why and when is statefulness bad? Answers
- REST and SOAP: when would you choose one, and when the other? Answers
- In web development, Model-View Controller and Model-View-View-Model approaches are very common, both in the backend and in the frontend. What are they, and why are they advisable? Answers
- + Why are first-party cookies and third-party cookies treated so differently?
- + How would you manage Web Services API versioning?
- + From a backend perspective, are there any disadvantages or drawbacks on the adoption of Single Page Applications?
- + Why do we usually put so much effort for having stateless services? What's so good in stateless code and why and when is statefulness bad?
- + REST and SOAP: when would you choose one, and when the other?
- + In web development, Model-View Controller and Model-View-View-Model approaches are very common, both in the backend and in the frontend. What are they, and why are they advisable?