Требуется fullstack разработчик для поддержки и развития крупной MLM-системы производственного кооператива. Система включает функционал интернет-магазина, складского учета, маркетинговой структуры и интеграции с внешними сервисами. Проект находится в активной эксплуатации с реальной базой пользователей.
Обязательные требования
Backend разработка:
- Опыт коммерческой разработки на C# / .NET 5.0 и выше от 2 лет
- Глубокое знание ASP.NET Core Web API
- Обязательный опыт работы с СУБД Firebird (2.5 или выше) - критичное требование
- Уверенное владение написанием и оптимизацией хранимых процедур
- Опыт работы с Dapper или другими micro-ORM
- Знание принципов JWT аутентификации (access и refresh токены)
- Понимание паттернов проектирования и Dependency Injection
- Опыт работы с AutoMapper
Frontend разработка:
- Опыт коммерческой разработки на Vue.js 3 (Composition API) от 1 года
- Знание Vite, Pinia, Vue Router 4
- Опыт работы с Axios для интеграции с REST API
- Владение Tailwind CSS или аналогичными CSS-фреймворками
- Опыт адаптивной верстки для мобильных устройств
Дополнительные технологии:
- Опыт интеграции с платежными системами (Сбербанк, Тинькофф, Альфа-Банк и др.)
- Работа с библиотеками генерации PDF (iText7 или аналоги)
- Опыт настройки и администрирования веб-серверов (IIS, Nginx)
- Понимание принципов работы с Git
- Базовые навыки администрирования Linux/Windows Server
Будет преимуществом
- Опыт работы с Telegram Bot API и Telegram Mini Apps
- Знание специфики MLM-систем и маркетинговых структур
- Опыт миграции legacy-проектов
- Опыт работы с системами логирования (NLog)
- Знание Docker и CI/CD процессов
- Опыт интеграции с 1С через REST API
- Работа с SMS-шлюзами и email-рассылками
Стек технологий проекта
Backend: .NET 5.0, ASP.NET Core Web API, Dapper, Firebird 2.5.9, JWT Bearer Authentication, AutoMapper 12.0, Swagger 5.6, iText7, Scriban 5.10, RestSharp 108.0, NLog 5.2, ClosedXML 0.102
Frontend: Vue 3.5, Vite 6.2, Pinia 3.0, Vue Router 4.5, Axios 1.9, Telegram Mini Apps SDK, Element Plus 2.9, Tailwind CSS 4.1, Moment.js 2.30
База данных: Firebird 2.5.9 с более чем 100 хранимыми процедурами, транзакционная модель, сложная иерархическая структура данных
Функциональные обязанности
Разработка нового функционала (60% времени):
- Проектирование и разработка REST API endpoints
- Написание и модификация хранимых процедур Firebird
- Интеграция с платежными системами и внешними сервисами
- Разработка бизнес-логики расчета бонусов, комиссий и маркетинговых показателей
- Генерация PDF документов (УПД, договоры, отчеты)
- Реализация функционала складского учета
- Разработка компонентов Vue 3 для фронтенда
- Адаптация интерфейсов под мобильные устройства
Поддержка и оптимизация (25% времени):
- Мониторинг и анализ логов приложения
- Исправление ошибок в production среде
- Оптимизация медленных запросов к базе данных
- Рефакторинг существующего кода
- Проведение code review
Администрирование (15% времени):
- Развертывание обновлений на production сервере
- Настройка и поддержка веб-серверов
- Резервное копирование базы данных
- Мониторинг производительности системы
- Настройка безопасности и SSL сертификатов
Особенности проекта
Архитектурные особенности:
- Вся бизнес-логика реализована в хранимых процедурах Firebird (более 100 процедур)
- Backend представляет собой тонкий слой над базой данных
- Сложная маркетинговая структура с бинарным деревом и расчетами по уровням
- Множественные роли пользователей (партнер, администратор, менеджер, склад, API-пользователь)
- Интеграция с 8 различными платежными системами
- Telegram Mini App как основной клиентский интерфейс
Технический долг:
- Устаревшая версия Firebird 2.5.9 (планируется миграция на 3.x/4.x)
- Отсутствие автоматизированных тестов
- Необходимость рефакторинга системы безопасности
- Частичное дублирование кода в репозитории
Инструменты: Git, система управления задачами (Jira/YouTrack), корпоративный мессенджер, документация в Confluence/Notion
Процесс адаптации
Первая неделя:
- Предоставление доступов к репозиторию, серверам и базе данных
- Настройка локального окружения для разработки
- Изучение архитектуры проекта и структуры базы данных
- Знакомство с ключевыми бизнес-процессами
- Выполнение первых простых задач по исправлению ошибок
Вторая неделя:
- Разработка небольшой функциональности от начала до конца
- Участие в code review
- Исправление нескольких задач средней сложности
- Первое развертывание на тестовую среду
К концу второй недели ожидается: Способность самостоятельно работать с задачами, понимание основной кодовой базы, готовность к работе с production средой.
Типичные задачи
- Добавление новых типов бонусных начислений в маркетинговую систему
- Интеграция с новыми платежными системами и обработка callback-уведомлений
- Оптимизация производительности хранимых процедур
- Разработка новых отчетов с экспортом в PDF и Excel
- Создание административных интерфейсов для управления системой
- Доработка функционала складского учета
- Реализация новых документов с электронным подписанием
Этапы отбора
Рассмотрение резюме с акцентом на опыт работы с Firebird
Практическое задание (1 час): написание хранимой процедуры, создание API endpoint, разработка Vue-компонента
Встреча с командой (30 минут)
Принятие решения и оффер
Что мы предлагаем
- Работу с production системой, имеющей реальную нагрузку и пользователей
- Возможность влиять на архитектурные решения
- Разнообразные задачи от поддержки до разработки нового функционала
- Самостоятельность в принятии технических решений
- Опыт работы со сложной бизнес-логикой MLM-систем
- Глубокое погружение в специфику Firebird
- Практический опыт интеграции с множеством внешних сервисов
Важные замечания
Проект не подойдет кандидатам без опыта работы с Firebird, так как это критичное требование. Необходима готовность работать с существующим кодом и legacy-решениями. Требуется способность быстро разбираться в чужом коде при минимальной документации. Ожидается проактивная позиция и самостоятельность в решении задач.
Для отклика просим предоставить в сопроводительном письме порассуждать на тему:
Представьте ситуацию: в системе есть таблица AGENTS с иерархической структурой (id, id_parent, parents - цепочка родителей). Нужно написать хранимую процедуру на Firebird, которая для заданного агента рекурсивно рассчитает суммарный объем продаж по всей его структуре вниз (включая всех потомков на любом уровне). При этом нужно учесть, что в таблице WEBSHOPS хранятся заказы с полями agent (FK) и price_total. Опишите логику процедуры и SQL-код (можно псевдокод), учитывая производительность при глубине структуры до 20 уровней и 50 000+ агентов: