OneTwoZzzPlus (Ivan Sakulin)

Обо мне

Меня зовут Иван Сакулин. Учусь на направлении «Программирование в инфокоммуникационных системах» в Университете ИТМО. Интересуюсь Backend, DevOps и сетевыми технологиями. В свободное время люблю гулять по лесу, играть на гитаре и собирать небольшие электронные штучки.

Активные проекты

ITMO.STUDY [2025–2026]

Study Labs
  • Открытая база знаний и выполнений лабораторных работ за время обучения в ИТМО.
  • Агрегированная таблица лабораторных работ по физике.
  • Шаблон для оформления отчетов по ГОСТ 7.32 в системе LaTeX (доступен на Overleaf).

Reviews [2025–2026]

FastAPI PostgreSQL Vanilla JS Ansible Docker Compose GitHub Actions

Платформа отзывов на преподавателей, которой воспользовались тысячи студентов, содержащая более 2000 уникальных отзывов.

🛠️ DevOps 🎨 Frontend ⚡ Backend

Деплой на 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.

Meow Center [2026]

React Nginx Ansible Docker GitHub Actions

Сайт благотворительного фонда помощи животным «Мяу-Центр».

🛠️ DevOps 🎨 Frontend

Деплой сайта благотворительного фонда через Ansible: Docker, Nginx с HTTPS, фронтенд из ветки dist, бэкенд через Docker Compose с образом из ghcr.io. CI/CD в GitHub Actions: сборка фронтенда, сборка образов и деплой на сервер.

Клиентская часть на React по дизайн-макету: главная с двумя каруселями котов, каталог с выбором и поиском, статическая страница о помощи центру, страница отдельного кота.

Pet-проекты

Event-Driven сервис на Kafka [2026]

Kafka KRaft Kafka UI Prometheus Grafana

Два сервиса, связанные Kafka в режиме KRaft. Топики описаны декларативно и применяются сервисом kafka-admin через AdminClient API. Сценарии: сброс offset для пересчёта истории, retention по сегментам. Мониторинг и алерты через Kafka Exporter, Prometheus и Grafana.

Observability Stack [2026]

Prometheus Grafana Loki Fluent Bit Jaeger Alertmanager

Стенд наблюдаемости для одного сервиса: метрики (Prometheus, Grafana), логи (Loki, Fluent Bit), трейсы (Jaeger, OTel Collector), алерты (Alertmanager, webhook). Источники, дашборды и правила полностью описаны в конфигах. RED-дашборд; переход от ошибки к трейсу по trace_id.

Assist-Py в Docker Compose [2026]

Docker Docker Compose FastAPI PostgreSQL Redis

Контейнеризация приложения на FastAPI с PostgreSQL и Redis. Multi-stage Dockerfile (образ меньше на 17 МБ), healthcheck без curl, именованные volumes, bind mount конфига, пользовательские сети, Compose с depends_on по healthcheck. Redis-кэш общий для трёх реплик сервиса.

Web-разработка [2026]

JavaScript HTML CSS localStorage

Приложения на чистом JavaScript без фреймворков развёрнутые на GitHub Pages.

«Магазинчик» — каталог товаров, корзина с подсчётом суммы и сохранением между визитами. Корзина построена на pub-sub: карточки товаров и блок корзины подписываются на изменения и обновляются сами.

«Список задач» — добавление, редактирование, удаление, поиск, фильтрация и сортировка. Порядок задач меняется перетаскиванием: мышью на desktop и касанием на мобильных.

Swiper [2026]

React FastAPI Redis Streams PostgreSQL Docker Compose

Микросервисное приложение в духе «Tinder для программистов»: можно свайпать людей, проекты и специализации и смотреть подходящие варианты.

⚡ Backend 🎨 Frontend

Пять сервисов, которые обмениваются событиями через очереди Redis Streams: свайпы людей, проектов и специализаций, персональные колоды, почтовые уведомления (auth, profile, swipe, deck, notification). Отдельная БД у каждого, колоды собираются в фоне и кэшируются.

React-клиент: контекст авторизации и автоматическое обновление JWT-токенов. Работает с сервисами через REST API.

LibreSpeed в Docker Compose [2026]

Nginx Docker Compose PostgreSQL

Инфраструктурный проект по миграции сервиса измерения скорости с systemd-юнитов на Docker Compose. depends_on и healthcheck, Nginx-балансировка на три backend-инстанса, security-заголовки, таймауты.

LibreSpeed на Linux [2026]

Linux OpenSSL Nginx Bash S3 logrotate

Развертывание и администрирование LibreSpeed на Linux. Let's Encrypt и собственный центр сертификатов (Root CA, CSR), HTTPS-сайт на домене. Nginx балансировщик на три backend-инстанса через systemd-шаблон, security-заголовки, таймауты против slowloris. Ротация логов через logrotate и выгрузка через bash-скрипт в S3. Телеметрия измерений пишется в PostgreSQL.

Маршрутизация RouterOS в Containerlab [2026]

MikroTik RouterOS Containerlab VLAN DHCP OSPF MPLS LDP iBGP L3VPN VPLS

Развернул 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.

Go SSO Service [2025]

Go gRPC Next.js TypeScript PostgreSQL

Cервис сквозной аутентификации и авторизации (SSO) на Go и Next.js.

⚡ Backend 🎨 Frontend

Сервис авторизации: gRPC-сервер на Go, REST gateway и SMTP-модуль. Контракты на Protobuf с автогенерацией кода, пользователи в PostgreSQL.

Фронтенд на Next.js и TypeScript: формы авторизации, взаимодействие с бэкендом через gRPC-web и REST gateway.

Компьютерные сети в Cisco Packet Tracer и Wireshark [2025]

Cisco Packet Tracer Wireshark VLSM VLAN DHCP relay STP / RSTP EtherChannel LACP NAT ACL

Разбил три сети на подсети по 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: хранение и безопасность [2024]

Linux LVM NFS mdstat iptables SSH ACL

Настройка дисков и сетевого доступа на Linux-сервере: разделы и resize ext4, LVM, зеркалирование дисков (mdstat), общий доступ через NFS с ограничением по сети и настройка fstab. Безопасность: сетевые интерфейсы, правила iptables с NAT и DNAT, вход по SSH-ключам с passphrase, правки sshd_config и права доступа через ACL.

Завершенные проекты

Novella (February Revolution) [2025]

Unity C# Ink Script WebGL

Историческая новелла на движке Unity и языке диалогов Ink. Настроен CI/CD пайплайн для автоматической сборки WebGL-версии в браузере.

Chicken Coop Controller [2023]

Arduino ATmega328P / ESP8266 C++ Android Studio Kotlin

Печатная плата и прошивка на C++ для микроконтроллера ATmega328P/ESP8266 + нативное Android-приложение (Kotlin) для дистанционного мониторинга датчиков и управления периферией.