What problem does the priority of local records solve when merging history with snapshot from the backend? What happens if this priority is changed?
Frontend
Tell us about your impressions of completing the test task: what difficulties did you face, what did you like and dislike?
What does deep copying data on the backend protect against?
What is the difference in behavior between three functions: async functions with throw, functions with Promise.reject, and functions with new Promise that throws an error inside the executor?
How to validate incoming POST request when creating a task, for example, the title should be a string of at least three characters? What tools can be used?
What is your current stage of job search and when will you be able to start in case of an offer?
In what case can a synchronous try/catch around an asynchronous call still work? What happens to an unhandled rejected Promise?
How to extend an existing interface from a library without rewriting it completely?
What utility types in TypeScript do you know? What is the difference between any and unknown?
In the given code, can you catch an exception with try/catch? How to properly handle a rejected Promise without await?
What is the difference between interface and type in TypeScript? How to combine two interfaces into one?
Write a generic function/type that can handle user data, and explain how to constrain the generic.
What is an asynchronous function and what does Promise return? What states does a Promise consist of?
What is middleware in Express and what is the purpose of express.json()? What happens if it is not used?
Why is notification grouping by date implemented as a separate module rather than a regular method?
Implement a basic REST service on Express for tasks: get list, create, update, and delete tasks.
In what sequence will the numbers be output in the given snippet with Promise, queueMicrotask, and setTimeout?
What does the client.onNotification call physically return in the working application and why doesn't the synchronous try/catch protect against RPC error? How to fix this?
What will the user see in the tab after restarting the backend process with an empty history and automatic RPC connection recovery without reloading the tab?
Can a macro task be executed between microtasks?