Старший iOS разработчик (Swift/Objective-C)
Старший iOS разработчик нужен для ребилда популярного украинского почтового клиента. Основная задача — провести аудит кода на Objective-C, разработать план миграции на Swift и закрыть отставание от Android-версии. Предлагают удалённую работу в Европе, оплату AI-инструментов и возможность влиять на архитектуру продукта.
Зарплата не указана — оценили по рынку
На основе 13 похожих вакансий за 90 дней.
Что предстоит делать
<p><b>Почтовый сервис №1 в Украине</b> Локация: Европа (удаленно, B2B контракт)</p><h3>О продукте</h3><p>Мы управляем самым популярным почтовым сервисом Украины — более 200 000 ежедневно активных пользователей только на iOS. iOS-клиент — это полнофункциональное почтовое приложение с офлайн-синхронизацией, предварительной загрузкой сообщений в фоновом режиме, разрешением конфликтов и ожиданиями по времени безотказной работы, которые возникают, когда ты являешься критической инфраструктурой для миллионов украинцев.</p><p>После нескольких лет в режиме только поддержки мы перестраиваем iOS-направление. Наше Android-приложение за это время ушло вперед примерно на 18 месяцев, и сокращение этого разрыва — вдумчиво, не ломая того, что работает — является основной задачей этой роли.</p><h3>Почему существует эта роль</h3><p>Нам нужен опытный iOS-инженер, который мыслит архитектурно и может привнести структуру в кодовую базу, накопившую значительный технический долг. Один iOS-разработчик уже есть в команде, он занимается ежедневной разработкой. Мы нанимаем вас не как его менеджера — мы нанимаем вас как человека, который может составить четкую картину того, где находится кодовая база, куда ей нужно двигаться и как туда попасть.</p><p>Конкретно, в первые месяцы мы ожидаем от вас:</p><ul><li>Письменный аудит текущей архитектуры и ее проблем</li><li>Приоритезированный бэклог технического долга, разделяющий стратегическую выплату (например, переработка уровня хранения) от локальной очистки</li><li>Документированную стратегию работы с этим долгом параллельно с дорожной картой продукта</li><li>Четкие обсуждения компромиссов с CPO и акционером — риски, усилия, что мы берем на себя, а что откладываем</li></ul><p>Команда небольшая и состоит из давно работающих сотрудников (большинство инженеров работают здесь более 10 лет). Вам нужно будет уважать то, что работает, возражать там, где это не так, и заслужить доверие, прежде чем перепроектировать что-либо.</p><p>Если будет второй нанятый iOS-разработчик и вы оба хорошо проявите себя в этой роли, руководство будет доступно — но его нужно будет заслужить, а не получить в первый же день.</p><h3>Чем вы будете заниматься</h3><p><b>Первые 3 месяца</b></p><ul><li>Провести диагностику существующей кодовой базы на Objective-C и подготовить письменный архитектурный обзор</li><li>Выявить и задокументировать архитектурные проблемы; расставить приоритеты (Выплата долга vs. Очистка)</li><li>Предложить и согласовать инкрементальную стратегию миграции с Objective-C на Swift</li><li>Установить стандарты код-ревью, документирования и тестирования</li><li>Начать поставку критически важных функций для паритета (начиная с аутентификации)</li><li>Начать покрытие критических путей автоматическими тестами</li></ul><p><b>После 3 месяцев</b></p><ul><li>Управлять миграцией на Swift модуль за модулем</li><li>Ускорить выход на рынок, чтобы сократить отставание от нашего Android-приложения</li><li>Поставлять новые функции параллельно с ongoing миграцией</li><li>Отвечать за долгосрочные архитектурные решения в партнерстве с CPO</li><li>Помогать проводить собеседования и вводить в должность следующих iOS-разработчиков</li></ul><h3>Обязательные требования</h3><p><b>Опыт</b></p><ul><li>Значительный production-опыт разработки под iOS для сложных, долгоживущих приложений (не только работа с нуля)</li><li>Практический опыт работы с Objective-C и готовность продолжать работать с ним во время миграции</li><li>Отличные навыки Swift</li><li>Реальный опыт рефакторинга и миграции production-кода — вы принимали архитектурные решения в системах, от которых зависят реальные пользователи, и жили с последствиями</li></ul><p><b>Архитектурное и инженерное чутье</b></p><ul><li>Вы можете посмотреть на незнакомую кодовую базу, выявить ее реальные проблемы, записать их и расставить приоритеты</li><li>Вы отличаете стратегический технический долг (уровень хранения, модель потоков, архитектура синхронизации) от локальной очистки и относитесь к ним по-разному</li><li>Вы можете задокументировать архитектурное решение в виде записки на <nobr>2–3</nobr> страницы, с которой может работать не-инженер</li><li>Вы можете сформулировать компромиссы на бизнес-языке: «это стоит X времени, риски — Y, вот что мы получаем» — и позволить бизнесу решать</li><li>Вы чувствуете себя комфортно, когда ваши технические решения оспариваются, отстаиваете свою позицию с помощью фактов и меняете мнение, когда факты меняются</li></ul><p><b>Техническая глубина</b></p><ul><li>Cocoa Touch, UIKit, Foundation, ручная верстка</li><li>Глубокое понимание многопоточности (GCD, состояния гонки, согласованность данных); у нас нетривиальный конвейер фоновой синхронизации</li><li>SQLite, транзакции, мышление в парадигме offline-first; знакомство с CoreData и компромиссами по сравнению с чистым SQLite</li><li>ООП, SOLID, архитектурные паттерны и антипаттерны</li><li>Способность декомпозировать крупные инициативы и выстраивать последовательность работ</li></ul><p><b>Работа с AI</b></p><ul><li>Вы используете AI-инструменты (Claude Code, Cursor, Copilot или аналоги) в своей повседневной работе</li><li>Критически важно: вы читаете то, что создает модель, проверяете это на соответствие дизайну и несете ответственность за то, что отправляете. AI-сгенерированный код, который молча превращает кнопку в лейбл и попадает в QA — это именно то, для предотвращения чего существует эта роль</li><li>Мы компенсируем расходы на AI-инструменты (Claude, Cursor, токены) по чекам и переходим на корпоративные подписки</li></ul><p><b>Стиль работы</b></p><ul><li>Вы просите о помощи, когда застряли — в том числе у инженеров из смежных команд (бэкенд, инфраструктура). Избегание разговора, потому что вы не хотите выглядеть так, будто чего-то не знаете, здесь неприемлемо</li><li>Вы все записываете. Решения, проблемы, планы. Устное «да, да, я сделаю» — это не результат</li><li>Вам комфортно в команде со сложившимися паттернами и долгой памятью; вы выбираете свои битвы</li></ul><h3>Будет плюсом</h3><ul><li>Опыт работы Tech Lead (мы не поставим вас на руководящую роль в первый день, но это актуально)</li><li>Опыт найма и онбординга</li><li>Оптимизация производительности (память, CPU, батарея), профилирование, глубокая отладка</li><li>Хорошая алгоритмическая база</li></ul><h3>Текущий стек</h3><p>Objective-C с ARC · GCD · URLSession · Cocoa Touch (ручная верстка) · SQLite · Firebase (Analytics, Crashlytics) · XCTest</p><h3>Куда мы движемся</h3><ul><li>Инкрементальная миграция на Swift</li><li>AI-ассистированный рефакторинг с контролем человека</li><li>Осмысленное тестовое покрытие критических путей</li><li>Современная архитектура — спроектированная тем, кто займет эту роль, в сотрудничестве с командой</li><li>Улучшенная инфраструктура сборки и релиза, включая выделенное сборочное железо, которое появится в середине года</li></ul><h3>Что мы предлагаем</h3><ul><li>Полная удаленная работа в Европе, B2B контракт</li><li>Оплачиваемые компанией AI-инструменты и бюджет на обучение (Claude, Cursor, курсы, конференции)</li><li>Возможность привлекать внешнего архитектурного консультанта на регулярной основе, если это будет вам полезно</li><li>Украинский продукт с реальными пользователями, реальным влиянием и более чем 20-летней историей — не гемблинг, не крипта, не забываемый B2B SaaS</li><li>Небольшая команда, где архитектурные решения действительно внедряются, и где человек, который их принимает, — это тот, кому приходится с ними жить</li><li><b>Оплачиваемый отпуск</b>: 20 рабочих дней в год</li><li><b>Больничный</b>: 10 рабочих дней со 100% оплатой, плюс дополнительные 10 рабочих дней с оплатой 50% при необходимости</li><li><b>Оборудование</b>: мы не предоставляем оборудование напрямую, но предлагаем схему компенсации затрат на оборудование — вы приобретаете оборудование самостоятельно, а компания возмещает вам его стоимость равными частями в течение 2 лет (выплаты прекращаются, если контракт заканчивается раньше)</li></ul><h3><b>Процесс найма</b></h3><ol><li><b>Первичный скрининг</b> — ~30 мин. Первый контакт, контекст роли, обзор кандидата.</li><li><b>Встреча с командой</b> — CPO, Lead бэкенда и текущий iOS-инженер — ~1.5 часа. Детальный разбор ваших последних двух ролей (структура организации, кому вы подчинялись, зона ответственности, как вы взаимодействовали с продуктом), используемые инструменты, как вы подходили к техническому долгу в прошлых проектах, и ваши вопросы к нам.</li><li><b>Собеседование по системному дизайну</b> — 1 час с внешним консультантом. Архитектурное мышление, работа с техническим долгом, рассуждение о компромиссах.</li><li><b>iOS-специфичное собеседование + live coding</b> — 1 час с внешним консультантом. Практическое программирование и глубина знаний iOS. Этапы 3 и 4 по возможности назначаются на разные дни, чтобы уважать ваше время.</li><li><b>Финальный разговор с HRD</b> — ~45 мин. Мотивация, рекомендации, согласование оффера.</li></ol> <div> <a href="https://jobs.dou.ua/companies/vpteam/vacancies/359355/#reply-btn-id">Откликнуться на вакансию</a> </div>
Стек и инструменты
Подходит ли вам эта вакансия?
Зарегистрируйтесь и загрузите резюме — посчитаем % совпадения с этой вакансией, подсветим сильные стороны и что стоит подтянуть
Похожие вакансии
6 вакансийСтарший iOS разработчик (Swift)
Старший iOS разработчик нужен для создания мультисервисной платформы заказа поездок в Африке. Вы будете разрабатывать приложения для клиентов и водителей с нуля, включая функции реального времени, офлайн-режимы, платежи и безопасность. Требуется 5+ лет опыта на Swift, знание Core Location, Socket.IO и Google Maps SDK. Проект долгосрочный, с сильной командой и четким процессом.
Старший iOS разработчик (Swift/Flutter)
Ищем опытного iOS разработчика для поддержки и развития приложений под iOS и macOS. Требуется глубокое знание Apple MDM SDK и экосистемы Apple. Компания предлагает удаленную работу, конкурентную зарплату и возможности для профессионального роста.
Старший iOS разработчик (Swift)
~1 957 560 – 3 670 425 ₸ оценка
Проектная позиция для опытного iOS-разработчика на Swift. Нужно создавать приложения с нуля, используя Vision framework и Core Data. Предлагают гибкий график и работу в команде профессионалов.
Разработчик IOS (Swift)
~1 304 550 ₸ оценка
Ищем опытного iOS-разработчика для развития мобильного приложения Ecom. Требуется уверенное знание Swift и SwiftUI, опыт работы с архитектурами и CI/CD. Предлагаем удаленную работу или офис в Москве, официальное оформление и соцпакет.
iOS Engineer Senior
Uklon шукає Senior iOS Engineer для роботи над фінансовими продуктами та програмою лояльності. Потрібен досвід 5+ років, знання SwiftUI, UIKit, Combine та MVVM-C. Компанія пропонує гнучкий графік, медичне страхування, навчання та річний бонус.
iOS-разработчик
~1 304 550 ₸ оценка
Ищем опытного iOS-разработчика для работы над мессенджером ВКонтакте. Требуется от 3 лет опыта, уверенное владение Swift и Objective C, знание UIKit и опыт работы с многомодульными проектами. Предстоит заниматься как продуктовыми, так и техническими задачами в крупной команде.