Описание должности
Ключевые обязанности
- Разрабатывать и поддерживать бэкенд-системы на основе спецификаций дизайна продукта, обеспечивая соответствие бизнес-целям и техническим стандартам.
- Проектировать и реализовывать схемы баз данных, оптимизировать производительность запросов и обеспечивать целостность данных с помощью надежных практик управления базами данных.
- Создавать и поддерживать техническую документацию, включая спецификации API, диаграммы архитектуры системы и руководства по развертыванию, для поддержки сотрудничества команды и обмена знаниями.
- Сотрудничать с фронтенд-разработчиками и менеджерами продуктов для проектирования и реализации интерфейсов программных систем, обеспечивая бесшовную интеграцию и функциональность.
- Писать и выполнять модульные тесты для разработанных компонентов, выявлять и устранять ошибки, а также обеспечивать качество кода с помощью строгих протоколов тестирования.
- Контролировать развертывание и обслуживание бэкенд-систем, включая мониторинг производительности системы, управление серверными средами и внедрение обновлений с минимальным временем простоя.
- Быть в курсе новых технологий и лучших практик отрасли для постоянного улучшения архитектуры системы, безопасности и масштабируемости.
- Участвовать в проверках кода, делиться техническими знаниями с членами команды и способствовать разработке эффективных и поддерживаемых кодовых баз.
- Координировать работу с инженерами DevOps для обеспечения плавных процессов развертывания, автоматизации тестирования системы и внедрения CI/CD-конвейеров для эффективной поставки программного обеспечения.
- Оказывать техническую поддержку при устранении неисправностей системы, анализировать журналы ошибок и оперативно решать проблемы для обеспечения доступности системы и удовлетворенности пользователей.
Требования к должности
- Подтвержденный опыт бэкенд-разработки с глубокими знаниями языков программирования, таких как Java, Python или Node.js.
- Экспертные знания в проектировании и управлении базами данных, включая опыт работы с реляционными базами данных (например, MySQL, PostgreSQL) и NoSQL-базами данных (например, MongoDB, Redis).
- Знание разработки и интеграции RESTful API, опыт проектирования и документирования API для бесшовного взаимодействия систем.
- Глубокое понимание жизненного цикла разработки программного обеспечения, включая этапы анализа требований, проектирования, разработки, тестирования, развертывания и обслуживания.
- Владение системами контроля версий, такими как Git, с опытом работы в совместных процессах разработки и управления кодом.
- Опыт работы с облачными платформами, такими как AWS, Azure или Alibaba Cloud, включая знания о бессерверных архитектурах, контейнеризации (например, Docker) и инструментах оркестрации (например, Kubernetes).
- Умение писать и выполнять модульные тесты с использованием фреймворков, таких как JUnit, PyTest или Mocha, для обеспечения качества кода и надежности системы.
- Отличные навыки решения проблем, способность анализировать сложные системные вопросы и внедрять эффективные решения в условиях ограниченного времени.
- Сильные коммуникативные навыки, умение сотрудничать с кросс-функциональными командами, представлять технические решения нетехническим заинтересованным сторонам и четко документировать процессы.
- Опыт работы с инструментами мониторинга системы, такими как Prometheus, Grafana или New Relic, и знание методов оптимизации производительности для бэкенд-систем.
- Владение практиками безопасности системы, включая знания механизмов аутентификации, шифрования данных и стандартов безопасного кодирования для защиты конфиденциальной информации.
- Способность работать как самостоятельно, так и в команде, с проактивным подходом к выявлению возможностей для улучшения и инноваций системы.
- Опыт работы с гибкими методологиями разработки, такими как Scrum или Kanban, и знакомство с инструментами, такими как Jira или Trello, для управления проектами.
- Высокая внимательность к деталям, способность обеспечивать точную реализацию системных требований и поддерживать высококачественную техническую документацию.
- Знание методов масштабируемости системы и оптимизации производительности, включая балансировку нагрузки, стратегии кэширования и индексацию баз данных.
- Опыт работы с конвейерами непрерывной интеграции и непрерывного развертывания (CI/CD), включая инструменты, такие как Jenkins, GitLab CI или CircleCI, для автоматизированного тестирования и развертывания.
- Способность устранять неисправности системы, анализировать журналы ошибок и внедрять исправления для обеспечения стабильности и бесперебойной работы системы.
- Владение задачами системного администрирования, включая настройку серверов, мониторинг и обслуживание бэкенд-сред.
- Опыт работы с инструментами документирования системы, такими как Swagger, Postman или Confluence, для создания и поддержки комплексной технической документации.
