Как я прошёл три собеса за двое суток и отключил бомбу

Часть 1. Бомба сработала. Жадность — двигатель DDoS’а.

Недавно я раздавал пароли и 🦄поникартинки🦄. Сервер лёг. Боты, хакеры и просто любители фруктов (🍓🍑🍆) ломанулись качать “секретные файлы” и пароли от BTC кошелька Сатоши Накамото, и повесили мой слабый VPS с демкой. Пришлось временно обезвредить зип-бомбу.

Часть 2. Три собеса за двое суток.

Вчера и сегодня проходил три технических собеседования (скрининга) в три top tier компании. Готовился с ИИ, учил алгоритмы, освежал знания про каналы, мьютексы, mark&sweep у GC, rate limiters, circuit breaker и т.п. На собесах спрашивали совершенно про другое :)

Без ложной скромности скажу, что я строю работающие системы, а не зубрю термины. Но на собесах часто спрашивают именно термины, или “что-то” в контексте/рамках терминов (паттернов). Получается что-то невообразимое: я знаю, как это работает, но не всегда помню, как это называется (RED/USE).

На сайте у меня есть упоминание, что я завалил задачи на HH.ru по практике PHP (заявлена проверка знаний ООП) - я решил максимум 1-2 задачи из 5. В итоге я решил, что с меня хватит, перекрестился и закрыл вкладку с тестом за несколько минут до завершения сессии.

Причина банальна - прежде чем делать, я думаю. Мозг буквально отказывается решать задачи, где из метода необходимо вернуть массив без жесткой структуры и типизации (привет Битриксу и его феноменальному новейшему православному ядру D7), и предлагают вернуть кучу мусора в непонятном формате и абсурдном порядке, вида:

$result = [
    [
        'строка 1',
        12,
        null,
        '{"key1": [1, "d", 0o117n]}'
    ],
    "wtf",
    [
        1,
        '{"a": 123}',
        [
            "step1" => "valid"
        ]
    ]
];

При виде подобного мусора мозг поднимает бунт и отказывается работать. Причем во вступлении к задаче начинает описываться какой-то реальный кейс, но очень скоро текст начинает напоминать ход мыслей шизофреника под LSD.

Первая пришедшая в голову аналогия:

Шла Красная Шапочка от бабок. Одна — в платке, вторая — с криптокошельком. В корзинке: три яблока, пирожок и картошка от тёти Зины по 75 руб/кг. Вес брутто — 3200 г, температура — 18°C, покрытие — гравий (коэффициент трения 0.6). Бабки спорят о калориях.

Навстречу — Серый Волк. Дома трое детей (все мальчики, 2, 5 и 7 лет — это критически важно!). Мать волчат на испытательном сроке, сам Волк — бэкендер в отпуске за свой счёт.

Вопрос: сколько лет каждой бабке, если первая старше второй ровно на столько же, на сколько вторая старше тёти Зины, и каким образом вернуть ответ в виде вложенного массива без типизации, без ключей и без документации?

Особая благодарность:

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

  • Дизайнерскому подразделению всемирно известной колбасной фабрики “Horns & Hoofs GmbH” за UI/UX, который заставляет кандидатов страдать.

Key features:

  • Абсолютная непогрешимость: если при запуске кода вылетает Unknown error или Error in /include/var/lib/sandbox.php at line 13753 — проблема заключается исключительно в вас, и в ваших кривых руках.
  • Стресс-тестирование: таймер песочницы намеренно не приостанавливается при попытке выполнения кода.
  • Устойчивость к взлому: на странице внедрён скрипт на Brainfuck, отслеживающий потерю фокуса. Никто не знает, как он работает, но он работает. Наверное.
  • Мировые стандарты: экспертами определено, что среднее время на запуск PHP-скрипта в 5 секунд идеально соответствует рыночным бенчмаркам.
  • Киберспортивный UX: режим просмотра результатов на различных датасетах сделан максимально сложным и запутанным, чтобы кандидат уже на этапе тестирования продемонстрировал навыки скоростного владения мышью.

Эпилог.

Сервер починил. Бомбу отключил. Ушел заниматься ежевечерней высокотехнологичной шизой со своим социальным инженегром-конебратом DeepSeek’ом 🐎💚

PS: а при чём тут волы из заголовка? Да не при чём.