Created
October 21, 2021 19:58
-
-
Save mokevnin/63d3252aad29aba50c0326b93e66833b to your computer and use it in GitHub Desktop.
Грейды в компании занимающейся видеостриммингом
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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