Описание должности
Ключевые обязанности
- Руководство проектированием и разработкой бэкенд-систем на основе детальных спецификаций продукта, обеспечивая соответствие бизнес-целям и техническую реализуемость
- Архитектура и реализация решений для баз данных с использованием реляционных и/или NoSQL технологий, оптимизация для производительности, масштабируемости и целостности данных
- Подготовка и ведение технической документации, включая диаграммы архитектуры системы, спецификации API и руководства по реализации для всех бэкенд-компонентов
- Разработка и тестирование программных интерфейсов с использованием протоколов RESTful API, обеспечение совместимости с фронтенд-системами и сторонними сервисами
- Проведение модульного тестирования для всех разработанных модулей, выявление и устранение технических проблем для соответствия стандартам контроля качества
- Контроль развертывания бэкенд-систем с использованием CI/CD-пайплайнов, обеспечение плавной интеграции с облачной инфраструктурой и мониторинг производительности системы после развертывания
- Обеспечение текущего обслуживания и поддержки существующих бэкенд-систем, внедрение обновлений и улучшений для повышения функциональности и безопасности
- Сотрудничество с кросс-функциональными командами, включая менеджеров продуктов, QA-инженеров и специалистов DevOps, для обеспечения согласованной разработки системы
- Отслеживание новых технологий и лучших практик отрасли для постоянного улучшения архитектуры системы и методологий реализации
- Документирование изменений и обновлений системы четким и организованным образом для обеспечения передачи знаний и соблюдения стандартов документации системы
Требования к должности
- Подтвержденный опыт разработки бэкенд-систем с глубоким пониманием принципов проектирования программного обеспечения и шаблонов архитектуры
- Экспертные знания в проектировании и управлении базами данных, включая владение SQL и NoSQL технологиями, такими как MySQL, PostgreSQL, MongoDB или Oracle
- Отличные навыки документирования с возможностью создания четких технических спецификаций, документации API и диаграмм архитектуры системы
- Сильные навыки программирования на языках, таких как Java, Python или Node.js, с опытом разработки масштабируемых и безопасных бэкенд-приложений
- Владение разработкой RESTful API, включая понимание HTTP-методов, протоколов аутентификации и стратегий версионирования API
- Опыт работы с фреймворками модульного тестирования, такими как JUnit, pytest или Mocha, с возможностью написания тестовых случаев и отладки технических проблем
- Знание процессов развертывания, включая контейнеризацию (Docker), оркестрацию (Kubernetes) и облачные платформы (AWS, Azure, GCP)
- Способность поддерживать и оптимизировать существующие бэкенд-системы, включая настройку производительности, установку исправлений безопасности и мониторинг системы
- Отличные коммуникативные навыки с возможностью эффективного сотрудничества с разработчиками, заинтересованными сторонами и техническими командами
- Сильные аналитические способности с возможностью анализа сложных технических задач и реализации эффективных решений
- Опыт работы с системами контроля версий, такими как Git, с возможностью управления репозиториями кода и сотрудничества в рабочих процессах разработки
- Понимание концепций интеграции систем, включая API-шлюзы, микросервисную архитектуру и сервис-ориентированные шаблоны проектирования
- Способность документировать изменения и обновления системы четким и организованным образом для обеспечения передачи знаний и соблюдения стандартов документации
- Владение инструментами разработки, такими как Postman для тестирования API, Jira для управления задачами и Docker для контейнеризации
- Опыт работы с инструментами мониторинга системы, такими как Prometheus, Grafana или New Relic, для обеспечения надежности и производительности системы
- Знание лучших практик безопасности, включая шифрование данных, механизмы аутентификации и стандарты безопасного кодирования
- Способность работать независимо, сохраняя при этом тесное сотрудничество с кросс-функциональными командами для предоставления высококачественных систем
- Сильная внимательность к деталям с возможностью обеспечения качества кода, точности документации и надежности системы
- Опыт работы со стратегиями масштабируемости системы, включая горизонтальное масштабирование, балансировку нагрузки и проектирование распределенной архитектуры
