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 раз в месяц полной суммой. Если вы живете вне РФ, мы готовы рассматривать, с оплатой в евро или долларах.