Tell us about the most interesting task or the most interesting failure at one of your last two workplaces.
Frontend
/** * Checks whether brackets are balanced in a string. * Brackets that may appear in the string: * [[{ and }]] * @param {string} str * @return {boolean} */ function parentheses(str) { const open = ['(', '[', '{']; const close = [')', ']', '}']; const stack = []; for (let i = 0; i < str.length; i++) { const letter = str[i]; if (open.includes(letter)) { stack.push(letter); } else if (close.includes(letter)) { const index = close.indexOf(letter); const lastOpenIndex = stack.length - 1; if (open[index] !== stack[lastOpenIndex]) { return false; } else { stack.splice(lastOpenIndex, 1); } } } return stack.length === 0; }
What happens after the user enters a URL in the browser and presses Enter — up to the rendering of the page on the screen?
Why did you use a custom solution for charts instead of ready-made libraries (e.g., Grafana)?
What is the difference between the async and defer attributes in the script tag? How do they affect the loading and execution of JavaScript?
Have you worked on optimizing page loading and Web Vitals metrics (LCP, FMP, FCP)?
How was the CI/CD set up? Did you use GitLab pipeline or something separate?
How was testing organized in your previous projects? What tools were used (Jest, Playwright)?
How often did you ride in production and what was your role in this process?
There is an ATM with banknotes of a specified denomination. The user selects the amount of money they want to receive. The ATM should dispense the entered amount with the minimum number of banknotes. Write an ATM function. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]