IOS developer (Swift)

Дата размещения вакансии: 10.11.2024
Работодатель: TASSTA
Уровень зарплаты:
з/п не указана
Город:
Санкт-Петербург
Требуемый опыт работы:
От 3 до 6 лет

TASSTA - продуктовая компания, головной офис в Германии.
Делаем полезный и социально значимый продукт, который помогает сохранять жизни людей по всему миру.
Это профессиональная мобильная связь на основе раций (мобильные и веб клиенты, серверная часть, аппаратно-программные средства интегрирования с другими радио решениями). Софт с кнопкой push-to talk (в т.ч. UI) и разным функционалом: от стандартного - переписка, звонки, карта, менеджер задач, различные списочные экраны, до уникального - аудио/видео, локализация внутри помещения, дата и пр.

Работаем в сегменте "mission-critical and public safety".

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

Стек iOS: iOS 14+, Swift, Xcode 15-16, SwiftPM, Combine, UIKit/SwiftUI, потоковая передача аудио/видео, датчики и внешние устройства.

Проект: iOS приложение в нашем продуктовом решении, www.tassta.com/t-flex/

Архитектура:

  • Повторяет идеи Clean Architecture;
  • Многомодульная. Разделенная и по слоям, и по фичам;
  • Presentation слой: иерархический MVP с Router-ами;
  • Data слой: нарушает идеи Clean Architecture, в угоду удобства - провайдеры данных напрямую используют сетевые обертки и над данными, без развернутых связей;
  • Logic слой: состоит из классических UseCases-ов/Interactor-ов, максимально не зависим;
  • Для взаимодействия с сетью используется: Rest API, SSE, TCP socket с protobuf, UDP socket для данных;
  • Для хранения данных - самописная библиотека, на подобие легковесного Realm;
  • Активно используется DI и Combine, последний "обернут" для большего контроля направления данных;
  • Количество высокоуровневых фич порядка 30.

Задачи:

  • Разработка и поддержка модулей под iOS;
  • Поддержание и рефакторинг кодовой базы;
  • Общение с командой для принятия общих решений по API;
  • Написание нового похожего клиента, но с другим бекендом, и с частично другой бизнес логикой;
  • Минимум однотипных задач по верстке - тут пишут код, а не месяцами красят кнопки :)

Возможности:

  • Познакомиться поближе с создателем DITranquillity и человеком, который начинал с iOS 2.0;
  • Увидеть реализацию Clean Architecture, которую не напутали с Clean Swift или VIPER;
  • Создать продукт, который точно поможет многим и, возможно, спасет жизнь не одному человеку;
  • Разобраться в сложной бизнес логике и не тривиальном реалтайм API.

Наши ожидания:

  • Высшее образование в профильной области (информатика, математика, физика, статистика, анализ данных и пр.);
  • Понимание computer science, алгоритмов, структур данных;
  • Опыт работы в мобильной разработке iOS от 3х лет.
    Но если чувствуете силы, то можно и меньше.
    ​​​​​​​На техническом собеседовании много спрашиваем по языку, алгоритмам, а также есть практическая часть;
  • Опыт разработки на Swift от 2х лет;
  • Навыки работы с UIKit без Xib/Storyboard;
  • SwiftUI будет небольшим плюсом;
  • Английский язык от уровня Intermediate (релизы на английском, общение внутри команды – на русском языке).

Будет плюсом:

  • Опыт работы с другими технологиями и языками, например, Objective-C, C/C++;
  • Опыт по направлениям: параллельное программирование, сетевые коммуникации, шифрование данных, аудио\видео коммуникация;
  • Наличие примера кода на github.

Мы предлагаем:

  • Будний рабочий график, full-time;
  • Формат - удаленка, работа по МСК часовому поясу;
  • Оформление - ИП;
  • ЗП - fix, в рублях предпочтительнее, уровень готовы обсудить, оплата 1 раз в месяц полной суммой. Если вы живете вне РФ, мы готовы рассматривать, с оплатой в евро или долларах.