«Практически любую идею можно превратить в продукт»: сколько зарабатывает ведущий iOS-разработчик

В американском стартапе
29
«Практически любую идею можно превратить в продукт»: сколько зарабатывает ведущий iOS-разработчик
Аватар автора

Ксения Донская

разработала вопросы

Страница автора

Читатели продолжают делиться с нами историями о своих профессиях.

В iOS-разработку Федора привела любовь к экосистеме Apple и идея собственного приложения для фото. Специальность он освоил самостоятельно и теперь работает в американском финтех-стартапе. Федор рассказал, с чего начинал погружение в профессию, почему он ценит менторов и как работается в команде, которая разбросана по часовым поясам.

Это история из Сообщества. Редакция задала вопросы, бережно отредактировала ее и оформила по стандартам журнала.

Выбор профессии

Аватар автора

Fedor Prokhorov

кодит в коворкинге

Страница автора

Я окончил Санкт-Петербургский государственный университет промышленных технологий и дизайна по направлению «информатика и вычислительная техника». Выбрал его, так как хотел углубиться в ИТ-сферу, познакомиться с разными специальностями, понять, в каком направлении развивать карьеру. Альтернативы, конечно, рассматривал. В Санкт-Петербурге есть ИТМО — очень сильный университет, который известен на весь мир. Но подавать туда документы не стал: из-за ЕГЭ по физике моих баллов не хватило бы для поступления. Кроме того, не хотелось уходить в ИТ с головой и полностью посвящать себя учебе.

Моя специальность называется «автоматизированные системы обработки данных и управления». Впечатления от университета остались смешанные: были абсолютно скучные предметы — чаще всего из-за подачи преподавателя, были интересные, которые вели компетентные классные люди. К таким относятся, например, машинное обучение, веб-разработка, 3D-моделирование, цифровой дизайн и цифровая обработка изображений. Все эти курсы повлияли на меня в той или иной степени. Еще мне нравилась экономика.

Практик в компаниях у нас не было, но были курсовые и лабораторные работы, где нужно было писать код, что-то придумывать.

Первые три курса я присматривался, искал что-то интересное в том, что нам преподавали. Параллельно с учебой следил за мировыми трендами и рынком ИТ, смотрел, какие специалисты востребованы, сколько они зарабатывают.

За год до окончания университета начал самостоятельно изучать iOS-разработку. Сам я был и остаюсь пользователем экосистемы Apple, и мне просто стало интересно: ведь кто-то же разрабатывает мои любимые iOS-приложения, а как я могу это сделать? Кроме того, у меня появилась идея создать собственное приложение для креативной обработки фотографий. Его, кстати, я впоследствии использовал как проект для дипломной работы.

При изучении я в основном пользовался официальной документацией от Apple, начал с языка Swift. Его я бы охарактеризовал как язык с очень доступным синтаксисом, вначале это все похоже на такой технический английский. Правильно написанные функции читаются легко, будто обычная английская фраза. Еще один плюс — строгая типизация. Если говорить простыми словами, всегда ясен контекст, с каким типом данных сейчас идет работа. Это опенсорс-язык: можно перейти на GitHub в репозиторий Swift, посмотреть, как он написан, над чем сейчас работает комьюнити, и при желании и должных навыках поучаствовать в его развитии.

После Swift изучал библиотеки для работы с UI — пользовательским интерфейсом, тоже в основном по официальной документации. Если что-то было непонятно, гуглил или искал на «Ютубе». Кстати, сейчас Apple уделяет больше внимания обучению iOS-разработке, чтобы как можно больше специалистов разрабатывали именно для ее платформ. Совсем недавно вышел курс по разработке интерфейсов на 14 часов. Для начинающих это очень полезный материал.

К курсам, где обучают iOS-разработчиков, я отношусь неплохо, но мне ближе концепция менторства.

Это когда у начинающего разработчика есть наставник — опытный специалист. Если бы я сейчас начинал изучать разработку, то пошел бы по этому пути. Менторство — это всегда про живой диалог, про обмен опытом, ты учишься взаимодействовать с другим разработчиком, использовать новую терминологию. Плюс каждый разработчик — это в первую очередь человек, со своей индивидуальностью, темпом изучения и восприятием информации. На курсах может не повезти с преподавателем, и с этим вряд ли можно будет что-то сделать. Еще один плюс менторства — в нетворкинге: если делать успехи, наставник обязательно зареферит вас на работу или просто приведет в комьюнити.

За пару недель до вручения диплома я устроился на свою первую работу в качестве iOS-разработчика. Вакансию нашел на «Хедхантере», сделал тестовое задание — нужно было разработать небольшое приложение, которое отображает данные из API. И меня взяли. Тогда мне было 22 года, начал я с зарплаты 50 000 ₽ в месяц.

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

За четыре с половиной года я поработал в трех компаниях. К переменам меня каждый раз подталкивало желание расти: больше получать, приобретать новый опыт, заниматься разными проектами. Внутри компании мне чаще всего повышали зарплату на 10—15%, обычно несколько раз за время работы. При смене места всегда хотел удваиваться.

Каждая компания была уникальна по размеру, структуре и специфике. Я разрабатывал дополненную реальность, затем работал в большой финтех-компании, потом перешел в финтех-стартап. Начал чуть больше двух лет назад с 20 часов в неделю, плавно перешел на фултайм, потом — на позицию ведущего iOS-разработчика.


Суть профессии

Моя профессия предполагает разработку приложения, его поддержку и обеспечение стабильной работы. Дизайн обычно нам предоставляет команда UI/UX-дизайнеров.

В работе мы ориентируемся на общие требования, которые нужно соблюдать, чтобы опубликовать приложение в App Store. Иначе его могут снять с публикации для исправления ошибок — это в лучшем случае, в худшем — перманентный бан аккаунта разработчика, с которого оно публиковалось.

Критерии хорошего приложения — стабильная предсказуемая работа без вылетов и неожиданных ошибок, интуитивно понятный и доступный UI — чтобы, допустим, не возникало проблем у людей с нарушением или полным отсутствием зрения.

Как правило, у iOS-разработчиков бывает специализация: благодаря разным проектам приобретаешь специфические знания и навыки. Например, у меня есть опыт с дополненной реальностью, я знаю тонкости разработки продуктов в финтехе и в целом понимаю эту сферу. Но обычно весь этот багаж ложится поверх фундамента базовых знаний в iOS-разработке. Это, например, понимание того, как работает iOS, жизненный цикл iOS-приложения, работа с жестами, верстка интерфейса, многопоточность, взаимодействие с сервером. Специфические знания, конечно, нужны, но первоочередное значение имеет этот фундамент.

Часто начинающие специалисты изучают разработку и накапливают опыт, создавая небольшие приложения самостоятельно. Это может быть, например, список дел, погода, трекер стоимости акций. Но если речь о бизнесе, о разработке настоящего продукта для компании, тут гораздо реже встречаются команды, где всего один разработчик. Для компании это риск: человек может уволиться, заболеть — и процесс на время остановится. Также это связано с производительностью и качеством работы такой команды над комплексным приложением.

На своем первом месте я около года был единственным iOS-разработчиком. Затем ко мне присоединились еще пара специалистов — как раз история была про то, что приложение становилось более сложным.

Сейчас я как ведущий iOS-разработчик отвечаю за все, что происходит с мобильным приложением нашей компании на каждом этапе:

  • Прием задачи на разработку. От продуктовой команды поступает описание задачи и дизайн-макеты, я формулирую это описание в технической плоскости, отсматриваю макеты и планирую, какие элементы UI буду разрабатывать. Часто на этом этапе мы с продуктовой командой обсуждаем какие-то детали, макеты. Последние иногда возвращаются команде UI/UX-дизайнеров для доработки.
  • Когда все вопросы сняты и макеты больше не требуют уточнений, оцениваю, сколько времени уйдет на разработку и когда задача будет отдана на тестирование.
  • Далее начинается сама разработка, после разработки пишу тесты.
  • Передаю билд — сборку приложения — с новой функциональностью QA-команде, которая выявляет баги.
  • Исправляем баги, которые обнаружила команда QA.
  • После разработки всех необходимых продуктовых задач для новой версии в App Store собираю финальный билд, который вновь передаю команде QA для повторного тестирования.
  • После одобрения QA-командой билд отправляется на проверку в App Store. Иногда команда тестировщиков из App Store может не пропустить его, тогда нужно с ними пообщаться и исправить вещи, на которые они указали.

Работы добавляет выход новых версий iOS. Чаще всего это чисто технические задачи, так как появляются и новые версии библиотек, которые мы используем в разработке. Кроме этого, с выходом новых версий что-то ломается на старых, и нам нужно исправлять ошибки для пользователей конкретной операционной системы.

Иногда новые версии iOS привносят новые возможности для продукта. Допустим, виджеты, которые появились в системе, позволяют придумывать функциональность, которая ранее была невозможна.

На техническую часть, разработку и прочее уходит 60—70% моего времени. Также в мои обязанности входит менеджмент iOS-команды. Я готовлю требования и задачи для разработчиков — у нас их трое, распределяю эти задачи таким образом, чтобы у всех была примерно одинаковая нагрузка на спринт, рабочую неделю. Также у меня бывают брейнштормы с бэкенд- и Android-командами, коммуникация с бизнесом.

Моя работа напрямую влияет на успех компании, поскольку основной ее продукт — это мобильное приложение. Раньше у него была своя модель монетизации — подписки и разовые покупки, но совсем недавно от нее решили отказаться, сейчас ищут новую.

Также моя работа влияет на развитие и мотивацию команды — в мои задачи входит еще и некая менторская роль. Минимум раз в месяц с каждым разработчиком из команды мы проводим встречу один на один, где даем друг другу фидбэк, выявляем боли, решаем, что с этим делать, обсуждаем зарплату и все в таком духе.

События прошлого года мою работу не изменили.

Но я заметил несколько перемен в отрасли.

Во-первых, много никак не связанных с ИТ людей захотели попробовать себя в этой сфере и начали очень активно ее изучать.

Во-вторых, релокация сейчас стала одним из практически обязательных условий для соискателей. Причем это работает в обе стороны: компании хотят видеть сотрудников за пределами России, а сотрудники хотят, чтобы компания перевезла их.

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

Больше всего в профессии iOS-разработчика мне нравится то, что ты владеешь инструментами и ресурсами, благодаря которым можно превратить практически любую идею в продукт и быстро увидеть результат. Конечно, мы работаем в закрытой экосистеме Apple, но я бы не сказал, что это сильно ограничивает. К тому же при большом желании можно развиваться и в смежных областях.

Но негативные и трудные моменты, конечно, есть. Меня сильно огорчают непроработанные задачи: неясные или неинтересные, на мой взгляд, требования от продуктовой команды, плохо спроектированные или противоречащие дизайн-макеты. Моя компетенция и черты характера позволяют зачастую такие моменты сглаживать: прошу что-то доработать, задаю наводящие вопросы и так далее.

Безусловно, есть и влияние на здоровье. У меня проблем со зрением нет, но на всякий случай я купил себе специальные очки для работы за компьютером, которые снижают яркость экрана, увеличивают контрастность изображения и отрезают вредную синюю составляющую видимого спектра. Сидячая работа плохо влияет на позвоночник, можно и вес лишний набрать, если совсем себя запустить. Избежать этих проблем позволяет активный образ жизни и регулярные занятия спортом.

Важно обращать внимание и на психическое здоровье. Часто разработчики выгорают, и совершенно ничем не хочется заниматься. Поэтому необходимо следить за балансом между работой и личной жизнью.

Место работы

Последние два года я работаю в американском финтех-стартапе. Наш продукт — это трейдинг с элементами социальных механик, основная аудитория — зумеры в Штатах. Большинство коллег работают удаленно из разных точек мира, управление и основатели — из США.

Рабочий язык у нас английский. В целом я бы не сказал, что iOS-разработчикам обязательно его знать, но, например, вся официальная документация, все сервисы, библиотеки в 99% случаев на английском языке.

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

Сотрудникам помогают с релокацией, если это требуется, выплачивают материальную помощь при переезде.

Я живу в Стамбуле и арендую место в коворкинге. Дома много отвлекающих факторов: хочется поесть, почитать, выйти за кофе, сходить на тренировку, да что угодно, главное — не работать. В итоге задачи, которые можно сделать за пару часов, размазываются на весь день. В коворкинге я ловлю нужный фокус и очень хорошо перформлю. Кроме того, мне нравится, что на обеде или за кофе можно познакомиться и пообщаться с людьми из совершенно разных сфер и стран.

1/2

Рабочий день

Я начинаю рабочий день в среднем между 09:00 и 10:00, к этому времени приезжаю в коворкинг, наливаю фильтр-кофе и открываю ноутбук.

Вот как может выглядеть мой понедельник.

10:00. Захожу в GitHub, где находится наша канбан-доска с колонками to do, in progress и done, в каждой из них — задачи. Отсматриваю актуальные, проверяю, что в работе у других разработчиков моей команды.

10:15. Смотрю pull request от других разработчиков, если они есть.

Pull request — это механизм, с помощью которого разработчик уведомляет участников команды о том, что он подготовил какую-то функциональность. Дело в том, что он работает не над основным кодом приложения, а, скажем так, в своей копии кода. И когда все готово, создает запрос на добавление этого нового кода в общую кодовую базу.

Провожу код-ревью. Это проверка нового кода перед его объединением с основной кодовой базой приложения. Условно: разработчик написал новый код, создал pull request, другие разработчики проверяют его, оценивают качество, ищут ошибки. Чтобы добавить новый код в основной, необходимо получить от других разработчиков одобрение — апрувы. В нашем проекте нужно два апрува.

Соответственно, я проверяю качество кода, какие-то pull request апрувлю, где-то оставляю комментарии об исправлениях.

11:00. Приступаю к разработке своих задач. Сейчас я полностью занят трейдинговой функциональностью: покупкой и продажей акций и криптовалют, портфелем пользователя, открытием счета, KYC.

12:00. Созвон с iOS-командой, где мы разбираем текущие задачи, обсуждаем pull request. Также на этой встрече актуализируем статусы по задачам, разбираем трудности при разработке. Если появляются вопросы по дизайну и другим областям, которыми занимаются смежные команды, принимаем решения о дополнительных созвонах с ними. На этой встрече также часто присутствует QA-команда: обсуждаем свежие баги, которые они выставили и мы еще не взяли в работу.

13:00. Возвращаюсь к разработке.

Раз в неделю в это время мы созваниваемся с лидом бэкенд-команды, чтобы пройтись по предстоящим задачам, обсудить дизайн API — интерфейса, через который мобильное приложение коммуницирует с сервером.

14:00—15:00. Отправляюсь на обед.

1/2

15:00—18:00. Разработка. Бывают какие-то запланированные или стихийные встречи.

В общей сложности получается обычный восьмичасовой рабочий день.

19:00—20:00. В связи с тем, что продуктовая команда в Сан-Франциско, выхожу еще на пару звонков — уже из дома. В нашем стартапе очень здоровая атмосфера, если так можно выразиться. Коллеги из Штатов прекрасно понимают разницу часовых поясов, мы выстроили процессы так, чтобы было комфортно всем. Поэтому, например, созвонов глубокой ночью у нас быть не может. На встрече присутствуют Chief Technical Officer — технический директор, Chief Product Officer — директор продукта и руководители команд разработки — бэкенда, iOS, QA. Мы обсуждаем успехи и неудачи прошлой недели и получаем запрос от бизнеса — по каким задачам хочется продвинуться за эту.

Подработки

Найти подработку просто, опытный разработчик на полставки всегда где-то нужен. Подойдут любые всем известные ресурсы для поиска работы, просто стоит обращать внимание на возможность частичной занятости. Также хочу заметить, что ИТ — это в том числе и про комьюнити. Большинство моих знакомых из этой сферы так или иначе делают какие-то свои проекты, поэтому нетворкинг здесь тоже может помочь.

Но я сделал вывод, что подработка подходит не всем, так как все время приходится переключаться между контекстами разных проектов, что непросто. На коротком отрезке времени, если хочется накопить быстро какую-то сумму или просто поучаствовать, это хорошая возможность.

На длительной дистанции есть риск быстро выгореть и перестать приносить пользу вообще на всех проектах.

В течение трех-четырех месяцев я работал восемь часов на основной работе и четыре часа — в том самом стартапе, где я сейчас. Возможно, при правильной оптимизации времени и фокусе можно долго продержаться в таком режиме, но у меня не вышло. Случилось выгорание — ощущение полной потери контроля над своей жизнью. Тогда я ушел с основной работы и остался парт-тайм в стартапе. Проводил много времени на свежем воздухе, гулял, занимался спортом. А после того, как отдохнул, перешел на полный день.


Доходы и расходы

Будучи компетентным разработчиком с опытом от четырех лет, можно зарабатывать около 250 000—300 000 ₽.

Моя зарплата — 4200 $⁣ (289 621 ₽), это мой основной доход.

Изредка участвую в проектах как разработчик или просто консультирую. Точную сумму тут сказать сложно, это очень ситуативная история. Есть моя часовая ставка на основной работе: месячная зарплата, разделенная на 22 дня и на восемь часов, — 25 $⁣ (1770 ₽). Ее я называю первой, стараюсь, чтобы мне платили как минимум не меньше.

Есть небольшой доход от инвестиций, но ситуация на рынке может моментально его обнулить. Основа моего портфеля — это ИТ-сектор, зарубежные бумаги. Небольшую сумму — 50 $⁣ (3448 ₽) — я ежемесячно вкладываю в крипторынок. Именно в рынок — я не энтузиаст какой-то конкретной монеты, да и не особо интересно за ними следить в отдельности, инвестирую в самые популярные на текущий момент. В целом вижу в крипте большие перспективы.

Чтобы зарабатывать больше, нужно определиться с тем, насколько хочется увеличить зарплату и как быстро. Если на 15—30%, то это реально сделать при пересмотре зарплаты на текущем месте работы. От 30 и до 50—60% — можно попробовать устроиться парт-тайм на другой проект. Все, что выше, — это переход в другую компанию, для этого нужно готовиться, развивать навыки, повышать компетенции. Их комбинация зависит от того, куда хочешь устроиться: на каждой позиции есть своя специфика и технологии, которые надо знать на хорошем уровне. Например, если речь о FAANG — Meta (ex Facebook), Apple, Amazon, Netflix, Google, — нужно повышать экспертность в Computer Science, в алгоритмах и структурах данных.

В принципе, разработчик может получать сколько угодно, тут все зависит от компании и компетенций.

Самая большая зарплата у разработчика, о которой я знаю, — порядка миллиона рублей в месяц. Но это совсем не говорит о том, что этот разработчик в десять раз умнее разработчика с зарплатой 100 000 ₽. Все очень ситуативно.

Расходы до 2245 $⁣ (158 952 ₽)

Квартира800 $⁣ (55 166 ₽)
Увлечениядо 500 $⁣ (34 479 ₽)
Продуктыдо 300 $⁣ (20 687 ₽)
Одежда и обувьдо 333 $⁣ (22 963 ₽)
Транспорт150 $⁣ (10 344 ₽)
Коворкингдо 162 $⁣ (11 250 ₽)

Расходы до 2245 $⁣ (158 952 ₽)

Квартира800 $⁣ (55 166 ₽)
Увлечениядо 500 $⁣ (34 479 ₽)
Продуктыдо 300 $⁣ (20 687 ₽)
Одежда и обувьдо 333 $⁣ (22 963 ₽)
Транспорт150 $⁣ (10 344 ₽)
Коворкингдо 162 $⁣ (11 250 ₽)

По ощущениям, в Стамбуле жизнь в полтора раза дешевле, чем в Петербурге. Арендую квартиру за 800 $⁣ (55 166 ₽), на продукты трачу 200⁠—⁠300 $⁣ (13 791⁠—⁠20 687 ₽) — могу отдельно отметить фрукты и овощи хорошего качества по очень приятным ценам.

До 500 $⁣ (34 479 ₽) уходит на увлечения и развлечения: зайти в ресторан, кофейню — очень люблю спешелти-кофе, купить домой что-то красивое, сходить в музей или просто погулять, съездить куда-нибудь. Сюда же включаю книги, месячные платежи за разные сервисы и прочее.

На транспорт идет до 150 $⁣ (10 344 ₽). Это если очень редко ездить на общественном и очень часто — на такси.

На одежду и обувь тратится 500⁠—⁠1000 $⁣ (34 479⁠—⁠68 957 ₽) раз в три-четыре месяца.

Коворкинг обходится примерно в 500 ₽ за день, бываю там от трех до пяти в неделю.

1/2

Я веду учет трат и планирую бюджет в обычных гугл-таблицах. Это помогает прогнозировать финансовое состояние и строить долгосрочные планы — сейчас это переезд в другую страну, обустройство там и запуск своего бизнеса. Поэтому я сфокусирован на накоплениях — откладываю до 70% месячного дохода.

Учет трат для меня — это еще и про рефлексию.

Можно посмотреть на свои расходы за предыдущий месяц и сделать выводы о качестве и образе жизни. Например, одна из категорий в моем бюджете — это Snacks, всякие вкусные и часто вредные штуки. В ноябре я на них заложил 70 $⁣ (4927 ₽), а потратил 220 $⁣ (15 484 ₽). В то же время есть категория Groceries — это нормальные продукты, на нее я заложил 300 $⁣ (21 114 ₽), а потратил 200 $⁣ (14 076 ₽). Вывод по ноябрю: я стал обращать меньше внимания на качество и пользу еды. Значит, в следующем месяце нужно тщательнее за этим следить.

Финансовая цель

Моя ближайшая финансовая цель — это диверсификация доходов. Хочется иметь несколько источников — собственных проектов, каждый из которых по отдельности позволит обеспечить комфортный уровень жизни.

Комфортный уровень для меня — это когда у тебя как можно меньше компромиссов со своими желаниями и потребностями. Сейчас я живу в довольно ограниченном в плане расходов режиме, работаю на перспективу. Например, снимаю квартиру в районе, который меня абсолютно не вдохновляет на новые свершения, зато здесь очень приятная цена на жилье, это позволяет мне больше копить.

Будущее

Когда разработчик доходит до определенного этапа в своей карьере, перед ним встает выбор, развиваться в сторону менеджмента или погружаться глубже в саму разработку. Я планирую и дальше работать в ИТ, вероятнее всего, это по-прежнему будет финтех, но хочется сделать акцент на своих навыках управления и организации процессов.

Сейчас я работаю в стартапе с небольшим количеством сотрудников, сильный управленческий рост тут невозможен. Поэтому мой следующий шаг в плане карьеры — устроиться в компанию большего масштаба в качестве Engineering Manager или с перспективой роста до этой должности. Это уже управленческая позиция, на которой не подразумевается разработка. Специалист сосредоточен на управлении проектом и командой разработчиков.

Если же говорить о составляющих идеальной работы — для меня это интерес к тому, чем я занимаюсь, ощущение важности и инновационности проекта, компетентные и нетоксичные коллеги, а также доход, который позволяет обеспечить комфортную жизнь.

РедакцияТоже работаете в ИТ? Расскажите, как там у вас: