Обладать навыками взаимодействия с нашим бэкендом, основанным на Go, GraphQL и gRPC.
1. Основные требования (Hard Skills)
Опыт работы:
- Минимум 3-5 лет профессиональной разработки на JavaScript/TypeScript.
- Опыт работы с одним из фреймворков.
- React (предпочтительно): Глубокое знание экосистемы React (hooks, Context API, жизненный цикл компонентов).
- Vue.js: Уверенное владение Vue.js, Vuex/Pinia, Composition API.
Типизация:
- Обязательное глубокое знание и практический опыт использования TypeScript. Понимание продвинутых типов, интерфейсов, дженериков. Способность проектировать типобезопасные решения.
* Взаимодействие с API:
- Обязательный опыт работы с GraphQL. Понимание принципов GraphQL, умение писать сложные запросы, мутации и работать с подписками.
- Практический опыт работы с Apollo Client (для React/Vue) или аналогичными GraphQL-клиентами. Понимание кэширования, нормализованного кэша, оптимистичных обновлений.
- Понимание RESTful API, если потребуется взаимодействие с другими сервисами.
Управление состоянием:
- Опыт работы с библиотеками управления состоянием, такими как React Query (TanStack Query) для серверного состояния, Zustand/Jotai (для локального состояния в React) или Vuex/Pinia (для Vue).
Стилизация и UI:
- Уверенное знание CSS3/HTML5, включая адаптивную и кроссбраузерную верстку.
- Опыт работы с CSS-фреймворками (например, Tailwind CSS) или CSS-in-JS библиотеками (например, Styled-components, Emotion).
Инструменты сборки:
- Практический опыт работы с Vite (предпочтительно) или Webpack.
Системы контроля версий:
2. Дополнительные требования (Плюсом будет)
- Опыт создания дизайн-систем или работы с ними.
- Опыт работы с монорепозиториями (например, Turborepo, Nx).
- Понимание принципов SSR (Server-Side Rendering) или SSG (Static Site Generation).
- Опыт работы с WebSockets (помимо GraphQL Subscriptions).
- Знание методологий разработки (Agile, Scrum).
3. Архитектурные принципы и подходы (Soft/Arch Skills)
- Чистый код и архитектура:
- Способность писать чистый, поддерживаемый, читаемый и хорошо документированный код.
- Понимание принципов Clean Architecture или других принципов модульного дизайна (например, компонентно-ориентированное программирование, FSD).
Тестирование:
- Опыт написания юнит-, интеграционных и E2E-тестов (Jest/Vitest, React/Vue Testing Library, Cypress/Playwright). Понимание важности тестового покрытия.