Do you have experience working with Docker?
Frontend
Tell me about a custom select component.
RxJS task: there is an Observable subscribed to three times in a template. How to make a single subscription instead of three, without directly using the async pipe? How do Subject and BehaviorSubject differ from a regular Observable (hot vs cold stream)?
How to solve the trackBy problem if there are duplicate values in the array and no unique identifier?
CSS task: three div blocks are stacked vertically, each with margin-top 10px and margin-bottom 30px. What will be the distance between the blocks? What will change if you replace div with span?
JavaScript task: write a function that takes two arrays and returns an array of elements present only in one of the arrays (symmetric difference). Assess the algorithm's complexity.
Do you have experience writing your own UI libraries or component libraries?
Tell me about custom components you have written based on the NgZorro (NzZor) library. For example, a datepicker with business restrictions on weekends.
The parent component uses the OnPush strategy, and the child component uses Default. What happens to the child component when changes occur? In which direction does change detection run — from top to bottom or bottom to top?
How does rendering behave when a list item changes? Why is trackBy needed?
TypeScript task: there is a class Animal with methods move and bark, the function process takes an animal of type Animal and calls its bark method. Will there be a TypeScript error? How to narrow the type correctly? How to write a type guard?
Why is your project not upgrading to a newer version of Angular?
What is the difference between the change detection strategies OnPush and Default? Why use OnPush?
JavaScript task: determine the type (typeof) for various expressions — new Array(), object, Map, number, Infinity, result of concatenating strings and numbers.
Tell about your experience over the last 3-4 years. What tasks have you solved?
RxJS task: determine the output when using combineLatest with two streams with different delays. What will forkJoin output?
You mentioned several independent frontend applications — are these micro frontends? Have you worked with Module Federation?
Was keyboard support implemented in the custom datepicker?
Do you have experience working with WebSocket? With GraphQL?
RxJS task: optimize the chain of operators (pipe with filter, toLowerCase, switchMap). Explain why switchMap is used, how it differs from concatMap and exhaustMap. Which operator is better for processing payment requests?