шоссе Энтузиастов 14
Мы — Центр Информационных Технологий "Роскадастр-Инфотех" (ЦИТ "Роскадастр-Инфотех") – крупная государственная IT- компания.
Наша компания является главным оператором информационных систем Росреестра, мы ведем такие крупные проекты как Федеральная государственная информационная система Единого государственного реестра недвижимости (ФГИС ЕГРН), Публичная кадастровая карта (ПКК), Единая цифровая платформа «Национальная система пространственных данных» (ФГИС ЕЦП НСПД) и многие другие.
Приглашаем в нашу команду главного системного программиста /Java разработчика
Обязанности:
-
Писать высококачественный, тестируемый и поддерживаемый код на Java (версии 17/21+), Spring Framework (Boot, MVC, Data, Security, Cloud).
-
Настраивать сборку и управление зависимостями (Maven).
-
Проводить рефакторинг legacy-кода и миграцию на современные версии Java.
-
Участвовать в проектировании архитектуры новых сервисов и систем с учётом требований к производительности, масштабируемости и отказоустойчивости.
-
Выбирать технологический стек, паттерны проектирования и подходы к интеграции.
-
Создавать технические спецификации, диаграммы (UML, C4) и документацию архитектурных решений.
-
Обеспечивать соблюдение архитектурных принципов (SOLID, DRY, KISS, Clean Architecture).
-
Проектировать реляционные (PostgreSQL) и нереляционные (MongoDB) схемы данных.
-
Оптимизировать SQL-запросы, работать с индексами и транзакциями.
-
Настраивать миграции БД (Liquibase).
-
Обучать и менторить Junior и Middle разработчиков.
-
Участвовать в планировании спринтов (Scrum/Kanban), оценивать сложность задач.
-
Коммуницировать с бизнес-аналитиками, DevOps, тестировщиками и системными аналитиками.
-
Документировать принятые технические решения и best practices.
Требования:
-
Образование - высшее техническое (информационные технологии, прикладная математика,физика, компьютерные науки).
-
Опыт работы программистом от 6 лет, из них в роли Senior (или ведущего разработчика) - от 2 лет.
-
Опыт работы в высоконагруженных проектах
Знания
Java
- Глубокое знание Java Core (многопоточность, коллекции, memory model, Garbage Collection, работа с файлами/сетью).
- Опыт работы с Java 17/21+.
- Понимание реактивного программирования (Spring WebFlux) - будет плюсом.
Экосистема Spring
- Spring Boot, Spring MVC, Spring Data (JPA/MongoDB/Redis), Spring Security.
- Spring Cloud (Service Discovery, API Gateway, Config Server) - для микросервисных архитектур.
- Понимание внутреннего устройства Spring (контекст, AOP, события).
Микросервисная архитектура
- Circuit Breaker, Saga, CQRS, Event Sourcing (на уровне понимания и применения).
- Синхронное взаимодействие (REST, gRPC) и асинхронное (очереди, event-driven).
Брокеры сообщений
- Apache Kafka, RabbitMQ. Практический опыт: продюсеры, консьюмеры, топики, партиционирование.
- YDB топики - как дополнительно плюс.
Базы данных
- Реляционные: PostgreSQL, YDB - проектирование схем, оптимизация запросов, транзакции.
- NoSQL: MongoDB (агрегации, индексы), Redis (кэширование, сессии, локи).
Системы полнотекстового поиска
- Понимание принципов работы инвертированных индексов и анализа текста.
- Практический опыт работы с Elasticsearch/OpenSearch/ManticoreSearch (создание индексов, написание сложных поисковых запросов, настройка анализаторов).
- Понимание возможностей встроенного полнотекстового поиска в используемых СУБД (PostgreSQL, MongoDB Text Search).
Логирование и мониторинг
- структурированные логи (JSON), корреляция запросов (TraceId / SpanId).
- Micrometer, экспорт в Prometheus, базовое знакомство с Grafana.
- Опыт с трейсингом (OpenTelemetry, Jaeger) для распределённой трассировки - плюсом.
Контейнеризация и CI/CD
- Docker (сборка образов, docker-compose).
- Git (стратегии ветвления, rebase).
- Maven (управление зависимостями, многомодульные проекты).
- GitLab CI.
Тестирование
- JUnit, Mockito, Testcontainers, интеграционные и нагрузочные тесты Jmeter.
Умения
Самостоятельность
- Способен взять задачу с нечётким требованием, проанализировать, декомпозировать, предложить решение и реализовать его без постоянного контроля.
- Умеет аргументировать технические решения, видеть альтернативы, выбирать оптимальный вариант.
Проектирование и разработка
- Проектировать масштабируемые, отказоустойчивые, тестируемые микросервисы.
- Работать с legacy-кодом: рефакторить, модернизировать, повышать покрытие тестами.
- Проектировать REST API с версионированием, валидацией, документацией (OpenAPI/Swagger).
Диагностика и оптимизация
- Выявлять узкие места в производительности (базы данных, сеть, память, блокировки).
- Профилировать приложение, настраивать JVM.
- Организовать логирование с корреляцией запросов (MDC, сквозные идентификаторы).
- Настроить экспорт кастомных метрик бизнес-событий и производительности (через /actuator/prometheus).
- Спроектировать минимально необходимые дашборды и алерты (латентность, ошибки, заполнение очередей).
Команда и коммуникация
- Проводить код-ревью, обучать junior/middle разработчиков, делиться опытом.
- Эффективно взаимодействовать с заказчиком, аналитиком, тестировщиком, DevOps.
Документирование
- Писать техническую документацию (архитектурные решения, инструкции по развёртыванию).
Иные требования
- Готовность брать на себя ответственность за качество кода, соблюдение дедлайнов, стабильность сервисов в продукционной среде.
- Предлагать улучшения процессов, технологий, архитектуры.
- Не ждать готовых решений, а искать их самостоятельно (Google, Stack Overflow, официальные источники).
- Опыт работы с высоконагруженными системами (от 1000+ RPS) - преимущество.
Условия:
-
Официальное оформление по ТК РФ.
-
Участие в уникальных цифровых проектах, результаты реализации которых используются по всей стране.
-
Работникам предоставляется бесплатное обучение в магистратуре по направлению IT (обучение 1 год 5 месяцев).
-
Возможности карьерного и профессионального роста.
-
График работы 5/2 с 09-00 до 18-00, в пятницу до 16-45.
-
Комфортабельный офис в г. Москве.
-
Дружная команда профессионалов.