Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+717новых вакансий за сутки·60 871вакансия открыта сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 951
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python9 224
  • Облачные технологии4 076
  • QA вакансии1 588
  • Android1 322
  • Инженер данных805
  • Продакт-менеджер368

Разработка

  • Backend вакансии1 317
  • iOS1 239
  • AI вакансии608
  • Fullstack вакансии523
  • Frontend вакансии456
  • Mobile вакансии28

По стеку

  • Go5 445
  • Java3 175
  • Kotlin1 119
  • Node.js1 026
  • Rust949
  • .NET666
  • PHP311
  • C#210
  • C++204

DevOps и инфраструктура

  • DevOps вакансии2 713
  • Kubernetes2 308
  • Linux-инфраструктура1 890
  • Terraform / IaC1 406
  • CI/CD842
  • Мониторинг и Observability645
  • SRE226
  • Кибербезопасность84

Аналитика и данные

  • Аналитик данных483
  • Data Scientist469
  • Бизнес-аналитик349
  • Системный аналитик48

Другие направления

  • Проджект-менеджер139
  • UI/UX дизайн71
  • Ручное тестирование14

По регионам

  • Вакансии в США24 791
  • Вакансии в Европе9 439
  • Работа в России2 924
  • Вакансии в Канаде2 178

По формату

  • Удалённые вакансии43 505
  • Релокация в США24 791
  • Гибридная работа3 370
  • Офисная работа2 525

По уровню

  • Senior вакансии20 898
  • Middle вакансии12 438
  • Junior вакансии3 864

Сейчас нанимают

Все компании
  • Wise191 вакансия
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Celonis48 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме SwiftВсе вопросы
SwiftSeniorОпыт

Какие production-риски чаще всего возникают в проектах на Swift: производительность, зависимости, конкурентность, деплой или observability?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Ключевые риски: retain cycles в ARC (профилировать Instruments Leaks), блокировки main thread, проблемы с actor isolation в Swift 6, отсутствие встроенного crash reporting и задержки App Store review для хотфиксов.

Производительность

  • ARC overhead: чрезмерное использование классов с циклическими ссылками приводит к утечкам памяти. Профилировать через Instruments (Leaks, Allocations).
  • Main thread блокировки: синхронные операции на главном потоке вызывают заморозку UI. Используйте Task { await ... } или DispatchQueue.global().async.
  • Value types копирование: большие structs передаются по значению — неожиданные копии при передаче в замыкания.
// Правильно: weak ссылка для избежания retain cycle
class ViewModel {
    weak var delegate: ViewModelDelegate?

    func loadData() {
        Task { [weak self] in
            guard let self else { return }
            let data = await fetchData()
            await MainActor.run { self.updateUI(data) }
        }
    }
}

Production-риски в проектах на Swift

Swift-проекты на iOS/macOS имеют специфические production-риски, которые важно учитывать на этапе проектирования.

Зависимости (Swift Package Manager)

  • SPM резолвит зависимости при каждом открытии Xcode — в CI без кеша это медленно.
  • Binary targets (.xcframework) не поддерживают Simulator на Apple Silicon без universal binary.
  • Конфликты версий зависимостей приводят к ошибкам компиляции без понятных сообщений.

Конкурентность (Swift Concurrency)

  • Actor isolation: доступ к @MainActor-свойствам из фоновых задач вызывает ошибки компиляции в Swift 6 (strict concurrency).
  • Task cancellation: не проверяете Task.isCancelled — задачи продолжают работу после dismiss экрана.
  • Structured concurrency: неструктурированные Task {} не отменяются автоматически при деинициализации ViewModel.
// Правильная отмена задач
class DataViewModel: ObservableObject {
    private var loadTask: Task<Void, Never>?

    func load() {
        loadTask?.cancel()
        loadTask = Task {
            for await item in dataStream() {
                guard !Task.isCancelled else { break }
                await MainActor.run { self.items.append(item) }
            }
        }
    }

    deinit { loadTask?.cancel() }
}

Деплой и App Store

  • App Store review занимает 1-3 дня — хотфиксы нельзя выкатить мгновенно.
  • Обязательна поддержка предыдущей мажорной версии iOS (обычно iOS N-1).
  • Bitcode устарел с Xcode 14 — не включайте в новых проектах.
  • Privacy Nutrition Labels требуют декларации всех собираемых данных.

Observability

  • Нет встроенного crash reporting — нужен Firebase Crashlytics или Sentry для iOS.
  • OSLog (Logger) — рекомендуемый инструмент для логирования в production, заменяет print().
  • MetricKit позволяет собирать performance-метрики (launch time, hang rate) из production без Instruments.
import OSLog

let logger = Logger(subsystem: "com.myapp", category: "network")

func fetchUser(id: String) async throws -> User {
    logger.info("Fetching user \(id, privacy: .public)")
    // ...
}

Подводные камни

  • Swift 6 strict concurrency включается флагом SWIFT_STRICT_CONCURRENCY = complete — включайте заранее, не перед релизом.
  • Keychain не очищается при удалении приложения — секреты могут оставаться после переустановки.
  • URLSession не отменяет запросы автоматически — нужно хранить URLSessionTask и вызывать cancel().
  • Simulator не эмулирует реальное потребление памяти — тестируйте на физическом устройстве перед релизом.
  • Динамические фреймворки увеличивают время запуска приложения — измеряйте dyld время через Instruments.
  • @AppStorage не thread-safe — не обновляйте из фоновых потоков.
  • Certificates и provisioning profiles истекают — CI/CD должен обновлять их автоматически через Fastlane match.
  • Memory warnings на реальных устройствах приходят значительно позже чем на симуляторе — реализуйте didReceiveMemoryWarning.

Частые вопросы на собеседовании

  • Что такое optionals в Swift и как безопасно их разворачивать?
  • В чём разница между strong, weak и unowned ссылками?
  • Для каких задач Swift является сильным выбором, а где лучше честно выбрать другой язык?
  • В чём разница между class и struct в Swift?

Что портит ответ

  • Говорить только о запуске Swift, но не об эксплуатации
  • Не упоминать observability, обновления, безопасность и rollback
  • Описывать риски абстрактно, без способов их снижать

Что слушает интервьюер

  • Видит production-риски Swift
  • Говорит про monitoring, rollout, rollback и безопасность
  • Умеет ранжировать риски по вероятности и влиянию

Как вы знаете этот вопрос?

Проверить себя по теме Swift →
←Предыдущий вопросЧто такое `Task` в Swift Concurrency и что такое `TaskGroup`?Следующий вопрос→Что такое property wrappers в Swift (`@Published`, `@State`, `@Binding`)?

Связанные темы

Swiftproduction-readinesstechnical-communicationtechnology-selectiontrade-off-analysis

Вакансии с этим навыком

Swift вакансии
  • Ведущий разработчик IOS
  • Senior iOS Engineer (#5326)
  • Senior Leader Kotlin Engineer (#5878)
  • Product Manager, Advertisement Optimization Group - Merchandising and Advertisement Department (MAD)
  • EC Design Lead (Web Director) - D2C Fulfillment Section, Commerce & Marketing Company (C&M)