Описание вакансии
Вакансия: Системный архитектор (Ведущий разработчик / Senior).
Задачи: Системный архитектор совместно с руководителем группы и техническим лидером команды проекта принимает решения по дальнейшему пути развития существующей системы. Обеспечивает общее видение проекта и контроль соблюдение требований. Осуществляет контроль за качеством и логикой кода.
На экспертном уровне Вы владеете большинством технологий, используемых на проекте. Умеете проектировать (моделировать) решения, умеете обосновать выбранные решения команде, если необходимо — помогаете разработчикам.
Применяемые инструменты и технологии: C#, ORM, ASP.NET Core/Web API; PostgreSQL, ClickHouse; Node.js, Three.js, Web GPU/WebGL; Portainer, Docker; Prometheus, Grafana; gRPC, REST, SignalR.
Компания:
Акредитованная IT-компания. Специализация бизнеса – разработка программного обеспечения верхнего уровня. Разрабатываем, изготавливаем и внедряем программно-технические комплексы для ведущих горных предприятий России: системы аварийного оповещения, точного позиционирования горнорабочих и транспорта, мобильные решения, средства радиосвязи и видеонаблюдения.
Основной наш проект – современная система точного позиционирования горнорабочих и транспорта на .NET 6 (без legacy-кода), позволяющая строить сложные трёхмерные модели шахт и рудников и предоставлять конечный результат в полном 3D как на десктопе (SharpDX), так и в мобильном варианте (Three.js), с визуализацией стационарных и подвижных объектов.
Являемся частью (дочерним предприятием) производственного холдинга. Группа компаний находится более 19 лет на рынке систем автоматики и горно-подземной связи. Разрабатываемые систем применяются более чем на 80 рудниках и шахтах России, Казахстана и Белоруссии. Среди клиентов такие компании как НорНикель, Алроса, УГМК и другие.
Самое основное о проекте
Есть перечень задач и оценка трудоёмкости. Проведён технический аудит.
Основная задача – перейти на веб. Помимо этого, реорганизовать сервер, повысить производительность, убрать узкие места.
Перед командой проекта стоит задача перевода Desktop версии приложения на Web, устраняя недочёты существующей версии, перейти на более современный стек.
Клиентская часть — это SPA (Single Page Application) browser: здесь можно посмотреть мнемосхему, можно посмотреть метки, отчёты. Отдельно разрабатывается мобильное приложение, которое повторяет функционал SPA, но в урезанном виде и для работоспособности в поле.
Вообще проект — горная диспетчеризация и позиционирование. Нужно на основании данных о радиометках рассчитывать позицию персонала в шахте, тем самым помогая горноспасателям находить людей под завалами. От позиционирования отталкивается многое, позиционируем не только людей, но и транспорт. Считаем ходки, нахождения людей в опасных зонах, зонах взрывных работ, вычисления маршрутов транспорта, обработка телеметрии с устройств. Наша компания также разрабатывает и устройства для горных предприятий: каски, RFID метки, считыватели точного позиционирования, считыватели зонального позиционирования. Во многом в тандеме с оборудованием и опираясь на него строится ПО, но не только, всё же ПО горной диспетчеризации — это самостоятельный продукт.
Проект бессрочный, минимум на два года запланированы уже работы по переработке текущего функционала и новому. Принимаем в штат. Полная занятость. Большей частью это удалённая работа в Санкт-Петербурге.
Группа перспективной разработки: рук.группы, ведущий инженер-программист (senior), middle backend, middle frontend, junior backend, junior frontend, бизнес-аналитик.
Процесс. Последовательность. Технологии.
Главная текущая задача – это переход от WPF к SPA. Фронт часть писать придётся с нуля.
Текущий сервер — это монолит, но модульный. Запланировано деление на сервисы. Всё это под Linux и в контейнерах, тут ничего необычного.
Сервер перерос начальный вариант и в связи с большим внедрением и возросшей нагрузкой и производится деление.
Планируемые технологии/инструменты:
- ORM, ASP.NET 7
- БД: PostgreSQL, ClickHouse;
- Фронт: Node.js, Three.js (если получится, то Web GPU);
- Portainer, Docker
- Prometheus, Grafana
- gRPC, REST, SignalR (+ message pack).
Первый этап: чистка от «лёгкого» технического долга, устранение препятствий запуска на Linux (их не много, текущий стек .NET 6). Но по минимуму, текущую версию предлагается только поддерживать. Запустить на Linux к концу 2025-го года.
Второй этап: разбитие на сервисы с переработкой функционала и поддержкой масштабирования, где это имеет место и необходимо (например, расчёт координат, как самый ресурсный процесс). Бить будем пока не поймём, что текущий сервер не содержит логики, которую стоило бы вынести, и только тогда будем переписывать то, что осталось, до тех пор рефактор существующего сервера сводится к минимуму за пределами необходимого в связи с выделением функционала из него в отдельные сервисы.
Условия работы:
- Удалённая работы в Санкт-Петербурге в “гибридном” формате (удалённо большую часть времени, 2-х часовые совещания два раза в неделю в офисе недалеко от “Пионерской” ст.метро);
- В штат компании со всеми обязательствами по ТК РФ;
- Полная занятость;
- Отпуск в соответствии с действующим законодательством (14+14 дней);
- 100 % компенсация больничного (без справок);
- Зарплата на банковскую карточку два раза в месяц с отчислениями в Фонд социального страхования;
- График работы пн-пт, 09:00-17:30. Также (после месяца адаптации к продукту и процессам) возможен более гибкий график начала/окончания работы;
- Офис компании в районе ст. м. “Пионерская” в Санкт-Петербурге (5 мин пешком);
- Передаём ноутбук и ПК для удалённой работы, оснащаем рабочее место.
Заработная плата и бонусы:
- Заработная плата по штатному расписанию 330 000 руб./мес. (после удержания подоходного налога), окончательное решение по итогам технического собеседования;
- Дополнительно: годовая премия по итогам работы всей группы;
- Индексация заработной платы;
- Оплачиваемые компанией курсы повышения квалификации.
Квалификация (необходимые профессиональные знания и навыки):
- Как минимум пятилетний опыт разработки в роли инженера-программиста, ведущего разработчика;
- Опыт работы системным архитектором или техническим лидером;
- Опыт проектирования и оптимизации высоконагруженных систем;
- Знания и опыт работы с базами данных (PostgreSQL);
- Опыт работы с очередями сообщений (Kafka или RabbitMQ);
- Значительный опыт работы с Web технологиями;
- Понимание принципов безопасности и опыт внедрения механизмов защиты (SSL, аутентификация, авторизация).