In what format do tasks come to you? How much independence do you have?
Frontend
What are the main HTML tags you know?
Tell me a little about yourself and your most interesting experience.
Tell us about yourself and your work experience.
Implement a debounce(fn, delay) function that delays the function call until the specified quiet time has passed.
Implement a class following the Observer / Event Emitter pattern: storing subscribers, subscribing to an event, unsubscribing from an event, notifying subscribers.
You mentioned tests — did you write tests at [company] and at your last job?
Implement the EventEmitter class: the subscribe(event, handler) method for subscribing to an event, the emit(event, data) method for calling all subscribers, and the unsubscribe method.
How did you solve the problem of coexistence of a new stack and Legacy code in one project? Did you consider micro frontends or web components?
Do you have experience participating in migration from Vue 2 to Vue 3 — what exactly did you do yourself?
Implement a debounce function.
Implement virtual scrolling: there is a long list of messages (10,000 items), you need to render only the visible elements inside a container with a fixed height of 300px, with each row height being 30px.
function createEmitter() { const events = new Map(); function on(event, handler) { if(!events.has(event)) { events.set(event, [handler]) return } events.get(event).push(handler) } function off(event, handler) { // TODO: remove handler } function emit(event, payload) { // TODO: call all subscribers of event } return { on, off, emit }; } const bus = createEmitter(); const unsub1 = bus.on("order:created", (payload) => { console.log("handler1:", payload.id); }); const handler2 = (payload) => { console.log("handler2:", payload.id); } bus.on("order:created", handler2);
What format do tasks come to you in? Do you have a high degree of independence?
Practical task: working with two arrays of objects — comparison by key using Map structures and iteration with two loops.
Do you have experience writing tests? What kind of tests have you written and in what volume?
function memoize(fn, options = {}) { const { maxSize = 1000, keyOf = (...a) => JSON.stringify(a), lruTouch = true, } = options; let hits = 0; let misses = 0; const cache = new Map(); const getKey = (...args) => keyOf(...args); const wrapped = (...args) => { // code to be written here return fn(...args); }; // additional code here return wrapped; }
Why did you conclude that a custom UI kit is needed instead of just using ready-made UI elements?
Implement a Virtual List: there is a long list of messages, you need to render only the visible elements inside a container with a fixed height of 300 pixels. The height of one row is 30 pixels.
Tell us about your relevant work experience.