Ilya Sitnikov
Портфолио
AssettoCis
Ведущий разработчик AssettoCis, онлайн-платформы для автосимулятора Assetto Corsa. Спроектировал, написал и сопровождаю в продакшене всю систему: игровые серверы, лаунчер, бэкенд, CDN, платежи и инфраструктуру. Бэкенд и архитектура - Control plane на TypeScript (Node.js, Fastify, Prisma, PostgreSQL, Redis, NATS JetStream): API для лаунчера и админки, оркестрация игровых серверов, контент-сервис. - WebSocket-шлюз к агентам на физических серверах. Команды проходят через конечный автомат с подтверждениями и таймаутами, доставка at-least-once. - Агент ноды запускает и мониторит игровые серверы, переживает собственный перезапуск без остановки игр и проверяет контент по SHA-256. Игровые серверы (C# / .NET) - Плагины для AssettoServer: AI-трафик (смена полос, спавн, видимость), система очков с сезонными лидербордами, визуальный тюнинг машин, номерные знаки, доступ по подписке, телепорты. - Перевёл парк игровых серверов на новую версию ядра с миграцией конфигураций. - Клиентские скрипты на Lua (Custom Shaders Patch): HUD, тюнинг внешнего вида (покраска, диски, посадка, обвесы), синхронизация между игроками. Лаунчер и веб - Десктопный лаунчер на .NET/WPF с веб-интерфейсом: вход через Steam, загрузка контента через CDN и P2P, автообновление с установкой системных компонентов. - Админ-панель для операторов (React 19, TanStack Router/Query, Tailwind): серверы, игроки, баны, контент. Лендинг на React. Инфраструктура - Собственный CDN: origin на nginx и edge-узлы. Оркестратор сам поднимает и выводит VPS в зависимости от трафика. - Docker, nginx с HTTP/3 (QUIC), Linux, деплой на боевые хосты, мониторинг и метрики в SigNoz (OpenTelemetry). - Discord-боты на Python: модерация, тикеты поддержки, медиа.
