Be prepared to explaing following terms/rules/principles etc.
- MVC πΉ
- Idempotency πΉ π©
- REST πΉ
- Single responsibility principle πΈ π
- Open/Closed principle πΊ π
- Liskov substitution principle πΈ π
- Interface segregation principle πΊ π
- Dependency inversion principle, link 2
- Tell, don't ask principle πΈ π
- Law of Demeter πΉ
- Duck-typing πΉ π π©
- Inversion of control
- Dependecy injection πΊ π
- Explaining Variable πΈ π
- DRY πΉ π©
- Eventual Consistency πΊ π π©
- Composition over inheritance πΊ π
- Loose coupling / High Cohesion
- Microservices πΈ π π©
Be prepared to talk about following topics. Answers can be scoped to given framework.
- What do you think about custom controller actions (outside CRUD)?
- What do you consider clean code?
- How about testing? Are there any principles you identify with regarding TDD?
- How would you ensure that tests are easy to understand by other developers?
- Does writing tests after implementation affects process & quality in positive or negative way? Please explain.
- What do you like about [framework] the most?
- What is your preferred way in working with repository? (i.e. GitFlow) π©
- What options can you see in terms of static code analysis? π©
- What is your list of top things/techniques to ensure high code quality and why?
- What do you think about metaprogramming?
- What patterns do you consider useful when writing backend MVC apps?
- What full-text search solution are you familiar with? In what cases would you use those solutions?
- What do you miss in [framework]? Where do you think [framework] is not the good fit?
- What do you think about project documentation?
- What are the anti-patterns when writing [framework] apps in your opinion?
- How would you deal with complex, legacy project that you need to work with, if it does not have adequate tests coverage?
- Are you familiar with concept of Test Induced Design Damage? What is your opinion on that? π©
- How do you often deal with long running requests (i.e. generating documents)
- How would you describe βmaintainable codeβ?
- If I was to write API only application in [language], what would be your recommendations / hints in relation to this task?
- What kinds of caching do you feel are the most useful when developing [framework] applications?
- If there is an information you need deep inside your code, but it is only accessible on top level (i.e. in controller), how would you approach propagating it (think βcurrent_userβ, but it can be anything else)
- What do you think about / where do you find application for JWT π©
- What do you think about / where do you find application for Pub / Sub π©
- What do you think about / where do you find application for UUIDs π©
- What do you think about / where do you find application for WebSockets π©
- Where do you find use for so-called "monorepo"s π©
- What is your opinion about monolithic vs microservice based architecture? π©
- How would you ensure reliability of microservice architecture?
- How do you deal with database related performance issues (when processing tens of millions of records)?
- If you are asked to implement an interface that should work with live (realtime) data feed, how would you approach implementing it?
- How would you handle very intense traffic (i.e. from IoT) in [framework] application?
- How would you ensure stability of public API in application that is under active and rapid development?
- What do you think about / where do you find application for SOA π©
- What do you think about / where do you find application for CQRS π©
- What do you think about / where do you find application for DDD π©
- What do you think about / where do you find application for Event Sourcing π©
- What do you think about / where do you find application for Reporting Databases