Полный цикл отбора в HFT (компания Teza)
Товарищи, понравилась ваша реакция под прошлым постом, потому специально для вас попросил выпускника наших курсов рассказать про отбор в одну из самых популярных компаний HFT, в которую вполне реально попасть из РФ.
Далее представлен слегка отредактированный текст нашего выпускника.
Три года назад окончил мехмат МГУ. Во время учебы занимался спортивным программированием (но не так успешно). После университета пошел разработчиком. Успел поработать на Python и C++. В какой-то день я решил поменять свою жизнь (расстался с девушкой) и искал то, что будет интересно для меня, и наткнулся на HFT. Чуть-чуть поизучав, я понял, что это то, что нужно. Высокие нагрузки на работе, применение математики, С++, алгоритмов, хорошая зарплата.
Начал копать HFT компании и нашел немало, но, к сожалению, я не проходил скрининг резюме. Позже наткнулся на HR в Linkedin, которая работала в ереванском Teza. Она посмотрела мое резюме и дала пару советов, как улучшить. Так что ребятам, которые планируют в будущем подаваться в HFT компании, да и не только туда, советую поработать над своим CV.
Она предложила мне пройти собеседования на SOFTWARE DEVELOPER в QUANTITATIVE команду. В целом это не то, что я хотел, но решил попробовать раз уж квантом на тот момент пока никуда не взяли.
Пока подавался в компании, я параллельно готовился по линейной алгебре, теории вероятности и по алгоритмам.
По алгоритмам я попросил Тимура подготовить меня, брал у него менторство и три месяца плотно решали много задач.
По математике также готовился по курсам Поступашек (кстати в это воскресение уже стартует теор вер).
Всего было три этапа.
Первый этап
Скинули ссылку hackerrank, в котором были две задачи. Обе задачи были на алгоритмы, и надо было решить на время. У них был свой практоринг.
Задача 1: дается два массива чисел, проверить, правда ли одна является подпоследовательностью другой.
Задача 2: на плоскости даются n городов (просто точки). Дальше даются q запросов. Каждый запрос — это точка (x, y), ваша задача — найти ближайший город к (x, y), но чтобы у них хотя бы одна координата была равна. Кстати, подобные задачи с решениями постоянно выкладываются здесь, товарищи.
Решил эти две задачи и пригласили на следующий этап.
Второй этап
Собеседование в котором была только математика. Ниже я перечислю вопросы, которые помню.
-Чему равен ранг x*x^t где x - вектор столбец.
-Найти все собственные значения для x*x^t
-Какие могут быть характеристические корни у матрицы A, если A^4 = A^2.
-Бросают кубик, посчитать мат ожидания и дисперсию числа выпавших чисел.
-Бросают два n гранных кубика, какова вероятность что суммарно выпадет k очков.
-Были теоретические вопросы по распределениям, много спрашивали про нормальное распределение.
Это не весь список вопросов, так как уточняющие вопросы возникали и в ходе ответа.
Пригласили на третий собес:
Третий этап
Уже по кодингку и хард скилам.
-Начался разговор с баз данных, какие использовал, что делал. Использовал ли Postgres.
-Airflow, Hadoop
-Был ли опыт в ML
-На мое удивление дали задачку на numpy)
-По большей части спрашивали Python и С++.
В целом по языкам программирования вопросы были не сложные, стандартные. Может из-за того, что у меня был опыт работы.
Спрашивали про выделения памяти, про шаблоны, версии С++, ООП на питон и на плюсах. Не было ничего сверхъестественного.
Подчеркиваю, я не собесился на кванта. У квантов достаточно жесткий собес по плюсам.
В целом третий этап собеса будет несложным для человека, который имел опыт работы на С++ и python.
Предложили оффер и релокацию, но к этому моменту меня позвали в другое место с более лучшими условиями. А куда именно узнаете в следующем посте, товарищи. Давайте соберем 700 огоньков, чтобы понимать: тема для вас интересна и ее нужно продолжать.