Время говорить о том, как ИТ-бренд и внешние коммуникации работают на удержание сотрудников. Встречаемся 11 марта в Москве.
Время говорить о том, как ИТ-бренд и внешние коммуникации работают на удержание сотрудников. Встречаемся 11 марта в Москве.
Оптимист. Реалист с объективным взглядом на задачи. Учитываю приоритеты, изучаю требования. Люблю рефакторить, оптимизировать и добиваться высогоко быстродействия.


Выберите навык, чтобы посмотреть, какие тесты специалист уже прошел.
TeleGuard - анонимный мессенджер, стартап от швейцарской компании Swisscows.
Моя зона ответственности на проекте - Видеосвязь.
Клиентская часть мессенджера - приложения на Flatter(Dart) под управлением ios, Android, Windows, Ubuntu.
Я проанализировал требования заказчика и заинтересованных сторон.
Изучил техническую среду.
Определил ключевые критерии качества системы.
Спроектировал и описал архитектуру решения.
Развивал архитектуру по итогам обсуждений и по мере появления новых требований.
Краткое описание: микросервисная архитектура с горизонтальным масштабированием по мере необходимости.
Компоненты:
Я реализовал прототип системы. Тип связи One-to-One и One-to-Many. Процент удачных подключений - 80%.
Реализовал возможность переподключения клиентов.
Реализовал логирование состояний системы и подключения.
Провёл работы по выяснению причин отказов.
Организовал нагрузочное тестирования средствами Docker'а.
Разработал микросервис на Go управляющий конференциями.
Реализовал микширования аудио в один канал и распределение видео потоков.
Итоговая топология MCU для аудио и SFU для видео.
При реализации глубоко изучил возможности Go и библиотек: sync, sync/atomic, context, os/signal, syscall, net/http, errgroup и т.д.
Оптимизировал процесс подключения, достиг показателя удачных попыток - 99,0%.
Организовал Troubleshooting, а именно: настроил алерты и реализовал функционал предоставления логов по конференции для отдела поддержки.
По итогам тестов 1 нода сервиса способна держать до 15 активных клиентов в одной конференции и до 200 в конференциях по 2 клиента.
Реализовал отдельный сервис записи конференций в контейнер AVI в исходных кодеках (h256/Opus).
Полный стек системы получился следующий:
Клиент - Flatter (ios, Android, Windows, Ubuntu)
Сервер - Go (pion/webrtc, gin, zap, viper), Kafka, Redis, ELK, Nginx, GitLab, Docker, K8s
Перешёл на новый проект с повышением.
На проекте организовал работу с Git (разделение репозиториев по функционалу, создание ветками под региональные особенности и релизы, внедрил Pull Request).
Занимался Code Review и повышением квалификации команды.
Реорганизовал сборку пакета обновления, оптимизировал функционал обновления (добился ускорения от 10% до 80%).
Внедрил уведомление для пользователей о скором обновлении.
Организовал взаимодействие с внешними системами заказчиков.
Разработал общий функционал для ускорения процесса интеграции с внешними системами.
Оптимизировал функционал создания печатных форм, разработал прослойку для запроса данных, что позволило снять с разработчиков нагрузку по взаимодействию с БД.
Интегрировал в проект систему аудита действий пользователей.
Разработал функционал для отдела поддержки, позволяющий контролировать действия пользователей и решать конфликтные ситуации.
Переквалифицировался на Java и перешёл на другой проект.
Занимался функционалом печатных форм.
Создал систему источников данных для отчётов, это ускорило разработку печатных форм и почти полностью сняло с младших разработчиков задачу взаимодействия с базой данных.
Занимался обучением и Code Review.
Занимался поддержкой проекта.
Разработал новые формы и отчёты.
Оптимизировал проекта. Добился увеличения скорости отклика системы на 20%.
Разрабатывал мини-игры для рекламных акций.
Программировал симуляции работы мультиметра и осциллографа для дипломных работ по физике и кодированию сигналов
Тема дипломной работы: "Геометрические методы обработки результатов 3D-сканирования".
Работа реализована на Java SE (3D API).
Алгоритм уменьшает количество вершин и граней используя методы апроксимации из мира 3D игр.
Текстуры тоже сжимаются по средствам PNG преобразования.
Тема дипломной работы: "RSS-агригатор на платформе Flash с использованием веб-сервера TheKeplerProject и возможностью автоматической классификации новостей".
Сервер написан на Lua, он классифицирует новости и хранит в PostgreSQL.
Пользовательское представление выполнено на ActionScript.
В ходе курса, в составе команды, разработал архитектуру решения и описал её.