В 2023 году в Bereke Bank была обновлена организационная структура, в результате чего в команде разработки появились новые роли. Структура стала прозрачнее и позволяет разработчикам развиваться в разных направлениях.
В этом разделе мы расскажем о том, какие профили разработчиков есть в команде разработки, какие требования предъявляются к каждому профилю и какие навыки нужно развивать, чтобы стать разработчиком определенного уровня.
- Понимание принципов и подходов к разработке программного обеспечения
- Коммуникабельность и умение работать в команде
- Умение работать с документацией
- Умение читать и понимать код
Junior Frontend Developer — это разработчик, который только начинает свой путь в разработке. Он знаком с основами разработки и может выполнять простые задачи.
- Основы HTML, включая понимание
DOCTYPE
- Работа с основными тегами, такими как
head
,meta
- Знание семантической разметки и её важности
- Подключение скриптов и стилей, понимание
defer
иasync
- Владение техникой работы с таблицами (
table
,td
,tr
,th
) - Создание и управление формами (form, inputs, method, submit, reset, validation)
- Основы CSS и различные способы подключения стилей
- Понимание и применение CSS-селекторов
- Владение концепцией CSS Box model и
box-sizing
- Использование свойств, таких как
float
,display
,position
,z-index
- Понимание различий между
visibility: hidden
иdisplay: none
- Работа с фонами и изображениями, включая форматы картинок
- Применение
transition
,transform
, медиа запросов, псевдоклассов и псевдоэлементов - Использование CSS-препроцессоров и CSS-фреймворков
- Основы JavaScript, его применение в современной разработке
- Объявление переменных, понимание типов данных
- Работа с операторами, условиями, циклами,
switch
, функциями - Понимание области видимости переменных, использование
let
иconst
- Основы работы с DOM и BOM, манипуляции с DOM-элементами
- Подписка на события, работа с формами
- Понимание и использование AJAX, cookie, localStorage, sessionStorage
- Базовые знания одного из популярных фреймворков или библиотеки (например: React, Vue или Angular)
- Понимание модульной архитектуры (CommonJS, AMD, ES2015)
- Опыт работы с инструментами сборки (webpack, browserify)
- Знание HTTP-заголовков, методов запросов, основных кодов статусов ответов
- Понимание процессов код-ревью, CI/CD
- Опыт работы с системами контроля версий (git)
- Взаимодействие с инструментами для дизайнеров (Figma, Invision, Sketch)
- Основы JSX, компоненты, props, state
- Управление данными и событиями, включая
useState
,useEffect
- Типы, интерфейсы, классы
Middle Frontend Developer — это разработчик, который уже имеет опыт работы в команде и может выполнять сложные задачи. Он знаком с основными инструментами разработки и может принимать участие в разработке архитектуры приложения в рамках команды.
Общие требования к Middle Frontend Developer такие же, как и к Junior Frontend Developer, но с более глубоким пониманием и опытом работы.
- Оптимизация производительности веб-страниц
- Применение CSS препроцессоров, PostCSS, css-in-js
- Понимание специфичности и приоритизации CSS-селекторов
- Работа с flexbox и CSS grid
- Применение методологий (BEM, OOCSS, SMACSS)
- Использование CSS фильтров
- Преобразования типов, создание объектов через new
- Работа с JSON,
setTimeout
,setInterval
,requestAnimationFrame
- Понимание EventLoop и работы с массивами
- Применение Promises, деструктуризация, аргументы функций по умолчанию, rest, spread
- Работа с классами, наследование,
super
,static
- Использование
fetch
,async/await
,try/catch
- Дженерики, декораторы, модули, пространства имён
- Навигация и поиск по DOM-элементам
- Управление размерами и прокруткой страницы
- Работа с событиями: bubbling, stopPropagation, preventDefault
- AJAX и Web APIs: Базовое применение XMLHttpRequest
- Уверенное знание фреймворков или ванильного JavaScript
- Работа с Webpack, Vite и другими инструментами сборки
- Понимание принципов DRY, KISS
- Понимание CORS, JSDoc, GitFlow и CI/CD процессов
- Опыт прохождения и проведения код-ревью
- Использование профайлеров браузера и Browser Developer Tools
- Базовые знания Linux и ООП
Senior Frontend Developer — это разработчик, который имеет большой опыт работы в команде и может выполнять сложные задачи. Он знаком с основными инструментами разработки и может принимать участие в разработке архитектуры приложения в рамках команды и организации. Менторство и обучение других разработчиков — это одна из его основных задач.
Общие требования к Senior Frontend Developer такие же, как и к Middle Frontend Developer, но с более глубоким пониманием и опытом работы.
- Понимание принципов и практик оптимизации под поисковые системы
- Знание и применение shadowDOM
- Глубокое понимание и опыт работы с видео и аудио потоками
- Понимание принципов и применение SSR
- Декомпозиция интерфейса на компоненты, возможно, с применением CSS Modules, БЭМ
- Продвинутое понимание и использование побитовых операторов, объектов, массивов
- Работа с датой и временем, контекстом (call, apply, bind)
- Использование eval, обработка ошибок (try/catch), RegExp
- Продвинутое понимание ES6+, включая классы, модули, async/await
- Продвинутое понимание и опыт работы с TypeScript
- Изменение аттрибутов и DOM-свойств, стилей
- Расширенные возможности XMLHttpRequest
- Общение между окнами разных доменов через
postMessage
, WebSockets, SSE
- Понимание философии используемых технологий или фреймворков
- Конфигурирование и развертывание средств сборки (Webpack, Vite etc.)
- Знание основных паттернов проектирования (MV*, Factory, Pub-Sub etc)
- Оптимизация производительности JavaScript и работы с DOM, включая мобильные браузеры
- Реализация Single Page Applications (SPA), понимание когда и зачем их использовать
- Иммутабельность, локализация
- Защита от CSRF, понимание REST и SOAP
- Документирование проекта, Unit-тесты, рефакторинг
- Продвинутое автоматическое тестирование (e2e-тесты, Snapshot/screenshot based testing)
- Продвинутый уровень работы с git
- Тестирование компонентов, настройка проекта (Webpack, Vite, hooks)
- Использование useReducer, useLayoutEffect, usePortals, компонентных паттернов
- Selectors, Normalized state
Tech Lead Frontend — это разработчик, который имеет большой опыт работы в команде и может выполнять сложные задачи, формировать архитектуру приложения в рамках команды и организации. Помогает с формированием команды, бэклога и планированием релизов.
Он заинтересован в развитии команды и помогает другим разработчикам в решении сложных задач.
Общие требования к Tech Lead Frontend такие же, как и к Senior Frontend Developer, но с более глубоким пониманием и большим опытом работы.
- Понимание и умение оптимизировать reflows и repaints
- Разработка и поддержка CSS-архитектуры проекта
- Использование
Object.defineProperty
, геттеров/сеттеров,Object.freeze
- Понимание ООП в JS в функциональном и прототипном стилях
- Работа с прототипами, замыканиями, модулями
- Понимание и применение генераторов.
- Управление узлами: поиск, добавление, удаление.
- Понимание координат в окне.
- Знание или углубленные навыки в областях canvas, WebRTC, WebGL, Web Audio API
- Разработка Service Workers, Progressive Web Apps
- Полный цикл разработки web-приложений/сервисов/сайтов
- Проектирование архитектуры, ведение проекта, менторство
- Понимание внутреннего устройства JS, включая V8, event loop, утечки памяти
- Функциональное программирование в JS
- Разработка и оптимизация isomorphic (universal) apps и SSR.
- Управление кешем веб-страниц, в том числе Back-Forward cache в SPA.
- Понимание работы веб-приложения от запроса до ответа сервера.
- Разработка с применением feature toggle, TDD
- Понимание структур данных и алгоритмов
- Способность создавать и поддерживать type-safe проекты