RiverLogic Inc. — Senior Developer / AI Architect · Март 2014 – по настоящее время
RiverLogic разрабатывает ПО для Value Chain Optimization (VCO) — крупномасштабные модели линейного программирования, которые помогают корпоративным клиентам планировать производство, логистику и цепочки поставок. Уже больше десяти лет я вместе с командой веду архитектурное развитие этой платформы: от двухзвенного on-premise монолита — к событийно-ориентированной платформе микросервисов на Azure, а в последнее время — к инструментам корпоративного ИИ поверх неё.
Платформа начиналась как 2-звенная система с бизнес-логикой в хранимых процедурах MSSQL T-SQL — сложно тестировать, рискованно менять. Я руководил переносом слоя бизнес-логики (BLL) на сервер приложений .NET C#, перестроив систему в полноценную 3-звенную архитектуру без простоя при переключении. Помимо снижения обращений в саппорт на 30%, это заметно повысило безопасность и стабильность системы и добавило совместимость с PostgreSQL наряду с существующей поддержкой MSSQL — открыв путь к cloud-native развёртыванию.
Когда бизнес-логика переехала на C#, следующим шагом стала переносимость в облако: миграция кодовой базы с .NET Framework на .NET 8 для полной кроссплатформенности (Linux) и повсеместное внедрение async/await. Это снизило потребление ресурсов примерно на 15% и убрало последнюю зависимость сервера приложений от Windows.
On-premise монолит был декомпозирован на высоконагруженные микросервисы на Azure Kubernetes Service и Container Apps. Сервисы взаимодействуют через REST для синхронных вызовов и через Azure Event Grid / Queues — для асинхронного месседжинга, а Saga, CQRS и паттерн Outbox поддерживают консистентность данных между сервисами, которые больше не разделяют одну транзакцию БД. Реализация нативна для Azure, но сам паттерн — событийно-ориентированный, с асинхронным месседжингом и eventual consistency — напрямую переносится на эквивалентные serverless-примитивы других облаков (включая AWS Lambda, EventBridge, SQS/SNS).
Текущая архитектура платформы, сверху вниз — и то, что она заменила, внизу.
Позже эта архитектура стала основой для ИИ-ассистента RiverLogic. Вместе с командой я реализовал retrieval-augmented generation (RAG) с векторным поиском по эмбеддингам и предоставил основной функционал VCO этому ассистенту через OpenAPI-совместимый REST HATEOAS API, обёрнутый в плагин Microsoft Semantic Kernel — это позволяет ассистенту вызывать реальные возможности платформы, а не просто рассказывать о них. В части моделирования вместе с командой провёл R&D по дообучению LLM через LoRA (Python, PyTorch, Transformers) для адаптации open-source моделей под специализированные корпоративные задачи, а также отдельно спроектировал прототип графовой нейросети для предварительной оценки разрешимости LP-задач — подробнее в описании GCNN-прототипа.
Архитектурные решения работают только тогда, когда команда может безопасно на них строить. Я практиковал DDD, SOLID и паттерны GoF, выстроил полные наборы юнит- и интеграционных тестов (xUnit, NSubstitute) по TDD, чтобы релизы оставались без простоя по мере роста распределённости системы. Также внедрил в команде agentic AI-воркфлоу на основе Claude Code, сократив рутинное написание кода и повысив общую скорость разработки, и веду пайплайны сборки/деплоя команды через Azure DevOps.
Основной production-код здесь защищён строгими корпоративными NDA и является собственностью компании, поэтому не выложен публично на GitHub — готов подробно разобрать архитектуру или конкретные решения по запросу.
Также по запросу могу предоставить письменную рекомендацию от RiverLogic.