Требуется Senior Node.js разработчик
Обязанности:
Разработка и поддержка серверной части (backend) программного обеспечения для фитнес-клубов на Node.js.
Проектирование и разработка RESTful API для взаимодействия с клиентскими приложениями (веб, мобильные).
Участие в проектировании архитектуры приложения, выбор технологий и инструментов.
Оптимизация производительности и масштабируемости backend-систем.
Интеграция с базами данных (например, PostgreSQL, MongoDB, MySQL) и управление данными.
Написание unit и интеграционных тестов для обеспечения качества кода.
Участие в code review и менторинг младших разработчиков.
Работа в команде, взаимодействие с frontend-разработчиками, QA-инженерами и другими членами команды.
Участие в процессе DevOps, включая развертывание, мониторинг и поддержку приложений.
Исследование и внедрение новых технологий и подходов для улучшения процесса разработки.
Активное участие в решении технических проблем и устранении ошибок.
Соблюдение стандартов кодирования и лучших практик разработки программного обеспечения.
Документирование разработанного кода и API.
Взаимодействие с бизнесом для уточнения требований и участия в планировании функциональности.
Необходимые навыки и опыт:
Общий опыт разработки:
Не менее 5 лет опыта разработки программного обеспечения.
Не менее 3 лет опыта разработки на Node.js.
Глубокое понимание принципов объектно-ориентированного программирования (ООП) и принципов SOLID.
Знание основных шаблонов проектирования (Design Patterns).
Опыт работы в Agile-командах (Scrum, Kanban).
Умение писать чистый, поддерживаемый и эффективный код.
Опыт работы с системами контроля версий (Git).
Node.js и Backend:
Отличное знание Node.js и экосистемы JavaScript.
Опыт работы с фреймворками Node.js (Express.js, NestJS, Koa.js).
Глубокое понимание асинхронного программирования в Node.js.
Опыт разработки и интеграции RESTful API.
Знание принципов микросервисной архитектуры (желательно).
Опыт работы с message brokers (например, Kafka, RabbitMQ) (желательно).
Опыт работы с GraphQL (желательно).
Опыт работы с WebSocket (желательно).
Базы данных:
Опыт работы с реляционными базами данных (PostgreSQL, MySQL и др.).
Опыт работы с NoSQL базами данных (MongoDB, Redis и др.).
Понимание принципов проектирования баз данных и оптимизации запросов.
Опыт работы с ORM/ODM (например, Sequelize, TypeORM, Mongoose).
Frontend и API взаимодействие:
Общее понимание frontend-разработки (JavaScript, HTML, CSS).
Понимание принципов взаимодействия frontend и backend через API.
Опыт работы с форматами данных JSON и XML.
Опыт работы с инструментами для тестирования API (например, Postman, Insomnia).
DevOps и Инфраструктура:
Опыт работы с системами контейнеризации (Docker, Kubernetes).
Опыт развертывания и мониторинга приложений в облачных средах (AWS, Google Cloud, Azure).
Знание принципов CI/CD (Continuous Integration/Continuous Deployment).
Опыт работы с инструментами мониторинга и логирования (Prometheus, Grafana, ELK stack).
Понимание принципов масштабирования приложений.
Опыт работы с Linux-серверами.
Тестирование:
Опыт написания unit, интеграционных и e2e тестов.
Знание фреймворков для тестирования JavaScript (Jest, Mocha, Chai, Supertest).
Понимание принципов TDD (Test-Driven Development) и BDD (Behavior-Driven Development) (желательно).
Soft skills:
Отличные коммуникативные навыки (устные и письменные).
Умение работать в команде и эффективно взаимодействовать с коллегами.
Лидерские качества и способность менторить младших разработчиков.
Проактивность и ответственность.
Умение самостоятельно решать проблемы и находить оптимальные решения.
Ориентация на результат и способность работать в условиях сжатых сроков.
Английский язык на уровне чтения технической документации и общения (желательно).
Будет плюсом:
Опыт разработки программного обеспечения для фитнес-клубов или в смежных областях (здоровье, спорт, велнес).
Знание специфики бизнес-процессов фитнес-клубов.
Вклад в Open Source проекты.
Участие в профессиональных конференциях и сообществах.
Сертификации в области разработки программного обес