Привет! Этот текст не просто вакансия, а рассказ о жизни нашего 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 и зубодробительный конкурсный кофе :)
Хочешь к нам? Присылай резюме и пример кода на rabota@livetyping.com или пиши Кристине в ТГ @ChristinaIT