Ищу фронтенд-разработчика
Привет! Меня зовут Влад, я технический директор
Мне нужен фронтенд-разработчик в нашу команду.
Зарплата 150 000—750 000, в зависимости от уровня
«Авиата» — сервис покупки авиа- и Ж/Д билетов. Мы работаем с 2013 года, и сейчас продаём более 300 000 билетов ежемесячно. В 2018 году издание Forbes Казахстан назвало нас лидером по продаже билетов.

Мы ставим перед собой амбициозные цели и не собираемся останавливаться. Наша IT-компания — команда единомышленников, но по отдельности каждый – самонаводящаяся ракета!

Что мы делаем

В то время как наши бекэндеры пишут микросервисы, перед фронтэндерами стоят не менее легкие и интересные задачи. Работу можно разделить на 2 вида:

1. Улучшения по UX/UI части, поиски наилучших решений при помощи проведения A/B тестирований, внедрение нового функционала. Нам не за кем повторять — наилучшие решения достигаются путем проб и ошибок.
2. Перенос фронт части сайта из монолита в отдельные, общие модули для «Авиаты» и «Чокотревела». Изначально оба сервиса были одним массивным монолитом, который включал в себя весь функционал. Со временем объемы выросли в разы и появилась необходимость разбивать их на независимые, более стабильные и современные блоки — наша основная и приоритетная задача. Никто не диктует и не навязывает нам определенные решения — мы регулярно устраиваем brainstorming сессии, на которых сами их и утверждаем.

Еще одна важная деталь — мы работаем по методологии Agile. Все программисты, дизайнеры, тестировщики и менеджеры поделены на продуктовые команды, перед которыми стоят определенные цели. То, как команда достигнет своей цели, зависит только от самой команды, потому что решения для достижения этой цели принимаются внутри команды.

Подробнее про наш стек можно прочитать в грейдинге

Рекомендованная литература
- You Don't Know JS. Кайл Симпсон (6 книг)
- CSS in Depth
- Clean Code. Robert Martin
- Refactoring Improving the Design of Existing code
- https://javascript30.com/

Но мы не ограничиваемся на этом списке и не стоим на месте. Поэтому, если вы предложите что то лучше - будем только рады. Такие решение остаются именно за разработчками.
Предлагаем взамен

Офис в центре Алматы. Мы находимся на пересечении проспектов Абая и Гагарина, в 5 минутах от станции метро «Алатау». Кстати, офис у нас новый, просторный и клевый.

Официальное трудоустройство и «белая» зарплата. Мы принципиально против зарплат в конвертах, поэтому не будем так платить, даже если вы сами этого попросите.

Ноутбук и монитор. И любое другое оборудование, необходимое для эффективной работы.

Обучение за счёт компании. Если хотите пройти курсы или пойти на конференцию, связанную с вашей работой, компания готова оплатить стоимость обучения.

Библиотека с профессиональной литературой. Мы регулярно обновляем список книг, которые можно читать в офисе и брать домой.

Грэйдинг фронтенд-разработчиков
Intern
Hard skills
  • Базовые знания языка программирования (переменные, операторы, функции, ограничители)
  • Понимание клиент-серверной архитектуры
Soft skills
  • Способность и желание обучаться
  • Проактивность в поиске решения задач
  • Умение формулировать и задавать вопросы
  • Способность спокойно относиться к критике
Responsibilities
  • Решение простых задач
  • Исправление некритичных багов
  • Следование принципам разработки ПО, принятым в компании
  • Обязательное прочтение рекомендованную литературу, описанную выше
  • Участие в Code review разработчиков выше
Tech skills
  • Базовые знания JS
    Базовые навыки HTML
    Умение пользоваться DevTools
  • Умение работать с DOM деревом (классы, селекторы, события)CSS
  • Базовый уровень знания
  • Блочная модель
  • Позиционирование
  • Layouts
  • Каскадность
  • Специфичность
  • Адаптивная верстка
  • Git - Базовые навыки (add, commit, pull, push, checkout)
Junior 1
Hard skills
  • Понимание что такое API в целом; и в частности: REST API и HTTP статусов
  • Умение работать по Gitflow
  • Умение дебажить код
  • Знание и применение базовых принципов ООП (Инкапсуляция, Наследование, Полиморфизм)
  • Умение писать unit test'ы
  • Базовые знания работы с БД (CRUD)
Soft skills
  • Умение уточнять задачу
  • Умение оповещать о проблемах
  • Умение распределять время
  • Умение исследовать проблему
Responsibilities
  • Решение типовых задач
  • Исправление багов
  • Следование составленному плану развития
Tech skills
  • Хороший уровень знаний - (HTML, CSS, JS)
  • Базовые знания протоколов HTTP (статусы ответов, методы запросов)
  • Придерживаться конвенции codestyle (Eslint)
  • Шаблонизаторы (Просто пример: Mustache, Handlebars, Pug....)
    CSS
  • preprocessors (SASS)
  • CSS methodologies (BEM, OOCSS, Utility First)
    Web Performance
  • Базовые знания оптимизации (сжатие картинок, шрифты, js, css)
    JavaScript
  • Умение писать асинхронный код (колбеки и промисы)
  • Умение пользоваться пакетным менеджером (npm)
    Vue
  • Базовые знания фреймворка Vue
  • Template/Props/Events/Watch/Computed
  • Life Cycle
    OOP
  • Encapsulation/Inheritance/Polymorphism
Junior 2
Hard skills
  • Умение понимать чужой код
  • Знание и применение SOLID, DRY, KISS
Soft skills
  • Не отнимать время команды однотипными вопросами
  • Самостоятельно анализировать проблемы и предлагать решения
Responsibilities
  • Правильно оценивать типовые задачи
  • Писать документации
Tech skills
  • Понимание рефакторинга и чистого кода. Принципы DRY, KISS. Например: https://refactoring.guru/ru/refactoring/what-is-re...
    HTML
  • доступность интерфейсов - a11y
  • семантика
  • SEO
  • Понимание принципов хранения данных на клиенте (сессия, куки, локал сторадже)
    JavaScript - Уверенные знания
  • ES5+
  • Closures
  • Context
  • Hoisting
    OOP
  • Patterns - Пример: Factory, Observer, Facade, Singleton, Template Method, Decorator, Proxy, Adapter, Strategy...
  • Composition over inheritance
    Git
  • reset, merge, log, diff
    Animations
  • Базовые CSS анимации
Junior 3
Hard skills
  • Проходить код ревью без больших переделок
  • Умение проводить рефакторинг кода
  • Умение писать интеграционные тесты
  • Базовые алгоритмы и структуры данных (алгоритмы сортировки, бинарный поиск)
Soft skills
  • Умение работать в команде
  • Хорошо знать и понимать бизнес-часть проекта
  • Понимание методологий разработки и планирования (Agile)
Responsibilities
  • Решать нетиповые задачи
  • Создавать новый функционал
Tech skills
  • Умение работать со state management библиотеками (Vuex)
  • Умение строить гибкие, независимые, переиспользуемые компоненты
  • Базовые знания языка программирования используемого бэкендом (PHP/Python/NodeJS)
    Test
  • Умение писать unit test'ы
    Webpack — Понимание принципов работы систем сборок
  • транспиляция
  • минимизация
  • оптимизация
    Алгоримты и Структуры данных
  • Big O
  • Binary Search
  • Functional Programming
  • Immutability
    Garbage Collector
  • Утечки памяти
    Docker
  • Понимание принципов работы
  • Умение пользоваться
  • docker-compose
    Security
  • XSS
  • CORS
  • Хранение данных
Middle 1
Hard skills
  • Умение применять паттерны проектирования
  • Улучшение кодовой базы (например, подключение шаблонизатора на весь проект, а не только на свою задачу)
  • Хорошие знания фреймворков, используемых в проекте (описаны в «Tech Skills»)
Soft skills
  • Самостоятельно общаться с другими командами, правильно решать проблему
  • Менторство
  • Понимание работы в команде, проактивность в улучшении процессов в командной работе
  • Выбор наиболее оптимального способа решения задачи
  • Участие на собеседованиях в роли интервьюера
  • Выступление на внутренних конференциях с докладами
Responsibilities
  • Поиск в code review слабых мест в коде
  • Решение сложных багов
  • Закрытие технического долга
Tech skills
JavaScript
  • Prototype
  • EventLoop
  • Proxy/Reflect
  • Generators
  • Symbol
UI/UX
  • Понимание принципов (удобно использовать на телефонах, состояния, помогать дизайнеру, учитывать пограничные случаи)
Git
  • revert
  • cherry-pick
  • reflog
  • rebase
  • interactive staging
Web Performance
  • Web Vitals: FCP, CLS, TTI, Lazy-loading
    Алгоритмы и Структуры данных
  • Linked List
  • Double Linked List
  • Stack/Queue
  • Hash Table
  • Merge/Quick/Insertion Sort
    TypeScript
  • Базовые типы
  • Generics
    Functional Programming
  • Higher Order Functions
  • Pure functions
    Tests
  • Умение писать unit test'ы на уверенном уровне (понимать где тесты нужны и для чего)
  • E2E
  • Integration
    Security
  • CSP
  • OWASP
  • xss
  • хранение данных
  • SPA, SSR, PWA (знать теорию)
Middle 2
Hard skills
  • Умение вносить доработки в код проекта с учётом нескольких проектов
  • Умение писать надёжный, расширяемый и тестируемый код
  • Умение выделять часто используемые фрагменты кода в библиотеки. Понимание и применение модульности
  • Углубленное понимание технологий, которые используются в проектах (описаны в «Tech Skills»)
Soft skills
  • Решать задачи, сложность которых растет, правильно их декомпозировать
  • Проверять задачи на соответствие целям ОКР и оценивать их приоритетность
  • Предлагать альтернативные технические решения для задач
  • Понимать бизнес составляющую каждой задачи
Responsibilities
  • Разработка библиотек, общих для продуктов компании
  • Ведение технической документации
  • Рефакторинг сложных/ответственных частей проекта
  • Профилирование, писать оптимизированный код
  • Своевременное информирование Team Lead/менеджера о возможных рисках
Tech skills
Web Performance
  • Понимание принципов работы современных веб-браузеров
  • Приоритетность загрузки
  • Следование best practices в оптимизации страницы
    OOP
  • SOLID
  • GRASP
  • Dependency Injection
    CI/CD
  • В случае необходимости может изменить, что нужно
  • Понимание принципов работы
    Vue
  • Уверенный уровень знания (реактивность, масштабируемость, понимать принципы работы фреймворка)
  • Mixins/HOC/Scoped Slots/Composition API
  • Reactivity
  • Provide/Inject
  • Render Functions
    TypeScript
  • Mapped types
  • Type Guard
  • Type Inference
  • ADT (product types / sum types)
    Functional Programming
  • Currying
  • Partial Application
  • Point Free style
  • Function composition
    Web Worker
  • разгрузка основного потока выполнения
    Garbage Collector
  • Базовое понимание когда высвобождается память
  • WeakRef/WeakMap/WeakSet
Middle 3
Hard skills
  • Кросс-командное проектирование архитектуры
  • Хорошие знания технологий, используемых в проекте (базы данных, поисковые решения, кэш — подробнее в «Tech Skills»)
Soft skills
  • Лидерство в задачах, где надо скооперировать несколько разработчиков или команд
  • Способность заменить тимлида и обеспечить продуктивное закрытие задач в его отсутствие
Responsibilities
  • Ликвидация факапов и аварий, выстраивание процессов, предотвращающих повторение таких ситуаций
  • Контроль тех. долга
  • Контроль ведения документации
Tech skills
  • Экспертный уровень знания JS (опыт от 3-х лет)
  • Экспертный уровень знания CSS (опыт от 3-х лет)
  • Опыт настройки CI/CD
    Web Performance
  • Измерение метрик
    Алгоритмы и Структуры данных
  • Tree
  • Graph
  • BFS/DFS
  • Dijkstra Algorithm
  • Dynamic Programming
    GraphQL
  • Syntax
  • Scalar Types
  • Query/Mutation
  • Fragments
  • Resolvers
  • State Management
  • Cache
  • n+1 problem (Data Loader)
    Functional Programming
  • ADT (Functor, Monad, Applicative)
    Service Worker
  • Кэширование
  • Проксирование запросов
    PWA
  • Native API
  • Offline
    Знания принципов работы JS движков (умение писать код, поддающийся оптимизации)
  • JIT
  • Мономорфные функции
  • Деоптимизация
  • Дырявые массивы
    Animations
  • Web Animations API
  • SVG Animations
Senior
Hard skills
  • Разработка архитектуры систем, хорошее понимание взаимодействия систем компании между собой
  • Принимать оптимальные технологические решения в проекте для бизнеса и команды
  • Отличные знания технологий, используемых в проекте (базы данных, поисковые решения, кэш — подробнее в «Tech Skills»)
Soft skills
  • Сфера влияния - вся компания
  • Внедрять успешные практики в компании (процессы, технологии)
  • Умение продавать идеи для улучшения продукта, процесса
  • Коммуникативные навыки на высоком уровне
  • Выступление на внешних конференциях
Responsibilities
  • Стейкхолдинг
  • Решать самые сложные баги связанные с системой либо сторонними библиотеками
  • Участие в развитии технического бренда
  • Настройка и отслеживание технических метрик и ошибок
Tech skills
  • Экспертный уровень знания JS и фреймворков используемых в команде (опыт от 3х лет)
  • Экспертный уровень знаний технологий используемых в проекте
  • Разработка архитектурных решений
  • Знания спецификации JS, HTML, CSS
  • Micro-frontentds
  • Имеет опыт использования различных технологий
  • Vue/Angular/React/Preact/Ember/Svelte/Lit Element
  • Имеет опыт использования различных подходов при решении одинаковых задач
  • Имеет опыт работы с разными транспортными слоями HTTP/Web Sockets/TCP/UDP
  • Имеет опыт взаимодействия с API различными способами REST/GraphQL/gRPC
  • Animations (WebGL)
  • CSS (Houdini)
    Web Components
  • Custom Elements, Slot, Template, Shadow DOM)
    Docker
  • Опыт контейнеризации небольших приложений
    Open Source
  • Изучает исходный код инструментов
  • Имеет OSS библиотеки
  • Создает issue
  • Contribution
    Visualization
  • D3
  • Three JS
    AST (Abstract Syntax Tree)
  • Умение работать с AST
  • Линтеры
  • Код Моды
Есть комментарии или вопросы по грейдингу?
Если считаете, что сработаемся, отправьте своё резюме
Как к вам обращаться
Как с вами связаться
Прикрепите резюме в формате DOC или PDF