iOS разработчик
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Этот текст — не просто вакансия, а рассказ о жизни нашего iOS-отдела: о наших проектах, о технологиях, которые мы используем и о том, как мы строим нашу работу. Хочешь присоединиться? — наши контакты ждут тебя внизу страницы!
Команда
Мы занимаемся iOS-разработкой более 8 лет. Мы знаем, как доводить приложения до пользователей и поддерживать положительные отзывы в сторах. Аудитория наших решений — от 10к пользователей. С нами у тебя не возникнет вопросов, с чего начать сложный модуль, как исправить баг со сложной версткой или лагами загрузки данных — большинство проблем уже были решены нами и мы всегда подскажем тебе элегантное решение.
За последние годы мы построили систему развивающих митингов и процесс код-ревью. C каждым обновлением Swift или iOS SDK мы вместе обсуждаем, как доработаем код-стайл на наших проектах, и сообща ревьюим новые процессы, прежде чем их запускать — так было с код-ревью и нашим git-flow. У нас налажено сотрудничество с другими отделами, поэтому у тебя будет возможность влиять на проекты начиная с этапа проектирования.
Что мы делаем для развития команды?
Мы не только пишем код — каждую неделю в рабочее время мы проводим две встречи отдела:
— По средам просматриваем интересные статьи об iOS-разработке и разбираем прочитанные главы из книг. Среди книг, которые мы читаем и котируем — Expert Swift” от raywenderlich team, «Чистая архитектура» Роберта Мартина, «Погружение в паттерны» Александра Швец и «Objective-C 2.0» Мэтта Гэлловея.
— По пятницам практикуемся в разработке — собираемся и кодим всей командой. В нашем стеке все современные возможности Swift, в том числе SwiftUI.
А еще мы вместе смотрим WWDC и следующие несколько недель вместе разбираем материалы с неё.
Наш стек
У нас есть свой наработанный стек:
1. VIPER для объемных модулей с фичами и юнитами для тестирования бизнес-логики. Мы видим в вайпере надежный инструмент с тонкими интерфейсами и хорошей расширяемостью;
2. MVP/MVC для статичных экранов и диалоговых окон, собранных с помощью нашего router’a из вайпера, в которых не нужно плодить кучу классов и логики;
3. Слой работы с моделями приложения из инжектируемых сервисов, занимающихся каждый своим направлением, например, продуктами или сообщениями;
4. Слои работы с базой данных — Realm с оберткой на Rx для наблюдения за данными, реже CoreData
5. Самописный слой работы с интернетом с плагинами конфигураций для настройки работы с API любого вида
6. Множество расширений и наследуемых классов для того, чтобы писать код небольшими и удобочитаемыми файлами, используя декларативный подход
Мы изучили RxSwift и работаем с ним не только на уровне верстки и таблиц, но и обработки данных с сервера и записи/наблюдения над БД. При этом никто не запретит тебе не использовать Rx совсем: всё обсуждаемо. Для нас RxSwift это не золотой молоток — стек технологий на проекте мы определяем исходя из его специфики.
У нас есть линтер кода, есть процесс код ревью, код в большинстве современных проектов чистый. В некоторых проектах есть разделение приложений на фреймворки для увеличения скорости сборки билда, а также для переиспользования SDK приложения в iPadOS: мы планируем внедрить это повсеместно.
На наших проектах настроен CI/CD - система соберет билд и отправит сборку тестировщикам.
Какими технологиями мы пользуемся:
1. Язык программирования - Swift
2. Архитектуры - VIPER, MVP, MVC. Мы придерживаемся гибридного подхода: не используем громоздкие решения на простых экранах
3. Базы данных - Realm или CoreData
4. Общие принципы - декларативное программирование, однонаправленные или двунаправленные архитектуры на Input/Output интерфейсах или кложурах, реактивное программирование, сервисный слой, инверсия зависимостей, внедрение зависимостей
5. Работа с сетью - собственный движок конфигураций к сети из плагинов на Moya и Alamofire с возможностью подключения/отключения RxSwift
6. Верстка - SnapKit для простой верстки и фреймы для высоконагруженных вьюшек
7. Система контроля версий - git
8. Работа с ресурсами: R.swift
9. Код-стайл: Swiftlint
10. Код ревью: на каждом проекте
11. CI/CD - Bitrise c возможностью Enterprise/Testflight загрузки сборок
Наши проекты
У нас ты будешь работать со структурированными проектами с множеством модулей, разделенных на небольшие классы, с фреймворками с вынесенной работой с API и базой данных, чатами на сокетах, сложной версткой с прокруткой, кодогенерацией, NFC-метками, блютуз маячками, пушами, диплинками, картами с геоточками и кластеризацией, встроенными покупками, подписками, рекламой, обновлениями в бэкграунде и многим другим.
Мы не занимаемся только e-commerce приложениями, в которых сделан упор на продажу товаров: в нашем портфолио приложения для крупного бизнеса, не связанные с розничными продажами, и стартапы с довольными клиентами и пользователями.
Тебе интересно написать свою систему чатов с плавной версткой на сокетах?
Электронные замки, отпираемые NFC метками? Или, может, запилить систему лояльности для стартапа? А что насчёт приложения, взаимодействующего с железом, установленным в автомобиле? Или, может, тебе интересно написать e-commerce с нуля так, чтобы всё работало как часы и легко масштабировалось? Всё это ждёт тебя у нас, и проекты будут меняться: главная прелесть работы в аутсорсе это разнообразие!
Что тебе нужно будет делать:
— влиять на процесс разработки, бизнес-логику и требования: мы решаем важные вопросы проекта всей командой, и разработчики активно в этом участвуют
— вместе с дизайнерами оптимизировать UX приложений
— писать качественный, декларативный и хорошо читаемый код
— оценивать сроки выполнения задач
— давать экспертную оценку и технические консультации отделам маркетинга и продажам
— в ближайшие месяцы — изучать наш стек, участвовать в митингах iOS-отдела
Чего мы ожидаем от тебя:
— опыт мобильной разработки под iOS от 1 года (если ты занимался не коммерческой разработкой, а делал свой pet project — это подойдет)
— программируешь на Swift
— понимаешь архитектуры, отличные от MVC
— опыт работы с базами данных
— умеешь создавать сертификаты provisioning profile в apple.developer.center
— уверенно работаешь с git
— пишешь чистый и хорошо читаемый код
— хочешь изучать и пробовать новое в работе
Будет плюсом, если у тебя есть:
— теоретические знания в Code Science
— теоретические знания о паттернах iOS-разработки
— опыт работы с Xcode Instruments (профилировщик, поиск утечек памяти)
— знание Objective-C
Бонусы
Мы предлагаем:
— белую зарплату от 100 до 150 тысяч рублей в зависимости от твоего опыта и навыков;
— участие в регулярных развивающих митингах команды iOS-отдела;
— руководителей проектов, которые заботятся о том, чтобы разработчик фокусировался на написании кода: ставят понятные задачи с полным контекстом, берут на себя коммуникацию с клиентом и добиваются всего, что нужно, чтобы твоя работа была «бесшовной»;
— компенсацию 50% расходов на профессиональные обучения и курсы, занятия спортом и английским языком, медицинские расходы;
— не работаем под трекер: не признаем скриншотов рабочего стола, отслеживаний движений мыши и количества набитых на клавиатуре символов;
— гибкий график и возможность работать из дома: офис открыт с 09:30 утра и до позднего вечера, работай где и когда тебе удобно;
— отдых по федеральным праздникам, больничные по закону, если болеешь не сильно — можно поработать пару дней из дома без больничного;
— performance review: ты регулярно будешь получать фидбек от тиммейтов и узнавать о своих зонах развития;
— магию дружбы Лайв Тайпинг: мы вместе ходим в походы, в кино, на пляж, играем в волейбол и футбол, каждую пятницу тусим в офисе или в барах на Ленина (пруфы — в нашем паблике и инстаграмах нашей команды :D);
— уютный офис в историческом центре Омска (с нас экскурсия после интервью :3);
— многоуровневый юмор, перезапускающий мыслительный процесс;
— внутренние мероприятия с мастер-классами и докладами;
— доступ к библиотеке профессиональной и бизнес-литературы. Если тебе будет нужна профильная книга — мы купим её для тебя;
— психоактивный рекреационный чай от HR и зубодробительный конкурсный кофе :)