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