ITMO.STUDY [2025–2026]
- Открытая база знаний и выполнений лабораторных работ за время обучения в ИТМО.
- Агрегированная таблица лабораторных работ по физике.
- Шаблон для оформления отчетов по ГОСТ 7.32 в системе LaTeX (доступен на Overleaf).
Платформа отзывов на преподавателей, которой воспользовались тысячи студентов, содержащая более 2000 уникальных отзывов.
Деплой на VPS через Ansible: роли для bootstrap, Nginx с Certbot и backend в Docker Compose. Раздельные inventory для dev и prod, секреты вне git. CI/CD в GitHub Actions: push в main собирает образ в GHCR и деплоит по SSH без простоя остальных сервисов. Мониторинг на Prometheus и Grafana.
SPA на Vanilla JS без фреймворков: своя hash-маршрутизация, ETag-кэш и оффлайн-режим при недоступном бэкенде. Адаптивная верстка. Браузерное расширение на Manifest V3 подсвечивает ФИО преподавателей и отображает отзывы на портале вуза. Сборка через esbuild с watch-режимом.
REST API на FastAPI и PostgreSQL. Нечёткий поиск преподавателей через rapidfuzz, парсинг открытых источников, LLM-выжимка отзывов, in-memory кэш и ETag. Управление таблицами и ручной запуск парсеров через SQLAdmin.
Сайт благотворительного фонда помощи животным «Мяу-Центр».
Деплой сайта благотворительного фонда через Ansible: Docker, Nginx с HTTPS, фронтенд из ветки dist, бэкенд через Docker Compose с образом из ghcr.io. CI/CD в GitHub Actions: сборка фронтенда, сборка образов и деплой на сервер.
Клиентская часть на React по дизайн-макету: главная с двумя каруселями котов, каталог с выбором и поиском, статическая страница о помощи центру, страница отдельного кота.
Два сервиса, связанные Kafka в режиме KRaft. Топики описаны декларативно и применяются сервисом kafka-admin через AdminClient API. Сценарии: сброс offset для пересчёта истории, retention по сегментам. Мониторинг и алерты через Kafka Exporter, Prometheus и Grafana.
Стенд наблюдаемости для одного сервиса: метрики (Prometheus, Grafana), логи (Loki, Fluent Bit), трейсы (Jaeger, OTel Collector), алерты (Alertmanager, webhook). Источники, дашборды и правила полностью описаны в конфигах. RED-дашборд; переход от ошибки к трейсу по trace_id.
Контейнеризация приложения на FastAPI с PostgreSQL и Redis. Multi-stage Dockerfile (образ меньше на 17 МБ), healthcheck без curl, именованные volumes, bind mount конфига, пользовательские сети, Compose с depends_on по healthcheck. Redis-кэш общий для трёх реплик сервиса.
Приложения на чистом JavaScript без фреймворков развёрнутые на GitHub Pages.
«Магазинчик» — каталог товаров, корзина с подсчётом суммы и сохранением между визитами. Корзина построена на pub-sub: карточки товаров и блок корзины подписываются на изменения и обновляются сами.
«Список задач» — добавление, редактирование, удаление, поиск, фильтрация и сортировка. Порядок задач меняется перетаскиванием: мышью на desktop и касанием на мобильных.
Микросервисное приложение в духе «Tinder для программистов»: можно свайпать людей, проекты и специализации и смотреть подходящие варианты.
Пять сервисов, которые обмениваются событиями через очереди Redis Streams: свайпы людей, проектов и специализаций, персональные колоды, почтовые уведомления (auth, profile, swipe, deck, notification). Отдельная БД у каждого, колоды собираются в фоне и кэшируются.
React-клиент: контекст авторизации и автоматическое обновление JWT-токенов. Работает с сервисами через REST API.
Инфраструктурный проект по миграции сервиса измерения скорости с systemd-юнитов на Docker Compose. depends_on и healthcheck, Nginx-балансировка на три backend-инстанса, security-заголовки, таймауты.
Развертывание и администрирование LibreSpeed на Linux. Let's Encrypt и собственный центр сертификатов (Root CA, CSR), HTTPS-сайт на домене. Nginx балансировщик на три backend-инстанса через systemd-шаблон, security-заголовки, таймауты против slowloris. Ротация логов через logrotate и выгрузка через bash-скрипт в S3. Телеметрия измерений пишется в PostgreSQL.
Развернул Containerlab и собрал образ RouterOS из vrnetlab. Построил сеть из роутера, трёх коммутаторов и двух PC. Разделил трафик на VLAN 10 и 20 через trunk и access, на каждом VLAN поднял DHCP.
Соединил три офиса треугольником. Настроил адресацию между роутерами, статическую маршрутизацию и DHCP в каждом офисе.
Добавил OSPF и MPLS LDP в магистраль и поднял VPLS между граничными роутерами. Проверял соседства и передачу кадров между клиентами.
Поверх MPLS построил iBGP с двумя route reflector и VPNv4. Развернул L3VPN на VRF для трёх изолированных клиентов и VPLS с BGP-сигнализацией.
Повторил схему на реальном оборудовании (в команде). Столкнулся с Wi-Fi-подключением, которое ломало MPLS, и firewall, блокировавшим ping.
Cервис сквозной аутентификации и авторизации (SSO) на Go и Next.js.
Сервис авторизации: gRPC-сервер на Go, REST gateway и SMTP-модуль. Контракты на Protobuf с автогенерацией кода, пользователи в PostgreSQL.
Фронтенд на Next.js и TypeScript: формы авторизации, взаимодействие с бэкендом через gRPC-web и REST gateway.
Разбил три сети на подсети по VLSM и настроил статическую маршрутизацию между маршрутизаторами и провайдером. Проверял доступность через ping и traceroute.
Разобрался в разнице концентратора и коммутатора. Разделил сеть на VLAN в режимах access и trunk, добавил voice VLAN. Настроил межвлановую маршрутизацию на L3-коммутаторе и DHCP relay через ip helper-address.
Собрал кольцо из коммутаторов и замерил сходимость: STP восстанавливает связь примерно за 30 секунд, RSTP — сразу после отключения порта. Поднял статический EtherChannel на четырёх линках и LACP в режимах active и passive. При отключении одного линка связь сохранилась, но на статическом агрегате была заметная задержка.
Настроил PAT по стандартному ACL для выхода в интернет и статический NAT для веб-сервера внутри сети.
Разобрал трафик в Wireshark: ICMP-запросы, ARP-рассылки и TCP-рукопожатие (SYN, SYN-ACK, ACK) при подключении к FTP.
Настройка дисков и сетевого доступа на Linux-сервере: разделы и resize ext4, LVM, зеркалирование дисков (mdstat), общий доступ через NFS с ограничением по сети и настройка fstab. Безопасность: сетевые интерфейсы, правила iptables с NAT и DNAT, вход по SSH-ключам с passphrase, правки sshd_config и права доступа через ACL.
Историческая новелла на движке Unity и языке диалогов Ink. Настроен CI/CD пайплайн для автоматической сборки WebGL-версии в браузере.
Интерактивный мобильный помощник, обучающий правилам безопасного поведения на объектах РЖД (Unity, C#). Веб-версия запускается исключительно на мобильных устройствах.
Печатная плата и прошивка на C++ для микроконтроллера ATmega328P/ESP8266 + нативное Android-приложение (Kotlin) для дистанционного мониторинга датчиков и управления периферией.