- Базовые знание диалекта Typescript, основных встроенных примитивов (Array, Object, Function, String, Date) и методов работы с ними, понимание контекста (this) и способов управления им
- Базовые знания фреймворка React
- Знание наиболее часто используемых Web API: fetch/XHR, Storage, PostMessage, DOM
- Умение писать простейшие алгоритмы (поиск, сортировка, сравнение объектов) без требований к их оптимальности.
- Навыки кроссбраузерной адаптивной верстки по макету с использованием существующего кода, знание CSS и препроцессора SCSS
- Навыки отладки разметки в браузерах Chrome/Safari
- Знание принципов работы HTTP, отличий между различными методами, принципов работы Cookies
- Практическое владение лучшими практиками структурирования кода: SOLID/DRY/KISS и т.д.
- Базовые знания git, понимание git flow
- Представление об автоматическом тестировании, базовые знания Jest
- Уверенное знание Typescript (интерфейсы, составные и унаследованные типы, генерики), продвинутых языковых конструкций (Promise, async/await, IIFE) и универсальных структур данных (связные списки, Map, таблицы поиска).
- Знание продвинутых Web API (Intersection Observer, Workers, IndexedDB, History)
- Уверенное знание React (функциональные и классовые компоненты, хуки, жизненный цикл, HoC), базовые знания способов управления состоянием в React-приложениях (router, redux, context), умение самостоятельно создать несложное SPA-приложение
- Умение писать регулярные выражения и продвинутые алгоритмы работы с данными; понимание сложности по памяти и по времени, нотации O; Навыки оптимизации алгоритмов.
- Глубокие знания протокола HTTP, понимание принципов работы браузерного и сетевого кеша, умение сформировать и проверить ручными средствами нестандартный запрос (дополнительные заголовки, загрузка файлов, json body, cache busting)
- Правильная и быстрая кроссплатформенная верстка по макету “с нуля”, представление о различных CSS-методологиях (atomic, бэм, feature slice), уверенное владение SCSS
- Уверенные навыки автоматического тестирования (unit, snapshot), представление о E2E-тестировании
- Уверенное владение отладчиком Chrome/Safari: отладка кода, сетевых запросов, разметки и локальных хранилищ
- Базовые знания Docker и Webpack
- Базовые знания NodeJS, знание хотя бы одного серверного фреймворка (Express, Fastify)
- Глубокое знание Typescript (условные типы, выведенные типы, декораторы), различных Web API и фреймворка React
- Знание продвинутых структур данных и алгоритмов: стек/очередь, рекурсия, динамическое программирование; навык поиска оптимальных алгоритмических решений
- Уверенное владение асинхронным программированием, понимание concurrency и race condition в браузерном и серверном окружениях
- Уверенное знание Redux, представление об альтернативах (mobx, effector, xstate)
- Знание паттернов функционального программирования (мемоизация, каррирование, композиция, chaining), представление об ООП
- Знание архитектурного паттерна REST, представления о других способах реализации межсервисного взаимодействия; знание принципов автодокументации (Swagger)
- Уверенное знание NodeJS, Express/Fastify, Webpack, Docker, умение самостоятельно спроектировать и реализовать сервис с использованием данного инструментария. Понимание принципов SSR.
- Понимание особенностей построения микросервисной архитектуры, представление о брокерах сообщений, распределенных хранилищах и принципах отказоустойчивости
- Продвинутые техники верстки: оптимизация изображений, анимации, SVG, шаблонизаторы и препроцессоры, программирование в SASS.
- Навыки настройки CI (gitlab), общие знания об nginx и k8s, базовые знания MongoDB
- Навыки профилирования и анализа производительности веб-приложений и серверного кода
- Навыки E2E-тестирования, знание Cypress или его аналогов
- Знание хотя бы одного frontend-фреймворка, помимо React, и умение реализовать любую ранее решенную задачу вообще без оных.
- Знание Core Web Vitals и методик их оптимизации (ttfb, fcp, lcp, cls и т.д.)
- Знание принципов проектирования SQL и No-SQL баз данных, навыки работы с Redis, MongoDB, Clickhouse и иными хранилищами.
- Владение широким спектром инфраструктурных инструментов: Grafana, Kibana, Prometheus, Jaeger, Redash, Helm, понимание принципов оптимизации нагрузки в распределенных системах
- Понимание продуктовых метрик и ценностей и знание технических средств их анализа (Я.Метрика, Google Analytics, Tableau)
- Понимание паттернов и хороших практик UX: оптимистичные интерфейсы, throttling/debounce, бесшовная навигация, предзагрузка и т.п.
- Навыки работы с WebSocket, знание различных способов реализации межсервисного взаимодействия (gRPC, GraphQL, JSON API и т.д)
- Общие знания о видеостриминге на разных платформах, представление о DRM (dash,hls,widevine,fairplay), уверенный навык работы с HTMLMediaElement API
- Представление о принципах SEO; знание инструментов технического анализа (webmaster console, lighthouse/pagespeed) и способов оптимизации
- Навыки проектирования и реализации продуктового тестирования web-сервисов: A/B, Canary и др.
- Понимание маркетинговых инструментов и метрик (utm-метки, gtm), знание технологий построения веб-сервисов с обратной связью (Push, SSE, webRTC)
- Глубокие знания протоколов DASH и HLS, навык работы с MediaKeySystem API и/или VideoJS Базовое знание хотя бы одного ЯП, кроме Typescript/Javascript