Software Engineering

Backend

  • 1.Explain SOLID principles
  • 2.Do you know any design pattern? Pick your favorite one and explain it (e.g. Decorator, Facade, Observer)
  • 3.What is a RESTful API?
  • 4.What’s the difference between 2xx, 4xx, and 5xx error codes?
  • 5.What is a Microservice architecture and how it differs from a monolithic one?
  • 6.Explain OOP
  • 7.Explain functional programming
  • 8.Explain what is a Queue in programming and make some examples of different types of Queues (LIFO, FIFO...)
  • 9.How do you handle errors in your code?
  • 10.What is a distributed system?
  • 11.Have you ever used a message broker? What is it and how does it work?
  • 12.What is a cache? What is it used for?
  • 13.Why is redis so fast?

Microservices

  • 1.Why should I use separate data storage for each microservice?
  • 2.What does it meen to keep code at a similar level of maturity?
  • 3.What entails to separate build for each microservice?
  • 4.Should I assign each microservice multiple responsibility?
  • 5.Are containers useful in microservices?
  • 6.Stateless microservices seem to be bad. Can I go stateful with microservices?
  • 7.Should I Adopt DDD (Domain Driven Design)?
  • 8.Orchestrating microservices is not easy. What are the options?

Backend Engineering Scenarios

  • 1.What’s canary deployment?
  • 2.What if I have two deployments 1.0 (production, stable) and 1.1 (test, maybe stable) and I want to test 1.1 with production traffic, without using the canary deployment technique, what alternatives have I got?
  • 3.What if I have a log file that multiple processes write to, how can I make sure that the log file is not corrupted?

Database

  • 1.What kind of databases do you know? Pick one and convince me it's the best kind of db ever for my application (e.g. In memory, time series, document, vectorial)
  • 2.Explain DB data structures (e.g. B-Tree, Hash Table, LSM tree etc.)
  • 3.What is a query execution plan? Can you "explain" it?
  • 4.What is a transaction? What's the definition of ACID?

Frontend

  • 1.What is responsive design and how is it achieved?
  • 2.What is a CSS preprocessor?
  • 3.What is a media query in CSS?
  • 4.What’s a CDN?
  • 5.How can it help to improve a frontend?
  • 6.What kind of CDN have you used?
  • 7.What’s caching and how does it work?
  • 8.What kind of caches have you used?
  • 9.How can you test frontend?
  • 10.Have you got any experience with Selenium, Cypress, or Storybook.js?

React

  • 1.What are the benefits of using a virtual DOM in React?
  • 2.What is the difference between state and props in React?
  • 3.What’s the difference between a class component and a functional component?
  • 4.How routing works in React?
  • 5.What is the difference between controlled and uncontrolled components in React?
  • 6.What is Redux?

Angular

  • 1.What is the difference between ngOnChanges and ngOnInit in Angular?
  • 2.What is Angular's change detection mechanism?
  • 3.What is an Angular service?
  • 4.What is dependency injection in Angular?
  • 5.What is Angular routing?
  • 6.What is the difference between a component and a directive in Angular?

Frontend Engineering Scenarios

  • 1.What are microfrontends?
  • 2.What are the benefits of using micro frontends?
  • 3.What is a Progressive Web App (PWA)?
  • 4.What are the benefits of using PWA?
  • 5.What are the key features of a PWA?
  • 6.How can you optimize a PWA for performance?
  • 7.Client Side Rendering (CSR) vs Server Side Rendering (SSR), explain the concepts
  • 8.Can you describe your approach to optimizing the performance and user experience of a large e-commerce website?
  • 9.How would you approach building a highly interactive and responsive web application with real-time updates? E.g. Financial App Stock Market data