Tech Lead IOS

Дата размещения вакансии: 05.11.2024
Работодатель: Звук
Уровень зарплаты:
з/п не указана
Город:
Москва
Поклонная улица 3
Требуемый опыт работы:
Более 6 лет

О нас

Сила, которая движет Звуком, заключается не только в музыке, но и в людях, которые стоят за технологическими решениями. Мы ищем такого же увлеченного лидера, кто готов не только кодить, но и вдохновлять команду, развивать продукт, удивлять пользователей. Если у тебя есть страсть к созданию лучшего музыкального опыта на мобильных устройствах и ты хочешь, чтобы твоя работа действительно звучала, тогда нам по пути.

О роли

Ты будешь отвечать за техническое лидерство iOS-команды, участвовать в проектировании архитектуры, решать вопросы оптимизации и помогать команде двигаться вперед, внедряя лучшие практики разработки.
Тебе предстоит вести команду к созданию продукта, который не просто соответствует ожиданиям, но превосходит их, предлагая пользователям уникальный опыт.

Почему это важно

Каждое нажатие на плей, каждая рекомендация, каждое открытие нового жанра — всё это помогает людям находить то самое. Наша цель — создать продукт, который не просто подстраивается под вкусы, но и превращает прослушивание в особенный ритуал. Мы верим в то, что всё это больше, чем просто контент — это эмоции, воспоминания и моменты. Поэтому каждый пиксель интерфейса и каждый фрагмент кода должны звучать так же гармонично, как любимый трек.

Чем будешь заниматься у нас

  • Вести техническое лидерство команды: Ты будешь не только писать код, но и принимать ключевые архитектурные и технологические решения, помогая проекту двигаться вперед.

  • Создавать новый функционал: Большую часть времени ты будешь работать над улучшением проекта и добавляя важные возможности и проводить рефакторинги, но иногда можешь разрабатывать новые фичи.

  • Оптимизировать работу стрима: Будешь работать над сокращением времени выхода новых фич и улучшением процессов разработки.

  • Работать с техническим долгом: Вместе с командой планировать и устранять технический долг, чтобы кодовая база оставалась чистой и поддерживаемой.

  • Проектировать продуктовые фичи: Помогать своим разработчикам и участвовать в проектировании и реализации новых возможностей для приложения.

  • Повышать производительность: Работать над улучшением скорости и стабильности приложения, чтобы пользователи получали лучший опыт.

  • Разрабатывать архитектуру: Участвовать в проектировании и развитии архитектуры приложения, внедряя лучшие практики и помогая всей команде оставаться на одной волне.

Технологии, с которыми ты будешь работать

  • Swift — основной язык разработки.

  • Архитектуры: используем MVVM с координатором (MVVM+C) и биндингом на RxSwift.

  • Аудио: работаем с AVFoundation, MPAudioPlayer, AVPlayer для стриминга аудио.

  • Интерфейсы: верстка на UIKit, анимации с Lottie, работа с Constraints (Autolayout DSL).

  • Реактивность: используем RxSwift и ReactiveCocoa для управления потоками данных.

  • Базы данных: используем DBProvider, GRDB и Realm.

  • API: для работы с данными используем Alamofire, GraphQL и RestAPI, все обернуто в удобные интерфейсы.

  • Firebase: аналитика и мониторинг через Firebase (Analytics, RemoteConfig, Crashlytics).

  • Тестирование: пишем Unit-тесты с помощью XCTest, а также используем RxTests.

У тебя все получится, если

  • У тебя есть опыт разработки на Swift от 3 лет, а Objective-C тебе знаком, но ты больше сосредоточен на Swift.

  • После твоего code review багам не остается шансов — ты всегда находишь слабые места в коде.

  • Умеешь профилировать приложения и находить утечки памяти, знаешь, как улучшить производительность и стабильность.

  • Разбираешься в базах данных, таких как CoreData, Realm и GRDB.

  • Уверенно работаешь с архитектурами мобильных приложений, знаешь паттерны GoF, MVVM и Clean Architecture.

  • Знаешь RxSwift и можешь объяснить, когда его стоит использовать, а когда — нет.

  • У тебя есть опыт работы с AVFoundation, AVPlayer и аудиостримингом.

  • Умеешь создавать дизайн-системы для приложений.

  • Можешь эффективно работать с потоками и разбираться с многопоточностью.

  • Ты готов учиться новому, развиваться вместе с командой и делиться знаниями, обучая других разработчиков.

  • Умеешь расставлять приоритеты в задачах и эффективно управлять временем команды.