Skip to content

Instantly share code, notes, and snippets.

@dmjcomdem
Last active July 16, 2024 05:40
Show Gist options
  • Save dmjcomdem/a65d52502dadd85fbf08995e3ae400b3 to your computer and use it in GitHub Desktop.
Save dmjcomdem/a65d52502dadd85fbf08995e3ae400b3 to your computer and use it in GitHub Desktop.
Грейды для frontend-разработчиков

Level 1

  • Базовые знание диалекта 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

Level 2

  • Уверенное знание 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)

Level 3

  • Глубокое знание 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 или его аналогов

Level 4

  • Знание хотя бы одного 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

Principal

  • Представление о принципах SEO; знание инструментов технического анализа (webmaster console, lighthouse/pagespeed) и способов оптимизации
  • Навыки проектирования и реализации продуктового тестирования web-сервисов: A/B, Canary и др.
  • Понимание маркетинговых инструментов и метрик (utm-метки, gtm), знание технологий построения веб-сервисов с обратной связью (Push, SSE, webRTC)
  • Глубокие знания протоколов DASH и HLS, навык работы с MediaKeySystem API и/или VideoJS Базовое знание хотя бы одного ЯП, кроме Typescript/Javascript
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment