##junior developer
- знает основы программирования на Objective C (Swift)
- программирует в Xcode
- знает основы git
- читал Mobile Human Interface Guidelines
- знает и использует базовые паттерны (MVC, делегаты, нотификейшены)
- знает что такое протоколы, делегаты, категории
- знает и использует основные элементы интерфейса (UIWindow, UIView, UINavigationBar, UIToolbar, UITabBarController)
- знает жизненный цикл UIView в UIViewController'е
- знает жизненный цикл приложения
##middle developer
- хорошо знает Objective C (Swift)
- хорошо разбирается в Xcode
- хорошо разбирается в git
- уверенно пользуется терминалом
- использует Cocoapods
- знает и использовал большенство элементов интерфейса
- знает что такое Rest API
- использует Core Data вместе с MagicalRecord и Mogenerator
- использует для запросов к серверу AFNetworking
- использует SDWebImage
- знает GCD
- использует Storyboards, Autolayout, Size Classes
- умеет создавать сертификаты разработчика, провижен профайлы
- умеет настраивать пушнотификации
- умеет настраивать инапы
- может выложить приложение в аппстор
- умеет архивировать проект и создавать .ipa файл
- знаком с сервисами дистрибуции приложений
- способен самостоятельно решать поставленные задачи
##senior developer
- отлично знает Objective C (Swift)
- отлично разбирается в Xcode
- знает Objective-C Runtime
- пишет тесты используя TDD/BDD
- использует OCMock при написании тестов
- может настроить Travis-CI
- пишет скрипты на bash
- знает основы java script, HTML
- умеет ставить задачи в проекте, четко их формулировать
- умеет объяснить технические детали неспециалистам (менеджерам, заказчикам)
- умеет объяснить какие требуются ендпоинты для приложения
- быстро осваивает новые незнамомые технологии
- быстро разбирается в чужем коде
- следит за чистотой кода в проекте
- знает следующиме фреймворки - AFNetworking, MagicalRecord, SDWebImage, SSKeychain, SVProgressHUD, BlocksKit, Reachability, RestKit, ReactiveCocoa, Mantle, NSData+Base64, MKStoreKit и др.
##lead developer
- может организовать работу команды в проекте
- отвечает за проект в котором работает
- может составить план работ в проекте и оценить по времени
- следит за новыми технологиями в мобильной разработке
- внедряет новые технологии в проектах
- делает презентации по новым технологиям
Я бы посоветовал конкретно описать либо немного подкорректировать, что мы подразумеваем под выражениями вроде: знает основы git, хорошо разбирается в git, хорошо разбирается в Xcode, знает основы программирования на Objective C (Swift), хорошо знает Objective C (Swift) и т.п.
К примеру можно описать так:
Я думаю, что в описании нужно смотреть ни как на требования, а как на список целей.
Еще бы объединил 2 строки:
в одну:
Я рекомендую такие названия, как пушнотификации и инапы писать по английски.
Для middle добавить:
Для senior можно:
Для lead соглашусь с Сергеем, что надо добавить больше пунктов, так как из 6 текущих пунктов в принципе 4 касаются остальных также.