Skip to content

Instantly share code, notes, and snippets.

@mokevnin
Created October 21, 2021 19:58
Show Gist options
  • Save mokevnin/63d3252aad29aba50c0326b93e66833b to your computer and use it in GitHub Desktop.
Save mokevnin/63d3252aad29aba50c0326b93e66833b to your computer and use it in GitHub Desktop.
Грейды в компании занимающейся видеостриммингом
L1
Базовые знание диалекта 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
L2
Уверенное знание 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)
L3
Глубокое знание 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 или его аналогов
L4
Знание хотя бы одного 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