Site icon AppTractor

Собеседование на должность iOS-разработчика в Experian: когда все пошло не по плану

Началось всё как обычное виртуальное собеседование. Собеседник подключился к Zoom-конференции на пять минут позже, попивая кофе, словно только что пережил войну. Никаких представлений, никакой светской беседы. Просто прямо:

«Хорошо, давайте пропустим основы. Можете ли вы за 10 минут переписать чей-нибудь ужасный Swift-код, пока я смотрю?»

Никакой разминки. Никакого «расскажите о себе». Просто бум.

Раунд 1: засада рефакторинга

Он вставил фрагмент Swift-кода в общий редактор. Он выглядел так, будто был написан в 2013 году кем-то, кто люто ненавидит Swift:

class DataManager {
    var data = [String]()
    
    func addData(newData: String?) {
        if newData != nil {
            data.append(newData!)
        }
    }
    
    func getData() -> [String]? {
        return data
    }
}

Он откинулся назад и сказал: «Исправьте это. Сделайте это элегантно. Мне нужна элегантность».

Я начал рефакторинг:

class DataManager {
    private(set) var data = [String]()
    
    func addData(_ newData: String) {
        data.append(newData)
    }
}

Я объяснил, что такое optional, принудительное разворачивание (force-unwrapping) и почему private(set) чище.

Но тут — совершенно неожиданно — он выпалил:

«Хм… недостаточно элегантно. Можете сделать это красиво? Представьте, что Стив Джобс проверяет этот код».

В тот момент я уже не был уверен, нахожусь ли я всё ещё на собеседовании или на уроке творчества.

Раунд 2: адская цепочка API

Затем он попросил меня «соединить три API в Swift» — но вот в чём загвоздка:

Пока всё хорошо.

Но затем он добавил совершенно серьёзно: «Теперь представьте, что API 2 случайным образом даёт сбой в 50% случаев. Исправьте это без повторных попыток. Вам нельзя использовать Combine. Или async/await. Или коллбэки».

Я: «Подождите, что? Как мне вообще…»

Я попытался объяснить, что async/await — это современный подход, но он просто улыбнулся, как злодей из фильмов о Джеймсе Бонде.

В конце концов, я наскоро собрал какой-то синхронно выглядящий демо-код с обработчиками завершения, просто чтобы пойти дальше. Он не выглядел впечатлённым.

Раунд 3: сумасшедшая головоломка

Как раз когда я подумал, что страннее уже быть не может, он сказал:

«Хорошо, последний вопрос. Если бы вам нужно было реализовать UICollectionView, используя только UIView и UIScrollView, как бы вы это сделали?»

В этот момент я нервно рассмеялся. Это было настоящее собеседование или издевательство?

Я начал объяснять, как размещать сабвью внутри scroll view, вручную переиспользовать ячейки и рассчитывать их фреймы. Он прервал меня на полуслове и сказал:

«Неправильно. Правильный ответ: вы этого не делаете. Вы увольняетесь из компании, если вас об этом попросят».

Я понятия не имел, шутит он или нет.

Последствия

Интервью закончилось так же внезапно, как и началось. Никаких заключительных слов. Просто:

«Хорошо, мы вам сообщим». Клик.

Я закрыл Zoom, сидел в тишине и думал: меня только что собеседовали, или я пережил комедийный скетч про iOS?

Две недели спустя я получил вежливое письмо с отказом. Честно говоря, я даже не рассердился. Если работа будет такой, может быть, мне повезло.

Вывод

Иногда собеседования проверяют ваши знания. Иногда они проверяют ваше терпение. Собеседование в Experian? Оно проверяло мою психику.

Если вам когда-нибудь доведется столкнуться с таким интервьюером, вот мой совет:

И, по крайней мере, вы уйдете с собеседования с историей, которая рассмешит ваших друзей.

Exit mobile version