Created by AIImproved by people
Riqli · living documents · updated continuously
Where AI knowledge meets human practice.
Share with friends
1. Общие положения
1.1. Назначение документа
Настоящая должностная инструкция определяет функциональные обязанности, права и ответственность Java-разработчика (далее — «Разработчик») в организации. Документ устанавливает требования к квалификации, порядок взаимодействия с подразделениями, критерии оценки эффективности и регламенты выполнения работ по созданию и сопровождению корпоративных систем и микросервисов в банковском секторе. Инструкция является основным организационно-распорядительным документом, регламентирующим трудовую деятельность Разработчика.
1.2. Правовая основа
Инструкция разработана в соответствии с Трудовым кодексом РФ, внутренними нормативными актами организации, политиками информационной безопасности и регламентами управления IT-активами. Разработчик руководствуется стандартами предприятия по разработке программного обеспечения, архитектурными принципами построения распределенных систем, а также требованиями регуляторов в части обеспечения непрерывности и безопасности банковских сервисов. В своей работе Разработчик соблюдает положения о коммерческой тайне и защите персональных данных.
1.3. Термины и определения
Корпоративная система — комплекс взаимосвязанных программных компонентов, обеспечивающих автоматизацию бизнес-процессов организации. Микросервис — автономно развертываемый сервис, реализующий одну бизнес-функцию и взаимодействующий с другими сервисами через сетевые протоколы. Enterprise Java — экосистема технологий и спецификаций (Jakarta EE, Spring Framework, Quarkus) для создания масштабируемых, транзакционных и безопасных приложений. CI/CD — непрерывная интеграция и непрерывная доставка изменений в продуктивную среду.
2. Цель и сфера деятельности
2.1. Миссия роли
Разработчик обеспечивает создание, развитие и поддержку высоконагруженных корпоративных систем и микросервисов, соответствующих требованиям производительности, надежности и безопасности банковского сектора. Основная цель — реализация программных решений, которые автоматизируют бизнес-процессы, обеспечивают обработку транзакций в реальном времени и интеграцию с внешними системами. Разработчик участвует в полном жизненном цикле продукта: от анализа требований до эксплуатации и оптимизации.
2.2. Ожидаемые результаты
Результатом работы Разработчика является работоспособный, документированный и тестируемый программный код, интегрированный в общую систему предприятия. Ключевые результаты включают: выпуск релизных версий микросервисов в установленные сроки, соблюдение соглашений по качеству кода (код-ревью, статический анализ), обеспечение целевых показателей пропускной способности и времени отклика API, а также снижение количества критических инцидентов в продукционной среде. Разработчик вносит вклад в технологическую экспертизу команды и улучшение процессов разработки.
3. Подчиненность и взаимодействие
3.1. Линии подчинения
Разработчик находится в функциональном подчинении у руководителя группы разработки (Team Lead) и административном подчинении у руководителя департамента разработки. По вопросам архитектуры и технологического стека Разработчик взаимодействует с архитектором и техническим комитетом организации. В случае матричной структуры проекта Разработчик выполняет указания руководителя проекта (Project Manager) в части сроков, приоритетов и объема задач, сохраняя функциональное подчинение своему непосредственному руководителю.
3.2. Взаимодействие с подразделениями
Разработчик взаимодействует с бизнес-аналитиками для уточнения требований к функциональности; с системными аналитиками — для спецификации API и моделей данных; с инженерами по тестированию (QA) — для планирования тестов и устранения дефектов; с администраторами баз данных (DBA) — для оптимизации запросов и схем данных; с DevOps-инженерами — для настройки сред разработки, CI/CD пайплайнов и мониторинга. Взаимодействие строится на основе внутренних регламентов и документооборота, включая Jira и Confluence.
4. Должностные обязанности
4.1. Разработка и реализация программного кода
Разработчик осуществляет написание высококачественного кода на Java (версии 17 и выше) с использованием фреймворков Spring Boot, Spring Cloud, Hibernate, а также библиотек для работы с очередями (Apache Kafka, RabbitMQ). Реализует RESTful и gRPC сервисы, следуя принципам микросервисной архитектуры: декомпозиция по бизнес-функциям, изолированное хранение данных, межсервисная аутентификация и маршрутизация. Применяет паттерны проектирования: Repository, Factory, Strategy, Observer, Saga для управления распределенными транзакциями. Соблюдает стандарты кодирования (Google Java Style Guide, SonarQube профиль) и обеспечивает покрытие кода модульными и интеграционными тестами не менее 80%.
4.2. Участие в проектировании систем
Участвует в разработке архитектурных решений для корпоративных систем и микросервисов совместно с архитектором и техническим комитетом. Готовит технические спецификации, диаграммы потоков данных (C4 model, UML), описание API в OpenAPI (Swagger) и документацию по взаимодействию сервисов. Оценивает альтернативные технологии и подходы (монолит vs микросервисы, синхронное vs асинхронное взаимодействие, реляционные vs NoSQL базы данных), аргументирует выбор с учетом требований к масштабируемости и доступности. Документирует архитектурные решения в ADR (Architecture Decision Records).
4.3. Интеграция с внешними системами и API
Разработчик реализует интеграционные адаптеры и клиенты для взаимодействия с внешними банковскими системами, платежными шлюзами, системами идентификации и внешними партнерскими API. Использует шаблоны интеграции: шлюз (API Gateway), корпоративная шина данных (ESB) на основе Apache Camel или Spring Integration, паттерны обмена сообщениями (Message Router, Aggregator, Splitter). Обеспечивает обработку ошибок, повторные попытки (Retry) и схемы circuit breaker (Resilience4j, Hystrix) для повышения отказоустойчивости. Внедряет трассировку запросов (Distributed Tracing) с помощью Zipkin или Jaeger для сквозного мониторинга цепочек вызовов.
4.4. Работа с базами данных и кэшированием
Проектирует схемы реляционных баз данных (PostgreSQL, Oracle), пишет оптимизированные SQL-запросы и использует ORM-фреймворки (Hibernate, JPA) для отображения объектов. Настраивает пулы соединений, индексы и партиционирование для работы с большими объемами данных. Применяет стратегии кэширования (Redis, Hazelcast) для снижения нагрузки на базы данных: кэш первого уровня, распределенный кэш, инвалидация кэша при обновлении данных. Для нереляционных данных использует MongoDB или Elasticsearch, обеспечивая правильную индексацию и поисковые запросы. Следит за планом выполнения запросов и использует инструменты профилирования для выявления узких мест.
4.5. Обеспечение безопасности и производительности
Внедряет стандарты безопасности для корпоративных систем: аутентификация и авторизация на основе OAuth2 / OpenID Connect с использованием Spring Security и Keycloak; валидация входных данных; защита от OWASP Top 10 угроз (SQL-инъекции, XSS, CSRF, небезопасная десериализация). Настраивает безопасное хранение секретов (Hashicorp Vault, AWS Secrets Manager) и шифрование данных в покое и при передаче (TLS). Проводит нагрузочное тестирование (JMeter, Gatling) и профилирование приложений (JProfiler, VisualVM) для достижения требуемой пропускной способности (requests per second) и времени отклика под нагрузкой. Оптимизирует использование памяти и процессорного времени, настраивает сборщик мусора (G1 GC, ZGC) и параметры JVM.
4.6. Управление конфигурацией и CI/CD
Настраивает и поддерживает пайплайны непрерывной интеграции и доставки (CI/CD) в Jenkins, GitLab CI или GitHub Actions. Автоматизирует сборку (Maven, Gradle), статический анализ кода (SonarQube, Checkstyle), прогон автотестов и деплой в различные среды (dev, test, staging, production). Использует контейнеризацию (Docker) и оркестрацию (Kubernetes, OpenShift) для унификации сред выполнения и масштабирования. Управляет конфигурацией через внешние репозитории (Spring Cloud Config, Consul) и применяет подход «инфраструктура как код» (IaC) с использованием Terraform или Ansible для описания инфраструктуры.
4.7. Участие в код-ревью и наставничество
Регулярно проводит код-ревью запросов на слияние (pull requests) коллег, оценивая чистоту кода, соответствие архитектурным принципам, покрытие тестами и потенциальные узкие места. Предоставляет конструктивную обратную связь и предлагает улучшения, следуя правилам Code Review Checklist организации. Участвует в парном программировании и менторинге младших разработчиков, передавая экспертизу в области разработки микросервисов, фреймворков и практик тестирования. Содействует распространению лучших практик и стандартов разработки внутри команды.
4.8. Диагностика и устранение инцидентов
Разработчик участвует в расследовании и устранении инцидентов продукционной среды, связанных с работой разработанных сервисов. Анализирует логи (ELK Stack: Elasticsearch, Logstash, Kibana), метрики (Prometheus, Grafana) и трейсы для выявления первопричин сбоев или деградации производительности. Оперативно разворачивает исправления (hotfix) и проводит пост-мортем анализ с документированием корневых причин и планов профилактических мер. Соблюдает SLA по времени восстановления (MTTR) и уведомляет заинтересованные стороны о статусе инцидента.
4.9. Документирование и поддержка знаний
Создает и поддерживает актуальную техническую документацию на все разработанные компоненты: архитектурные схемы, описание API, инструкции по развертыванию и эксплуатации, руководства по конфигурации. Ведет документацию в Confluence или аналогичных системах, следуя установленным шаблонам. Документирует сложные алгоритмы, бизнес-правила и сценарии взаимодействия, чтобы обеспечить передачу знаний внутри команды и снизить зависимость от отдельных сотрудников. Участвует в создании базы знаний по типовым ошибкам и их решениям.
4.10. Следование процессам управления изменениями
Разработчик строго соблюдает процедуры управления изменениями (Change Management), утвержденные в организации. Любые изменения в продукционной среде выполняются только через формализованный процесс: создание заявки на изменение в ITSM-системе, оценка влияния, утверждение Change Advisory Board (CAB) и планирование окна изменений. Для критических сервисов обязательно наличие плана отката (rollback plan) и проведение smoke-тестов после деплоя. Все изменения регистрируются в системе, а статус отслеживается до полного завершения.
4.11. Оптимизация и рефакторинг
Проводит рефакторинг унаследованного кода (legacy code) с целью повышения читаемости, производительности и удобства поддержки. Применяет техники рефакторинга: выделение методов, замена условных операторов полиморфизмом, устранение дублирования, оптимизация структур данных. Планирует и реализует миграции на новые версии фреймворков и Java, оценивая обратную совместимость и потенциальные риски. Предлагает и реализует улучшения производительности на основе профилирования и анализа метрик, добиваясь снижения затрат ресурсов и сокращения времени ответа.
4.12. Разработка в соответствии с GDPR и отраслевыми стандартами
При разработке систем, обрабатывающих персональные данные, Разработчик выполняет требования ФЗ-152 «О персональных данных», GDPR и отраслевых стандартов (PCI DSS для платежных данных). Обеспечивает защиту данных путем шифрования, маскировки, аудита доступа и анонимизации там, где это необходимо. Участвует в процессах оценки воздействия на защиту данных (DPIA) и внедряет механизмы «Privacy by Design». Соблюдает политики управления доступом и ведения журналов событий безопасности.
5. Права сотрудника
5.1. Право на принятие решений
Разработчик имеет право принимать оперативные технические решения в рамках поставленных задач и утвержденных архитектурных принципов. По согласованию с руководителем выбирает технологии, инструменты и подходы к реализации, наиболее подходящие для достижения целей. В случае возникновения ситуации, угрожающей качеству или срокам, Разработчик имеет право инициировать внеочередное совещание и привлекать необходимых экспертов для выработки решения. Конечные решения по архитектуре и стратегическим изменениям принимаются архитектурным комитетом.
5.2. Доступ к информации и ресурсам
Разработчику предоставляется доступ к корпоративным репозиториям кода (Git), базам знаний (Confluence), средам разработки и тестирования, системам управления задачами (Jira) и мониторинга (Prometheus, Grafana) в соответствии с ролью и правами доступа. Имеет право запрашивать и получать от руководителя, аналитиков и других подразделений информацию, необходимую для выполнения должностных обязанностей. Для выполнения задач Разработчику выделяются необходимые аппаратные и программные ресурсы: рабочая станция, лицензионное ПО, доступ к облачным сервисам (AWS, Azure) и виртуальным средам.
5.3. Право на обучение и повышение квалификации
Разработчик имеет право на профессиональное развитие, участие в конференциях, тренингах и курсах повышения квалификации по направлениям, связанным с Java, микросервисами, облачными технологиями и архитектурой. Затраты на обучение могут быть компенсированы организацией в соответствии с политикой обучения и развития персонала. Разработчик может инициировать внедрение новых инструментов и практик, прошедших оценку соответствия политикам безопасности и совместимости с существующим стеком.
5.4. Право на защиту профессиональной деятельности
Разработчик имеет право на неразглашение персональных данных и коммерческой тайны в соответствии с законодательством и внутренними политиками. При возникновении конфликта интересов или давления с целью нарушения стандартов, Разработчик имеет право обратиться к вышестоящему руководству или в службу комплаенс. Никто не может принуждать Разработчика к выполнению незаконных указаний или требований, нарушающих профессиональную этику и безопасность.
6. Ответственность и подотчетность
6.1. Ответственность за качество кода
Разработчик несет персональную ответственность за качество и работоспособность разработанного кода, включая соответствие техническим требованиям, архитектурным решениям и стандартам кодирования. Дефекты, выявленные в продукционной среде и обусловленные ошибками в коде, являются основанием для пересмотра процессов контроля качества. Разработчик обязан устранить выявленные нарушения в установленные сроки и участвовать в анализе причин для предотвращения повторения.
6.2. Ответственность за безопасность
Разработчик несет ответственность за безопасность разрабатываемого кода и системных компонентов. Любые уязвимости, внесенные в код и приведшие к нарушениям безопасности, рассматриваются как серьезное нарушение должностных обязанностей. Разработчик обязан соблюдать политики информационной безопасности, использовать безопасные методы программирования и немедленно сообщать о найденных уязвимостях в службу безопасности. Нарушение требований по защите персональных данных может повлечь за собой дисциплинарную, административную или уголовную ответственность.
6.3. Отчетность о выполненных задачах
Разработчик обязан регулярно предоставлять отчеты о проделанной работе в согласованном формате: ежедневные стендапы, еженедельные отчеты в Jira о списании времени по задачам, отчеты о результатах тестирования и статусах задач. В случае отклонений от плана или возникновения рисков срыва сроков, Разработчик обязан незамедлительно уведомить руководителя и предложить корректирующие действия. Отчетность является основанием для оценки эффективности работы и расчета KPI.
6.4. Дисциплинарная ответственность
За неисполнение или ненадлежащее исполнение должностных обязанностей, нарушение внутренних регламентов, технологической дисциплины или правил информационной безопасности Разработчик может быть привлечен к дисциплинарной ответственности вплоть до увольнения. Виды взысканий, порядок применения и обжалования регулируются Трудовым кодексом РФ и внутренними нормативными документами организации. Серьезные нарушения, такие как умышленное внесение вредоносного кода или разглашение конфиденциальных данных, влекут за собой юридическую ответственность.
7. Квалификационные требования и компетенции
7.1. Образование и опыт
Разработчик должен иметь высшее образование в области компьютерных наук, прикладной математики, информационных технологий или смежных дисциплин (бакалавриат/магистратура). Опыт промышленной разработки на Java — от 3 лет для позиции Middle и от 5 лет для Senior. Обязателен опыт разработки микросервисов в продакшене, работы с базами данных и системами контроля версий. Опыт в банковской или финансовой сфере является преимуществом.
7.2. Технические компетенции
Глубокое знание Java Core (Collections, Concurrency, Reflection, Stream API, лямбда-выражения), принципов ООП, SOLID, паттернов проектирования. Обязательное владение фреймворками: Spring Boot, Spring Data, Spring Cloud, Spring Security. Опыт работы с системами сборки (Maven/Gradle), тестовыми фреймворками (JUnit 5, Mockito, Testcontainers), инструментами CI/CD (Jenkins/GitLab CI). Понимание сетевых протоколов (HTTP/2, gRPC, WebSocket), знание форматов данных (JSON, XML, Protobuf, Avro). Опыт работы с очередями сообщений (Kafka, RabbitMQ), базами данных (SQL, NoSQL) и кэшами (Redis). Навыки контейнеризации и оркестрации (Docker, Kubernetes).
7.3. Архитектурные и системные знания
Понимание микросервисной архитектуры, распределенных систем, транзакционной целостности (Saga, двухфазный коммит, компенсационные транзакции). Владение паттернами отказоустойчивости (Circuit Breaker, Retry, Timeout, Bulkhead). Умение проектировать API по стандартам RESTful, OpenAPI, а также gRPC и GraphQL. Знание подходов к мониторингу и observability: метрики, логирование, distributed tracing. Понимание принципов построения event-driven архитектур и CQRS/Event Sourcing.
7.4. Сертификации и непрерывное обучение
Приветствуются сертификации: Oracle Certified Professional (OCP) Java, Spring Professional, AWS Certified Developer, а также сертификаты по Kubernetes (CKA) и безопасности (CISSP, CSSLP). Разработчик обязан поддерживать свои навыки актуальными, ежегодно проходить не менее 40 часов повышения квалификации по профильным направлениям. Рекомендуется участие в хакатонах, конференциях (JPoint, DevOops, HighLoad++) и менторство стажеров.
7.5. Soft skills и коммуникации
Разработчик должен обладать коммуникативными навыками для эффективного взаимодействия в команде и с заказчиками. Навыки работы в Agile-команде (Scrum/Kanban), умение декомпозировать задачи, оценивать трудозатраты (story points) и управлять своим временем. Критическое мышление, инициативность, умение аргументированно отстаивать свою позицию при технических спорах. Способность к самоорганизации и работе в условиях многозадачности при соблюдении сроков. Навыки написания технической документации и презентации решений.
8. Условия работы
8.1. Режим рабочего времени и место работы
Разработчику устанавливается стандартный пятидневный график работы (40-часовая неделя) с возможностью гибкого начала рабочего дня в пределах 2 часов от установленного начала. Для выполнения срочных задач или поддержки продуктивных систем допускается привлечение к сверхурочной работе с письменного согласия и оплатой согласно ТК РФ. Место работы — офис организации с возможностью удаленной работы до 3 дней в неделю по согласованию с руководителем, при условии наличия стабильного интернет-соединения и соблюдения политик безопасности.
8.2. Условия труда и эргономика
Организация предоставляет оборудованное рабочее место с необходимым ПО, доступом к внутренним сетям, серверам и репозиториям. Разработчик обязан соблюдать правила охраны труда, пожарной безопасности и санитарно-гигиенические требования. При удаленной работе Разработчик самостоятельно обеспечивает эргономичное рабочее пространство и использует только корпоративное оборудование (ноутбук, виртуальные рабочие столы) с установленным корпоративным ПО безопасности (VPN, антивирус, DLP).
8.3. Инструменты и техническое оснащение
Разработчику предоставляется рабочая станция (ноутбук) с требованиями к производительности: не менее 8 ядер процессора, 32 ГБ ОЗУ, SSD 512 ГБ. Устанавливается IDE (IntelliJ IDEA Ultimate, VS Code), базы данных клиенты (DBeaver, DataGrip), инструменты для работы с API (Postman, Insomnia), системы контроля версий (Git, Sourcetree). Доступ к облачным сервисам (AWS/Azure) и внутренним репозиториям (Artifactory/Nexus). Обеспечивается доступ к системам Jira, Confluence, Slack и корпоративной почте.
9. Ключевые показатели эффективности (KPI)
9.1. Продуктивность и качество кода
KPI по продуктивности: количество завершенных задач (story points) за спринт, скорость выполнения (Velocity) в сравнении с командным средним. Качество кода оценивается через: процент покрытия тестами (≥80%), количество нарушений SonarQube (критические — 0, основные — снижение на 20% в квартал), количество инициированных и принятых ревью. Регулярность коммитов, соответствие ветвления в Git и качество описания запросов на слияние также входят в оценку.
9.2. Надежность и инциденты
Показатели доступности и надежности систем: количество и длительность инцидентов в продукционной среде, связанных с изменениями, внесенными Разработчиком. Целевые значения: MTTR (среднее время восстановления) — менее 2 часов для критических инцидентов, доля успешных деплоев без откатов — не менее 95%. Снижение числа регрессионных дефектов и количество критических ошибок, найденных на этапе эксплуатации, также влияют на общую оценку.
9.3. Соответствие требованиям и документация
Выполнение задач в соответствии с техническим заданием и принятыми стандартами. Доля задач, принятых заказчиком (Product Owner) без возврата на доработку с первой попытки — не менее 90%. Своевременность и полнота обновления технической документации (Confluence, ADR, OpenAPI спецификации). Участие в код-ревью и предоставление обратной связи в соответствии с принятыми SLA (не более 24 часов на ревью). Выполнение требований по регулярности отчетности и списания времени в Jira.
9.4. Профессиональное развитие и вклад в команду
Участие в технических митапах, блог-посты, внутренние презентации и передача знаний коллегам. Выполнение плана по обучению и получению сертификаций. Участие в найме: проведение технических интервью для кандидатов (не менее 2–3 в квартал). Обратная связь от коллег и руководителя по работе в команде и лидерским качествам. Вовлеченность в улучшение процессов разработки (предложения по автоматизации, новым инструментам, оптимизации CI/CD) и активное участие в ретроспективах.
10. Бизнес-процессы, чек-листы и сценарии рабочих потоков
10.1. Чек-лист создания нового микросервиса
- Шаг 1. Получение бизнес-требований от аналитика и согласование архитектурного подхода с архитектором.
- Шаг 2. Создание репозитория в Bitbucket/GitLab по шаблону проекта, настройка CI/CD пайплайна (сборка, статический анализ, автотесты, деплой в dev).
- Шаг 3. Реализация скелета микросервиса: основной класс, загрузка конфигурации, логирование, обработка ошибок.
- Шаг 4. Разработка доменной модели, сервисного слоя, репозиториев и REST/gRPC контроллеров.
- Шаг 5. Написание интеграционных тестов с использованием Testcontainers и модульных тестов (покрытие ≥80%).
- Шаг 6. Настройка мониторинга (метрики, health-checks, endpoints для Prometheus) и трейсинга (Jaeger).
- Шаг 7. Создание документации: OpenAPI, архитектурные схемы, инструкция по развертыванию.
- Шаг 8. Проведение код-ревью и загрузка изменений в общий репозиторий.
- Шаг 9. Деплой в тестовую среду, проведение smoke-тестов и приглашение аналитика для приемочного тестирования.
- Шаг 10. Получение утверждения на деплой в staging и production через Change Management.