TGViewer
Илья Шишков: код, собесы, IT Илья Шишков: код, собесы, IT @imhired · 5.34K subscribers
Post #256 4.67K
Техническое собеседование в HFT-компанию

#реалити

Привет! Всеми любимый формат реалити возвращается 🎉! Сегодня продолжу рассказывать об опыте прохождения технических интервью.

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

Сегодня начну рассказ про своё собеседование в HFT-компанию "5 ns" (название выдумано, совпадения случайны). Я проходил его на позицию senior C++ developer. На первой секции было 3 вопроса по С++, и только для одного из них надо было писать код.

1️⃣ Первый вопрос проверял понимание внутреннего устройства std::unordered_map. Чтобы на него ответить, надо хорошо понимать, когда в нём инвалидируются итераторы, а когда — ссылки и указатели на хранимые данные. Запоминать это всё довольно сложно, поэтому проще один раз разобраться, как работает хеш-таблица с цепочками, и всегда быть готовым к подобным вопросам. Разобраться в этом поможет, например, наш «Коричневый пояс по С++» 🥋

2️⃣ Для ответа на второй вопрос «Поясов по С++» уже не хватит 😔 Ну и собеседование всё-таки на должность senior C++ 😜 Вопрос такой — как написать конструктор вектора от двух итераторов, чтобы он не конфликтовал с конструктором от size_t и T? То есть как сделать так, чтобы код vector<int>(5, 4) создавал вектор из пяти четвёрок, а не пытался создать его от двух итераторов типа int?

Мой ответ строился вокруг SFINAE 💡. Уже после собеседования я посмотрел, как это сделано в GCC, и, кажется, там есть специальный хак именно для вектора целых чисел 😎. Потому что если тип T — не целочисленный, этой проблемы нет.

3️⃣ Наконец, третья задача была на написание кода. Целиком задачу раскрывать не буду, но её суть в том, чтобы уметь из двух расположенных рядом uint16_t считать биты, например, с 5-го по 23-й и вернуть это в виде uint32_t. Тут надо уметь аккуратно обращаться с битами.

Итак, подведём итоги, что важно было знать и уметь, чтобы успешно пройти первое собеседование в HFT-компанию "5 ns" на должность senior C++ developer:
— внутреннее устройство std::unordered_map
— метапрограммирование шаблонов
— bit manipulation

Эту секцию я прошёл, так что ждите рассказ о том, что было на втором собеседовании.

Ставьте 🔥, если почерпнули для себя что-то полезное, и пишите в комментариях, что именно. Ну и пересылайте этот пост знакомым, чтобы они тоже знали, какой уровень знания С++ ждут в HFT 😉

⬇️ Продолжение истории ⬇️
  • 🔥 92
  • 👍 9
More from @imhired
  1. Sep 23, 2026Как пользоваться AI и не отупеть Продолжаю отвечать на ваши вопросы. В прошлый раз разбира…
  2. Sep 20, 2026😢 Просто соринка в глаз попала В этот день 10 лет тому назад мы начали работать над «Белы…
  3. Sep 18, 2026Код стал дешёвым. Что осталось программисту? Продолжаю отвечать на ваши вопросы. Сегодня р…
  4. Sep 14, 2026Senior — это не набор технологий Продолжаю цикл постов с ответами на вопросы подписчиков.…
  5. Sep 10, 2026Как я потратил 3 часа на анимации, которые пришлось выкинуть Привет! Я обещал ответить на…
  6. Sep 4, 2026Post #588
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →