Чем предстоит заниматься:
- управлять командой: нанимать людей, заниматься их развитием, взаимодействовать с подрядчиками, общаться с техническими специалистами клиента;
- управлять проектом: работать над устранением рисков совместно с руководителем проекта, валидировать требования, следить за сроками своих сотрудников, помогать им в них укладываться;
- валидировать требования; следить за сроками своих сотрудников, помогать им в них укладываться;
- программировать;
- взаимодействовать с командами Backend/MW, дизайнерами, проектировщиками, руководителями проекта и т.д.;
- следить за чистотой кода, прислушиваться к замечаниям на Сode-review, самому проводить Code-review;
- менторить менее опытных коллег;
- предлагать улучшения (как по коду и архитектуре, так и по процессам в целом);
- участвовать в регулярных встречах (Daily, Refinement, Demo, Retro, планирование спринта и пр.).
На что мы смотрим при общении с кандидатами:
- опыт программирования на Swift, Obj-c;
- опыт разработки iOS-приложений, работы с IDE XCode;
- знание платформы iOS и гайдлайнов Apple;
- опыт работы с Git, Gitlab, знание Gitflow;
- опыт проектирования архитектуры мобильного приложения;
- опыт проведения Code-review, знание основных инструментов и практик;
- опыт работы с Jira, Confluence;
- опыт работы с CI (gitlab, аналоги);
- умение разбираться в чужом коде;
- умение предлагать рациональные решения поставленных задач, инициативность;
- стремление к профессиональному росту‚ обязательность‚ ответственность;
- понимание жизненного цикла проекта;
- дружелюбие, адекватность, желание делать хорошо;
Наши технологии (они отличаются от проекта к проекту, знать все не обязательно :)
- верстка из кода (SnapKit), Auto Layout — знать, как рассчитываются конcтрейнты, знать нюансы, Storyboard — почему лучше использовать его, а не Xib; круто, если есть опыт на SwiftUI;
- жизненный цикл ViewController — что нужно вызывать в соответствующий метод ЖЦ;;
- многопоточность — GCD, RxSwift или Combine + опыт в Async/await;
- работа с сетью — знать, как работает URLSession, как распарсить JSON и когда применить Alamofire;
- ARC — сильные и слабые ссылки, знать про диспетчеризацию методов;
- знание языка Swift (5+) — какие есть коллекции, отличия структур от классов, когда что применять, умение работать с протоколами и покрывать ими код для уменьшения связности и улучшения тестируемости;
- работа с персистеностью — знать, где и как хранятся данные (Realm, CoreData, UserDefaults и т. д);
- DI — знать, для чего надо разносить код по модулям;
- SOLID — знать про принципы чистого кода;;
- тестирование — знать паттерн Given-When-Then, уметь работать с XCTest;
- архитектура — знать MVVM, MVP, VIPER и понимать, когда какую архитектуру применить;
- паттерны проектирования — уметь их применять там, где нужно..
Мы предлагаем:
- удаленку или офис — можно работать из любой точки мира или в нашем уютном офис-лофте на Петровке;
- возможность гибкого графика (default-time: 10-19, остальное обсуждаемо с командой);
- оформление в штат или по договорам ГПХ, с ИП, самозанятым;
- возможность поработать над приложениями, которыми пользуются сотни тысяч людей и, возможно, даже вы сами;
- профессиональную прокачку — работать предстоит в большой команде с людьми, имеющими самые разные компетенции;
- работу над вашим личным брендом (помогаем писать статьи и готовим к выступлениям на конференциях);
- участие в ежегодном забеге для ИТ-специалистов RUNIT;
- бесплатный доступ ко всем курсам, которые выпускает компания AGIMA (на платформах geekbrains, skillbox, otus и многие другие);
- обучение по профильным направлениям за счет компании;
- посещение профильных конференций за счет компании.