iOS-разработчик в Пачку (Senior)
Требования
Условия
Компания
Описание вакансии
Мы ищем iOS-разработчика уровня Senior в команду, которая развивает мобильное приложение Пачка. Нам важны не только технические навыки, но и отношение к работе: самостоятельность, вовлечённость в продукт и внимательность к деталям. Мы ищем разработчиков, которым важно не просто писать код, а делать продукт лучше и оставлять после себя понятную, поддерживаемую систему.
О продукте
Мы развиваем корпоративный мессенджер Пачка — продукт с сотнями тысяч пользователей и крупными клиентами. Делаем его как основной продукт компании и сами ежедневно используем в работе. Мы не часть большой экосистемы, поэтому можем быстро принимать решения и фокусироваться на продукте, а не на длинных согласованиях. Команда распределённая и уже много лет работает удалённо — процессы и коммуникации выстроены под такой формат
Что предстоит делать
- Самостоятельно вести разработку фич: от проработки решения до релиза.
- Проектировать решения, декомпозировать задачи.
- Учитывать все состояния фич и пограничные кейсы, а не только happy path.
- Обсуждать решения, задавать вопросы и участвовать в технических обсуждениях.
- Работать с существующим кодом и улучшать его.
- Писать тесты и поддерживать качество кода.
Мы ожидаем
Обязательно:
- Опыт разработки и поддержки iOS-приложений на Swift в продакшене от 5 лет.
- Опыт коммерческой разработки на SwiftUI от 1 года.
- Хорошее понимание архитектуры iOS-приложений.
- Понимание принципов SOLID и Clean Architecture и умение применять их на практике.
- Опыт работы с асинхронностью и сетевым взаимодействием.
- Умение читать и улучшать существующий код.
- Опыт code review и командной разработки.
Будет плюсом:
- Опыт работы с модульными приложениями.
- Reactive-подходы.
- Что для нас особенно важно
- Мы ищем человека, который:
- Вовлечён в продукт и переживает за результат.
- Умеет работать самостоятельно и доводить задачи до результата.
- Не боится задавать вопросы и прояснять требования.
- Внимателен к деталям интерфейса, логики и UX-состояний.
- Думает о поддерживаемости кода и архитектуре.
- Умеет коммуницировать: если в задаче чего-то не хватает, задаёт вопросы, уточняет и обсуждает.
Если вам важно просто закрывать задачи — скорее всего, мы не подойдём друг другу.
Как мы работаем
Разработчик участвует в проработке решений, предлагает изменения и влияет на итоговую реализацию.
Обсуждаем решения, а не просто выполняем задачи.
Мы не стремимся реализовывать макеты любой ценой, но для нас важен аккуратный UI: консистентность, состояния (loading/empty/error), отступы/типографика и внимание к мелочам. Если решение получается неоправданно сложным или хрупким, обсуждаем и вместе с дизайном и продуктом ищем более удачный вариант.
Используем принципы SOLID и архитектурные практики там, где они реально помогают.
Мы гибкие и не усложняем процессы ради процессов.
Мы нормально относимся к тому, что в задачах может не хватать информации или решений. В таких случаях ожидаем, что разработчик задаёт вопросы, предлагает варианты и обсуждает, а не молча блокируется. Для нас важны коммуникация и здравый смысл в работе.
Регулярно улучшаем developer experience, автоматизируем рутину и стараемся упрощать разработку там, где это возможно.
Команда небольшая, поэтому решения принимаются быстро, обсуждения проходят напрямую, и у разработчиков есть реальное влияние на продукт и технические решения. Code review и обсуждение архитектуры — обычная часть работы, а не формальность.
Наш стек
Мы разрабатываем модульное iOS-приложение на Swift, с layered-архитектурой и большим количеством внутренних модулей.
У нас достаточно сложное приложение: realtime-фичи, звонки, модульная архитектура и большой объём кода, поэтому нам важны инженерное мышление и аккуратность в реализации.
В проекте есть легаси-части, которые мы постепенно переписываем и улучшаем.
Используем:
- UIKit (legacy UI) и SwiftUI (новые модули)
- Swift Concurrency
- PromiseKit(legacy)
- Combine и RxSwift(legacy)
- CoreData
- Moya, WebSocket
- Swinject
- Texture/AsyncDisplayKit (legacy)
- Swift Package Manager и CocoaPods
- XCTest (unit и UI-тесты)
- GitLab CI и Fastlane
- SwiftLint
- XcodeGen
Продукт активно развивается и быстро растёт: регулярно появляются новые фичи, изменения достаточно быстро попадают в продакшен, поэтому нам важно, чтобы архитектура оставалась гибкой, расширяемой и поддерживаемой.
Формат работы
- Полностью удалённая работа.
- Работаем распределённой командой, основные коммуникации — в чате и на созвонах по необходимости.
- Интервью
- Познакомимся, поговорим про опыт
- Техническое интервью
- Систем-дизайн интервью
- Интервью с фаундерами
Если откликается такой формат работы — присылайте:
- Краткое описание ваших проектов, ваша зона ответственности в них и достижения
- Несколько слов о задачах, которые вам особенно запомнились и почему. Расскажите техническим языком как рассказывали бы на синке iOS-команды.
- Ссылку на git (если есть)
