Opowiedz o najciekawszym zadaniu lub najciekawszym błędzie w jednym z twoich ostatnich dwóch miejsc pracy.
Frontend
/** * Sprawdza, czy nawiasy są zrównoważone w ciągu znaków, czy nie. * Nawiasy, które mogą wystąpić w ciągu: * [[{ i }]] * @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; }
Co się dzieje po tym, jak użytkownik wpisze URL w przeglądarce i naciśnie Enter, aż do wyrenderowania strony na ekranie?
Dlaczego użyliście własnego rozwiązania do wykresów zamiast gotowych bibliotek (np. Grafana)?
Jak był zorganizowany CI/CD? Używaliście pipeline GitLab czy czegoś oddzielnego?
Czym różnią się atrybuty async i defer w tagu script? Jak wpływają na ładowanie i wykonywanie JavaScript?
Czy pracowałeś nad optymalizacją ładowania stron i metryk Web Vitals (LCP, FMP, FCP)?
Jak często uczestniczyłeś w produkcji i jaka była Twoja rola w tym procesie?
Jak zorganizowano testowanie? Jakie narzędzia były używane (Jest, Playwright)?
W bankomacie są banknoty o określonych nominałach. Użytkownik wybiera kwotę pieniędzy, którą chce otrzymać. Bankomat powinien wydać wprowadzoną przez użytkownika sumę minimalną liczbą banknotów. Napisz funkcję bankomatu. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]