← Беру үшін ![]()
Senior
Тіркеу: 18.08.2026
Рахид Гусейнов
Мамандық: Full Stack Developer
7 лет в веб разработке, разрабатывал сложные компоненты и сервисы для EdTech и для B2B.
Знаю как под ключ собрать высокнагруженную платформу которая будет максимально поддерживаемая на лучшем фреймворке в зависимости от проекта.
Буду рад быть полезным в вашем проекте и получить новый экспириенс, спасибо!
7 лет в веб разработке, разрабатывал сложные компоненты и сервисы для EdTech и для B2B.
Знаю как под ключ собрать высокнагруженную платформу которая будет максимально поддерживаемая на лучшем фреймворке в зависимости от проекта.
Буду рад быть полезным в вашем проекте и получить новый экспириенс, спасибо!
Дағдылар
Angular
TypeScript
WebRTC
Тәжірибе
Full Stack Developer
12.2024 - 04.2026 |Skyeng (Singularity Hub)
TypeScript/Angular, PHP/Symfony
Задачи — фронтенд:
- Проектирование и развитие многомодульного SPA в Nx-монорепозитории: кабинеты студента и куратора, разделы по направлениям обучения, lazy loading, переиспользуемые компоненты и сервисы.
- Управление состоянием на типизированном сторе поверх RxJS (общая библиотека монорепозитория): рефакторинг состояния разделов, сохранение состояния интерфейса между сессиями.
- Интеграция frontend с несколькими backend-сервисами через REST / HttpClient: единый слой данных для экранов, нормализация ответов, обработка ошибок и состояний загрузки (скелетоны, лоадеры).
- Разработка компонентов в Storybook, покрытие тестами, код-ревью, оптимизация производительности разделов.
- Переработка таблиц отчётности (вторая версия): состав и ширины колонок, фильтрация по предметам и периодам, сортировка, тултипы с описанием метрик, работа с большими выборками.
- Работа с датами и часовыми поясами в журнале успеваемости: согласование времени студента и московского времени.
- Реализация правил прохождения тестов и итоговых работ: доступность, блокировки, количество попыток, сроки, отображение ограничений в интерфейсе.
- Разработка интерфейсов кабинета студента: главная с прогрессом, блоки предметов и занятий, метрики по направлениям, домашние задания, новости, расписание, интерактивные сценарии.
- Разработка кабинета куратора: отчёты по успеваемости, детализация показателей, цветовая индикация рисков по студентам, посещаемость вебинаров.
- Локализация интерфейса (ru / en) для нескольких продуктов платформы.
- Участие в проектировании клиентских решений совместно с backend и аналитиками, устранение дефектов в production.
Задачи — backend:
- Разработка backend-логики на PHP (Symfony): REST-контроллеры, бизнес-логика, интеграция с PostgreSQL через Doctrine.
- Разработка административной панели для управления образовательными сущностями: предметами, семестрами, студентами и учебными группами.
- Реализация интеграций с внешними сервисами и backend-системами отдельных учебных предметов.
- Проектирование и реализация единой модели данных, объединяющей информацию из различных систем для корректного отображения данных студентам и кураторам.
- Обработка и нормализация данных из разных источников для формирования единого представления прогресса обучения в интерфейсе платформы.
Результат:
- Успеваемость доступна куратору в едином интерфейсе вместо выгрузок из нескольких систем, что сокращает время принятия решений по студентам.
- Цветовая индикация рисков в отчётах позволяет куратору находить отстающих студентов без ручного анализа таблиц.
- Данные из разных сервисов сведены в единую модель прогресса: студент и куратор работают с согласованной информацией.
- Правила доступа к тестам и итоговым работам вынесены в интерфейс и не требуют участия разработки.
Full Stack Developer
05.2024 - 12.2024 |Дом-ИТ
TypeScript/Angular, Go (Pion, RTSP, WebRTC)
Платформа умной домофонии: личный кабинет, веб-плеер камер и видеостена для B2B-клиентов. Параллельно — Go-сервис проксирования RTSP → WebRTC для браузерного просмотра.
Стек: Angular 14–16, TypeScript, RxJS, NgRx, PrimeNG, Angular Material / CDK, HLS.js, WebRTC / MSE, WebSocket (STOMP), Canvas, ngx-translate, PWA (Service Worker), ESLint, Karma / Jasmine; Go, Gin, Pion WebRTC, Gorilla WebSocket, JWT, GitLab CI.
Задачи:
- Разработка и развитие Go-сервиса RTSP → WebRTC (Pion): проксирование потоков камер в браузер для видеостены и веб-плеера, HTTP/WebSocket-сигналинг, REST API (`/api/v1/stream`), JWT-авторизация.
- Поддержка видеокодеков H.264/H.265 и AAC в WebRTC muxer: обработка RTP-пакетов, определение keyframe (IRAP) для H.265, передача AAC через RTCDataChannel на каждую камеру.
- Настройка ICE-кандидатов и конфигурации Pion WebRTC для работы за NAT; рефакторинг сервиса в модульную структуру `internal/` (stream, signal, http, config).
- Управление жизненным циклом RTSP-потоков: on-demand подключение, переподключение при обрыве, уведомления об ошибках (Mattermost).
- Разработка личного кабинета: интерфейсы управления, состояния, адаптивная вёрстка, интеграция с REST API.
- Развитие веб-плеера камер в браузере (WebRTC, HLS.js, MSE) с одновременным отображением нескольких потоков в одной вкладке.
- Разработка новой услуги «видеостена»: сетка плиток с трансляциями нескольких объектов на одной странице в реальном времени, потоки камер проксируются RTSP → WebRTC.
- Рефакторинг плеера: отказ от устаревшей сложноподдерживаемой библиотеки, вынос логики плеера из разрозненных участков кода в отдельную внутреннюю библиотеку — компоненты, типизированный стор на RxJS и реестр сторов на каждый экземпляр плеера для изоляции состояния при мультистриминге.
- Настройка Dependency Injection под мультистриминг: кастомные инжекторы (Injector.create, InjectionToken) для сигналинга и транспорта сообщений — WebSocket или HTTP — со своим набором зависимостей на каждый плеер.
- Реализация состояний плеера и фоллбека: при ошибках WebRTC — автоматическое переключение на альтернативный режим real-time воспроизведения с большей задержкой.
- Разработка таймлайна архива на Canvas: отрисовка периодов записи, событий и пропусков, слайдер и навигация по времени, тултипы.
- Реализация элементов управления плеером: режим «картинка в картинке» (Picture-in-Picture), полноэкранный режим, громкость, индикаторы качества потока и задержки.
- Кросс-браузерная отладка воспроизведения (Safari, Firefox), настройка буферизации и информативной обработки ошибок при нестабильной сети.
- Оптимизация клиентской части при большом числе одновременных потоков: контроль подписок и жизненного цикла трансляций, освобождение ресурсов плеера и соединений.
- Работа с реестрами оборудования и абонентов: переиспользуемые таблицы на PrimeNG с серверной пагинацией и поиском, скелетон-загрузка, компоненты форм на Angular Material.
- Поддержка локализации интерфейса (ngx-translate, Crowdin) для нескольких языковых версий продукта.
Результат:
- Развёрнут Go-сервис RTSP → WebRTC: браузерный просмотр камер без плагинов и нативных приложений, в том числе на видеостене с несколькими потоками одновременно.
- Запущена услуга видеостены для B2B-клиентов: наблюдение за несколькими объектами ведётся с одного экрана — собственником, охраной или консьержем, без выделенного оборудования.
- Услуга стала конкурентным преимуществом: на момент запуска аналогичного решения у конкурентов на рынке не было, что усилило продажи новых подключений.
- Просмотр камер организован непосредственно в браузере, без установки отдельного приложения и плагинов.
- Логика плеера консолидирована в переиспользуемую библиотеку с изолированным состоянием: снижена стоимость поддержки и упрощено подключение плеера к новым разделам продукта.
- Повышена отказоустойчивость просмотра: при проблемах с WebRTC отрабатывает фоллбек на альтернативный режим воспроизведения.
Full Stack Developer
01.2019 - 05.2024 |Skyeng
TypeScript/Angular, PHP/Symfony
Платформа видеосвязи и внутренний инструмент диагностики.
Стек: TypeScript, Angular 14–17, Angular CLI, RxJS, Jest, Nx (монорепозиторий), Storybook, HTML/CSS; PHP, Symfony, PostgreSQL; Janus Gateway, WebRTC, FFmpeg; RabbitMQ, Docker. Постепенные обновления Angular: 14 → 15 → 16 → 17
Платформа видеосвязи
Задачи — фронтенд:
- Развитие многомодульного SPA: компоненты, сервисы, маршрутизация, состояние на RxJS, вёрстка HTML/CSS. Dependency Injection: кастомные инжекторы для сервисов звонка и медиа.
- Интеграция клиента с backend через REST / HttpClient, код-ревью, ведение технической документации.
- Обеспечение производительности нагруженных экранов: Change Detection OnPush, анализ избыточных перерисовок в DevTools.
- Реализация пользовательских сценариев звонка: выбор камеры и микрофона, смена устройств в процессе звонка, режимы отображения окна с видео, обработка ошибок доступа к устройствам.
- Реализация адаптации качества при ухудшении сети и альтернативного сценария подключения (P2P).
- Разработка виртуальных фонов и AR-эффектов на MediaPipe.
- Развитие видеоклиента как переиспользуемой библиотеки в Nx-монорепозитории: общие компоненты и логика видеосвязи для нескольких продуктов компании.
- Написание модульных тестов на Jest: поведения на метриках соединения (RTT, потери пакетов, битрейт, ограничение качества), стратегия переподключения со сменой медиасервера, обработка ошибок плагина и таймаутов.
- Тестирование асинхронных RxJS-сценариев через fakeAsync / tick, изоляция зависимостей через jest.mock, общие фабрики тестовых данных WebRTC-статистики для переиспользования в тестах.
Задачи — backend и инфраструктура:
- Поддержка и развитие медиасервисов на базе Janus Gateway: конфигурация, оптимизация параметров WebRTC-соединений, каскадирование для масштабирования.
- Мониторинг стабильности медиасервисов и настройка алертинга при превышении пороговых значений нагрузки.
- Разработка и модификация плагинов Janus для интеграции с backend-логикой платформы.
- Разработка backend-части на PHP (Symfony): REST-контроллеры, бизнес-логика, интеграция с базой данных.
- Реализация асинхронных процессов обработки событий через RabbitMQ (продюсеры и консьюмеры).
- Разработка сервиса обработки и конвертации медиаданных: интеграция с FFmpeg для формирования записей видеозвонков.
- Динамическое формирование FFmpeg-команд для склейки аудио- и видеофрагментов и подготовки файлов для фронтенд-плеера.
- Построение очередей задач конвертации на RabbitMQ для распределения нагрузки на сервис обработки.
- Контейнеризация сервисов с использованием Docker, развёртывание и управление инфраструктурой через docker-compose.
- Диагностика и устранение проблем видеосвязи с использованием Chrome DevTools и chrome://webrtc-internals, анализ SDP и состояния медиапотоков.
Результат:
- Снижено количество обращений по качеству связи — основной причины возвратов средств за занятия.
- Повышено удобство видеосвязи: гибкая раскладка видео, виртуальные фоны и эффекты, управление устройствами без выхода из звонка.
- Сокращено время устранения инцидентов: причина сбоя определяется по данным звонка, а не подбором решений.
- Логика переподключения и обработки метрик покрыта автотестами: регрессии в сценариях восстановления связи выявляются до релиза.
Troubleshooter — внутренний инструмент диагностики видеосвязи для технической поддержки
Задачи:
- Проектирование и разработка SPA на Angular: экраны разбора инцидентов, хронология событий звонка, фильтрация по конференции, пользователю и периоду.
- Объединение клиентских логов и серверных логов медиасервера Janus Gateway в одну картину звонка: события сопоставляются по времени и участникам.
- Реализация сложной агрегации данных на клиенте: сведение разнородных событий из нескольких источников в единый набор метрик и состояний по каждому участнику.
- Разработка сложных таблиц: многоуровневая фильтрация, сортировка, группировка, выделение проблемных участков звонка.
- Визуализация метрик соединения на Chart.js: RTT, битрейт, потери пакетов, jitter — графики по каждому участнику в динамике.
- Приведение сырых логов из Kibana к человекочитаемому виду: действия в конференции, ошибки, состояния видеосвязи.
- Разработка раздела AI-разбора: анализ совокупности клиентских и серверных логов с формированием вывода о причине проблемы.
Результат:
- Снижена рутинная нагрузка на техническую поддержку и на команду разработки: источник неполадки — клиент, сеть или медиасервер — определяется в интерфейсе, без анализа сырых логов.
- Диагностика проблем на стороне пользователя выполняется силами поддержки, на разработку передаются только подтверждённые дефекты.
- Метрики качества связи стали наглядными: по графикам RTT и битрейта видно момент и характер деградации соединения.
Білім
Информационные системы и программирование
2015 - 2019
Тюменский колледж производственных и социальных технологий
тілдері
РусскийЕркінАнглийскийНегізгі
