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

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

Что мы делаем

В работе в нашей компании можно выделить одну интересную деталь - мы разрабатываем и поддерживаем сразу 4 мобильных приложения - Авиата Авиа, Авиата ЖД, Чокотревел и Чокотревел B2B. И не смотря на то, что все ios разработчики сосредоточены в разных командах, им часто приходится решать комплексные задачи. Это может быть последовательное внедрение одинаковой фичи в разные приложения, либо создание общих компонентов, например, модуль бронирования. Такой подход позволяет постоянно обмениваться опытом и навыками, внедрять во все продукты самые новые и крутые технологии, принимать правильные решения и развиваться всем программистам без исключения. Важно заметить, что никто не диктует разработчикам как и что нужно делать - все вопросы решают сами программисты, устраивая brainstorming сессии.

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

    Наш стек
    - Языки: Swift/Objective-С
    - Фреймворки и библиотеки: URLSession, Alamofire, SDWebImage, Firebase, App Metrica и приватные pod'ы (NetworkKit, ExtensionKit, AnalyticsKit)
    - MVVM + FlowController (Coordinator)
    - Линтер: SwiftLint
    - Codable

    Рекомендованная литература и ресурсы:
    - Документация Swift: Documentation
    - Документация Objective
    - C: Introduction
    - Документация iOS SDK: Apple Developer Documentation
    - Lab sessions: Design and Development Videos
    - API Design Guidelines: API Design Guidelines

    Рассылки:
    - iOS Dev Weekly (Eng)
    - AppTractor (Rus)
    - iOS Dev Directory

    Книги:
    - Чистый код. Боб Мартин
    - iOS & Swift Tutorials | raywenderlich.com
    - objc.io
    Предлагаем взамен

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

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

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

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

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

    Грэйдинг IOS-разработчиков
    Intern
    Hard skills
    • Базовые знания языка программирования (переменные, операторы, функции, ограничители)
    • Понимание клиент-серверной архитектуры
    Soft skills
    • Способность и желание обучаться
    • Проактивность в поиске решения задач
    • Умение формулировать и задавать вопросы
    • Способность спокойно относиться к критике
    Responsibilities
    • Решение простых задач
    • Исправление некритичных багов
    • Следование принципам разработки ПО, принятым в компании
    • Обязательное прочтение рекомендованную литературу, описанную выше
    • Участие в Code review разработчиков выше
    Tech skills
    • Базовые знания Swift/Objective-C (синтаксис: классы, функции, циклы, переменные, типы данных, control flow, exception handling)
    • Базовые знания верски (interface builder)
    • Базовые знания БД (основные понятия БД: таблицы, записи, базовые SQL запросы [теория])
    • Базовые знания в Git
    • Базовые знания IOS(UIKit)
    • Базовые знания ООП(определние постулатов)
    Junior 1
    Hard skills
    • Понимание что такое API в целом; и в частности: REST API и HTTP статусов
    • Умение работать по Gitflow
    • Умение дебажить код
    • Знание и применение базовых принципов ООП (Инкапсуляция, Наследование, Полиморфизм)
    • Умение писать unit test'ы
    • Базовые знания работы с БД (CRUD)
    Soft skills
    • Умение уточнять задачу
    • Умение оповещать о проблемах
    • Умение распределять время
    • Умение исследовать проблему
    Responsibilities
    • Решение типовых задач
    • Исправление багов
    • Следование составленному плану развития
    Tech skills
    • Хороший уровень знаний Objective-C/Swift (protocol, delegation, value and reference types, access modifiers)
    • Понимание что такое API и в частности REST API и HTTP статусов
    • Умение работать с парсингом данных (JSONSerialization, Codable)
    • Умение верстать в коде
    • Знание dependency managment (ex: CocoaPods )
    • Базовые навыки в Git
    • Базовые знания мультипоточности(concurrency)
    • Базовое понимание шаблонов проектирования (MVVM, MVC)
    • Умение работать с БД(plist, NSKeyedArchiver)
    Junior 2
    Hard skills
    • Умение понимать чужой код
    • Знание и применение SOLID, DRY, KISS
    Soft skills
    • Не отнимать время команды однотипными вопросами
    • Самостоятельно анализировать проблемы и предлагать решения
    Responsibilities
    • Правильно оценивать типовые задачи
    • Писать документации
    Tech skills
    • Понимание жизненных циклов основных UI компонентов (AppDelegate,
      UIViewController lifecycle )
    • Навигаций (UINavigationController, push/pop методы,segue, present/dismiss )
    • Анимаций (UIView.animate())
    • Autolayout (constraints), UIStackView, Frame
    • Умение писать мультипоточный код (GCD, Main, Background, async)
    • Умение дебажить HTTP запросы/ответы (статусы (200, 400, 500))
    • UITableView, UIScrollView, UICollectionView (разница между ними, где какой использовать)
    Junior 3
    Hard skills
    • Проходить код ревью без больших переделок
    • Умение проводить рефакторинг кода
    • Умение писать интеграционные тесты
    • Базовые алгоритмы и структуры данных (алгоритмы сортировки, бинарный поиск)
    Soft skills
    • Умение работать в команде
    • Хорошо знать и понимать бизнес-часть проекта
    • Понимание методологий разработки и планирования (Agile)
    Responsibilities
    • Решать нетиповые задачи
    • Создавать новый функционал
    Tech skills
    • Умение верстать простой, но масштабируемый layout (xib, custom views, advanced autolayout)
    • Знание и понимаение разных шаблонов проектирования (умеет реализовать проект хотя бы на одном из широко известных шаблонов)
    • Понимание design patterns (Facade, Decorator, Strategy)
    • Понимание разницы между Порождающие, структурные и поведенческие паттерны (теория)
    • Умение интегрировать сторонние сервисы (Crashlyitcs, Analytics, Remote database)
    • Понимание A/B тестирования
    • Умение писать простые unit тесты
    • Понимание работы Push уведомлений (Firebase Cloud messaging)
    Middle 1
    Hard skills
    • Умение применять паттерны проектирования
    • Улучшение кодовой базы (например, подключение шаблонизатора на весь проект, а не только на свою задачу)
    • Хорошие знания фреймворков, используемых в проекте (описаны в «Tech Skills»)
    Soft skills
    • Самостоятельно общаться с другими командами, правильно решать проблему
    • Менторство
    • Понимание работы в команде, проактивность в улучшении процессов в командной работе
    • Выбор наиболее оптимального способа решения задачи
    • Участие на собеседованиях в роли интервьюера
    • Выступление на внутренних конференциях с докладами
    Responsibilities
    • Поиск в code review слабых мест в коде
    • Решение сложных багов
    • Закрытие технического долга
    Tech skills
    • Умение писать Unit тесты
    • В курсе Clean Architecture (VIPER)
    • Push уведомлений (APNS)
    • Базовый уровень работы с CoreData
    • Базовые знания реактивного программирования
    • Умение использовать схемы, таргеты в x-code
    • Наличие опыта реализации одной или двух архитектурных решений
    • Умение проектировать масштабируемый/реюзабельный код/UI компоненты
    • Уверенное владение git'ом
    • Memory Management
    • Protocol Oriented Programming
    • Generics
    • Routing
    • Realm, Magic Record
    Middle 2
    Hard skills
    • Умение вносить доработки в код проекта с учётом нескольких проектов
    • Умение писать надёжный, расширяемый и тестируемый код
    • Умение выделять часто используемые фрагменты кода в библиотеки. Понимание и применение модульности
    • Углубленное понимание технологий, которые используются в проектах (описаны в «Tech Skills»)
    Soft skills
    • Решать задачи, сложность которых растет, правильно их декомпозировать
    • Проверять задачи на соответствие целям ОКР и оценивать их приоритетность
    • Предлагать альтернативные технические решения для задач
    • Понимать бизнес составляющую каждой задачи
    Responsibilities
    • Разработка библиотек, общих для продуктов компании
    • Ведение технической документации
    • Рефакторинг сложных/ответственных частей проекта
    • Профилирование, писать оптимизированный код
    • Своевременное информирование Team Lead/менеджера о возможных рисках
    Tech skills
    • CoreData - Concurrency(Понимать когда нужно использовать multiple contexts), Memory Efficiency
    • Ci/CD, автоматизация билдов, знания и применение тулзов(FastLane)
    • Умение выносить написанный код в модуль
    • Умение писать UI тесты
    • Понимание принципы разработки на других платформах(Android, Kotlin Multiplatform)
    • Знание различных архитектурных решений, минусы и плюсы, умение принимать оптимальное решение
    • Умение применять Clean Architecture (VIPER)/VIP Cycle(Clean Swift)
    • Умение применять MVVM + Coordinator + Swinject
    • Знание различных методологий имплементации многопоточности и понимание отличий между ними(GCD, OperationQueues)
    • Умение собирать фреймворки(Cocoapods)
    • Понимание принципов функционального программирования
    • Умение работать с библиотеками реактивного программирования(RXSwift, ReactiveCocoa)
    • Умение работать с PromiseKit
    Middle 3
    Hard skills
    • Кросс-командное проектирование архитектуры
    • Хорошие знания технологий, используемых в проекте (базы данных, поисковые решения, кэш — подробнее в «Tech Skills»)
    Soft skills
    • Лидерство в задачах, где надо скооперировать несколько разработчиков или команд
    • Способность заменить тимлида и обеспечить продуктивное закрытие задач в его отсутствие
    Responsibilities
    • Ликвидация факапов и аварий, выстраивание процессов, предотвращающих повторение таких ситуаций
    • Контроль тех. долга
    • Контроль ведения документации
    Tech skills
    • Экспертный уровень знания Objective-C/Swift (опыт до 3х лет)
    • Экспертный уровень знания iOS
    • Знания микросервисной архитектуры
    • Наличие опыта реализации различных архитектурных решений (MVVM, MVP, MVI и тд)
    Senior
    Hard skills
    • Разработка архитектуры систем, хорошее понимание взаимодействия систем компании между собой
    • Принимать оптимальные технологические решения в проекте для бизнеса и команды
    • Отличные знания технологий, используемых в проекте (базы данных, поисковые решения, кэш — подробнее в «Tech Skills»)
    Soft skills
    • Сфера влияния - вся компания
    • Внедрять успешные практики в компании (процессы, технологии)
    • Умение продавать идеи для улучшения продукта, процесса
    • Коммуникативные навыки на высоком уровне
    • Выступление на внешних конференциях
    Responsibilities
    • Стейкхолдинг
    • Решать самые сложные баги связанные с системой либо сторонними библиотеками
    • Участие в развитии технического бренда
    • Настройка и отслеживание технических метрик и ошибок
    Tech skills
    • Экспертный уровень знания Objective-C/Swift (опыт от 3х лет)
    • Экспертный уровень знания iOS
    • Разработка архитектуры решений
    • Разработка системы мониторинга решений
    Есть комментарии или вопросы по грейдингу?
    Если считаете, что сработаемся, отправьте своё резюме
    Как к вам обращаться
    Как с вами связаться
    Прикрепите резюме в формате DOC или PDF