Senior .NET Backend Developer — FoodTech
О проекте
Мы развиваем FoodTech-платформу для ресторанного бизнеса и заведений общественного питания.
Продукт объединяет клиентские и корпоративные приложения, back-office, QR-заказы и сервисы быстрого обслуживания. Платформа охватывает управление меню и товарами, оформление и обработку заказов, оплату, доставку, акции, промокоды, бонусные программы, push-уведомления и интеграции с ресторанными и учётными системами.
Backend построен на микросервисной архитектуре с отдельными BFF-приложениями для разных клиентских интерфейсов. Для взаимодействия между сервисами используются RabbitMQ и MassTransit.
Ищем Senior .NET Backend Developer, который будет развивать существующую архитектуру, реализовывать новые бизнес-модули и участвовать в техническом развитии платформы.
Технологический стек
C#;
.NET 10;
ASP.NET Core Web API;
Entity Framework Core 10;
Microsoft SQL Server;
RabbitMQ;
MassTransit;
Redis;
REST API и webhooks;
JWT Bearer Authentication;
Swagger / OpenAPI;
API Versioning;
AutoMapper;
Serilog и Seq;
Hangfire;
Quartz;
NUnit;
NSubstitute;
GitHub Actions;
Windows Server и IIS.
Основные внешние интеграции:
iiko;
R-Keeper;
МойСклад;
Яндекс Доставка;
Т-Банк;
CloudPayments;
DaData;
Firebase Cloud Messaging.
Чем предстоит заниматься
Разрабатывать и развивать backend-сервисы платформы на C# и .NET 10.
Работать с микросервисами и BFF-приложениями для клиентского приложения, бизнес-приложения, back-office, платёжных и QR-сценариев.
Реализовывать бизнес-логику заказов, каталога и меню, модификаторов, промокодов, акций, бонусов, доставки, оплаты и уведомлений.
Проектировать и поддерживать REST API, внутренние контракты сервисов и webhook-интеграции.
Разрабатывать асинхронное взаимодействие между сервисами через RabbitMQ и MassTransit.
Создавать и поддерживать consumers, команды, запросы и ответы для межсервисного взаимодействия.
Проектировать модели данных и работать с Microsoft SQL Server через Entity Framework Core.
Создавать и применять миграции, оптимизировать LINQ- и SQL-запросы, индексы и работу с данными.
Развивать распределённое кеширование и ограничение частоты запросов с использованием Redis.
Поддерживать интеграции с iiko, R-Keeper, МоимСкладом, платёжными системами и сервисами доставки.
Разрабатывать фоновые процессы и периодические задачи с использованием Hangfire, Quartz и Hosted Services.
Поддерживать авторизацию на основе JWT, middleware, валидацию webhook-запросов и другие механизмы безопасности.
Развивать логирование, диагностику и мониторинг работы сервисов с использованием Serilog и Seq.
Писать unit-тесты на NUnit с использованием NSubstitute.
Участвовать в архитектурных обсуждениях, декомпозиции задач, оценке сроков, code review и техническом развитии проекта.
Поддерживать и улучшать CI/CD-пайплайны на GitHub Actions.
Участвовать в подготовке релизов, применении миграций и развёртывании приложений на Windows Server и IIS.
Наши ожидания
От 5 лет коммерческого опыта backend-разработки на C# и .NET.
Уверенное владение C#, современным .NET и ASP.NET Core.
Опыт разработки и поддержки микросервисных систем.
Понимание BFF-подхода и принципов разделения backend-сервисов по бизнес-доменам.
Уверенная работа с Entity Framework Core и Microsoft SQL Server.
Опыт проектирования моделей данных, написания миграций и оптимизации запросов.
Практический опыт работы с RabbitMQ и MassTransit либо аналогичными брокерами и библиотеками обмена сообщениями.
Понимание особенностей асинхронного и распределённого взаимодействия между сервисами.
Опыт разработки REST API и интеграции с внешними системами.
Опыт работы с Redis и распределённым кешированием.
Понимание механизмов аутентификации и авторизации, включая JWT.
Опыт написания unit-тестов с использованием NUnit, xUnit или аналогичных инструментов.
Знание принципов SOLID, Dependency Injection и многослойной архитектуры.
Понимание DDD-подхода и умение выделять бизнес-домены и границы ответственности сервисов.
Умение декомпозировать задачи, оценивать сроки и самостоятельно доводить задачи до результата.
Навыки командной работы, проведения code review и аргументированного обсуждения технических решений.
Будет плюсом
Опыт разработки FoodTech-, RetailTech- или e-commerce-систем.
Опыт интеграции с ресторанными POS-системами: iiko или R-Keeper.
Опыт работы с МоимСкладом или другими ERP- и складскими системами.
Опыт интеграции с Т-Банком, CloudPayments или другими платёжными провайдерами.
Опыт работы с Яндекс Доставкой или другими логистическими сервисами.
Опыт разработки webhook-интеграций и проверки подлинности входящих запросов.
Практический опыт использования Hangfire, Quartz и фоновых сервисов.
Опыт работы с Firebase Cloud Messaging.
Опыт настройки структурированного логирования через Serilog и Seq.
Знание API Versioning, Swagger / OpenAPI и AutoMapper.
Опыт настройки GitHub Actions и работы с self-hosted runners.
Опыт развёртывания .NET-приложений на Windows Server и IIS.
Опыт работы с географическими данными и NetTopologySuite.
Опыт проектирования отказоустойчивых интеграций и обработки ошибок внешних сервисов.
Что предлагаем
Работу над технологически сложным FoodTech-продуктом с большим количеством бизнес-модулей и внешних интеграций.
Возможность влиять на архитектуру и техническое развитие платформы.
Задачи, связанные с заказами, оплатой, доставкой, ресторанной автоматизацией и высоконагруженными пользовательскими сценариями.
Минимум бюрократии и прямое участие в принятии инженерных решений.
Современный стек на базе .NET 10.
Удалённую работу без привязки к офису.
Профессиональную команду и открытый технический диалог.
Прозрачную систему бонусов и премий.