iOS-разработчик в Пачку (Senior)

Требования

Разработчик мобильных приложений
Middle
UIKit
GCD
RxSwift
CoreData
Разработка под iOS

Условия

Можно удалённо

Компания

Корпоративный мессенджер для современных команд

Описание вакансии

Мы ищем 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 (если есть)

Смотреть ещё вакансии