Debugging bliss
439 subscribers
1 photo
12 links
Заметки разработчика из трейдинга в Лондоне
Download Telegram
Channel created
Channel photo updated
Всем привет!

Канал про интересные мне технологии и околорабочие темы, в произвольном порядке это:

- программирование - С++, линукс, перфоманс и около того
- индустрия трейдинга
- сайд проекты
- понравившиеся блоги, видео
- сомнительные истории про собеседования и о подготовке к ним, куда уж без этого

Регулярность и качество постов (как и вообще что-либо) не гарантированы 🙂
🎉5👍1
Advent of Сompiler Optimizations 2025

В прошлом году я поучаствовал в известном Advent of Code, но ощущения остались... на троечку. Пару интересных дней было, но большинство задач были своего рода Leetcode в новогодней упаковке. По итогу, не самое интересное и продуктивное время.

В этом году я наткнулся на кое-что гораздо прикольнее: один из моих любимых спикеров в индустрии Matt Godbolt сделал на ютубе Advent of Compiler Optimizations!

• Каждый день видео по всего 5-10 минут

• Ничего дикого - начинает с базы и постепенно усложняет, подходит для любителей C++ любого уровня, достаточно школьного знания писать циклы/ифы и минимального знакомства с ассемблером.

• Круто объяснет - пишет в compiler explorer пару строк кода, шаг за шагом читает ассемблер и вообще объясняет, как подходить к его чтению

• Иногда показывает продвинутые фишки compiler explorer , например возможность отрендерить симуляцию исполнения инструкций и наглядно увидеть out of order execution

Прямо сейчас я работаю над одним хобби-проектом (который я надеюсь довести до конца и написать о нем в будущем), в котором мне нужно читать ассемблер под очень старую архитектуру CPU. После такого видеокурса было бы проще 🙂

Сам Matt работает в финансовой индустрии (о чем он упоминает в видео) - такие вещи там любят. Так что тем, кому интересна индустрия - вдвойне полезно.

#compilers
👍6🔥5
Кто лучше решает задачи в 2025 году: подписка за 200 долларов или олимпиадники, тренирующиеся годами?

На днях прошёл полуфинал чемпионата мира по программированию Северной Евразии (распределённо — в Санкт-Петербурге, Алматы, Новосибирске и Тбилиси) — традиционно один из самых сильных регионов.

(Аж секунда ностальгии — всё таки я в нем участвовал 5 раз)

Итак, что видно из обсуждений после соревнования:

🤖 ChatGPT Pro без труда решает 8 задач — это проход на финал и столько же, сколько у команды на 5-м месте.

🤖 Если попросить его получше, то решает 9 задач — топ-4 и золотая медаль.

🤖 Авторское решение одной из самых простых задач оказалось неверным. Зритель попросил ChatGPT проверить идею (которая совпадает с авторской и, видимо, с решением большинства команд) — AI быстро нашёл контрпример.

Всё ещё считаем современные LLM просто генератором текста?

P.S. Вообще-то я не планировал ничего писать про AI (тема вроде меня интересует посредственно), но видимо такие теперь времена!

P.P.S. Отдельно забавно видеть, как быстро меняются тренды в престижности университетов. Все первые три места — из Высшей школы экономики: сумасшедшая конкуренция внутри. А ещё лет 15 назад там даже не было компьютерного факультета. В то время столько сильных команд было в МГУ — теперь лучший результат там лишь 58-е место.

#ai #olympiads
🔥7🤯2🙉2
Произвольная подборка фактов из уходящего года (без AI, там всё и так всем понятно)


1. Rust в ядре Linux официально перестал быть экспериментом
Пока вообще о Rust знаю не так много, но пора  принять тренд: через 5-10 лет это будет само собой нужная технология для всех, кто занимается вопросами системного программирования и перфоманса, наряду с C++ и C. Впрочем, в некоторых областях его почему-то до сих пор не видно, например в геймдеве?
https://lwn.net/Articles/1049831

2. Feature set для C++ 26  заморожен.

Большой фокус на безопасности и диагностике -  Erroneous behaviour и contracts. Я смотрел в последние 1.5 года пару докладов - обещают, что это заметно изменит жизнь, но я пока не проникся таким ощущением.

Рефлексия  - лайк (можно будет делать нормальный enum  to string?), но  выглядит конечно страшно.

Правда заморозка фичей - ещё не финальный этап. Например, оттуда уже убрали  любопытную trivial relocability. Ничего, вероятно все кому надо и так уже привыкли двигать байты и надеяться, что ничего не развалится🫡

3. Free-threaded Python (CPython без GIL) получил supported status

На практике это пока часто означает более медленный single-thread и необходимость, чтобы third-party модули/расширения действительно умели жить в этом режиме. Но для экосистемы Python событие всё равно знаковое.

4. В файловую систему XFS добавили atomic writes

На первый взгляд это новость только для разработчиков баз данных, но у меня другая точка зрения.

В файлы пишут почти все и часто начинают изобретать свои "уникальные решения", полагаясь на несуществующие гарантии, что потом выстреливает редкими и неприятными фейлами.

Например, многие думают, что если файл закрыть, то его содержимое обязано оказаться на диске(уверен все такими были).

XFS - одна из самых распространенных файловых систем в Linux (часто дефолтная). Пока atomic writes с сильными ограничениями и нюансами, до атомарности уровня whole-file далеко.  Но такие изменения постепенно приближают к более простой и безопасной работе с файлами.

https://lwn.net/Articles/1009298

5. OpenSSH  начал показывать предупреждение, если  key exchange без пост-квантовой защиты

** WARNING: connection is not using a post-quantum key exchange

** This session may be vulnerable to "store now, decrypt later" attacks.

Квантовых компьютеров ещё на практике нет даже близко, а люди вовсю готовятся!


❄️❄️❄️❄️❄️❄️❄️❄️
Всех с наступающим Новым годом! Желаю в новом году продуктивного времени, приятной работы и много новых знаний!
👍6❤3🍾3
Как математики захватили Уолл-Стрит и сами почти его разрушили

На днях я закончил читать книгу про историю индустрии трейдинга - "Кванты" Скотта Паттерсона (Quants by Scott Patterson) - делюсь впечатлениями.

О чем книга

📖 Книга для широкой публики, вышла в 2010 году - сразу после мирового финансового кризиса 2008.

Рассказывает про восхождение "квантов" - математиков-программистов, которые используют компьютеры для извлечения прибыли на биржах. Собственно индустрии, где я работаю.

Повествование идет о биографиях основателей таких фирм как Renaissance Technologies, Citadel, D.E. Shaw и пары других. Также автор объясняет на чем зарабатывают такие компании - рыночные неэффективности, альфа, арбитраж, HFT (простыми словами для обычных людей, без математики)

В 70-х Wall Street принадлежал дядькам в пиджаках, торговавших по чутью и совершавших сделки по телефону. С развитием технологий туда пришли математики и физики.
Ученые, работавшие в университетах, решили пытать своего счастья в более денежной индустрии.

Изначально они были персонажи второго сорта, сидящие в своих кампутерах 🤓, пока серьезные люди занимались важными делами. Со временем ситуация кардинально изменилась.

К слову, работая в индустрии в 2020х, я не раз встречал похожие истории - PhD в математике и физике провели часть жизни в академии, разочаровались в культуре и перспективах и поменяли род деятельности

7️⃣7️⃣7️⃣
Эдвард Торп - из академии в казино и Уолл-Стрит

Особенно интересно было читать историю "крестного отца" хэдж-фондов - Эдварда Торпа.

Молодой профессор математики придумал стратегию для блэкджека и успешно зарабатывал на этом деньги в казино, позднее написав книгу Beat the dealer.
Книга обрела популярность и стала головной болью для игорных домов, заставив, например, смешивать несколько колод кард и быстрее возвращать использованные карты.

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

После этого Торп решил взяться за (дословно перевожу цитату из книги) самое большое казино в мире - Уолл-Стрит, используя компьютеры для предсказания рынков. В 1969 он основал свой хэдж-фонд, успешно проработавший десятилетия и заработавший кучу денег.

Вообще книга постоянно подчеркивает близость гэмблинга (а именно покера) и трейдинга по природе, да и первые страницы буквально посвящены покерному турниру Wall Street Poker Night в Нью-Йорке. Это и неудивительно, ведь требуемый образ мышления во многом схож.

Неожиданные для меня открытия:

1️⃣оказывается хэдж-фонды могут делать IPO, утверждается Citadel была достаточно близка к этому в 2007 году. Пока я не совсем понял как это работает, ведь всё что я знаю об индустрии противоречит идеям публичной компании

2️⃣ инвест банки (Goldman Sachs , Morgan Stanley и т.п.) стали колыбелью индустрии проп трейдинга в 90-ые. Инвестбанки в моем представлении сегодня - это клепание презентаций в Power Point для клиентов и программисты как второсортные cost centers. Видимо, такими эти банки сделали регуляции после кризиса 2008 года, когда им пришлось избавиться от своих самых рисковых (и технически продвинутых) отделов.

3️⃣Citadel и многие другие лидеры индустрии были на грани коллапса в 2007 году. Раньше я думал тот кризис коснулся только банков, но книга рассказывает про quant meltdown - далекая часть финансовой индустрии (дефолты в банках по ипотечным кредитам), затронула хэдж-фонды, торговавшие совсем другие инструменты

Вердикт

Книга мне понравилась - к прочтению рекомендуется! Если кто может накидать ещё книг по теме (как про историю, так и технических) - буду благодарен

#books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤3
Супер быстрый бинарный поиск⚡️

Бинарный поиск знаком любому школьнику и студенту. Всего 5 строк кода, казалось бы - разве там вообще можно что-то ускорить?

Есть и весьма много! Ключ (как обычно в таких случаях) в понимании того, что процессор и железо в реальном мире делают кучу работы, лежащие за пределами нашего кода.

Итак, доклад CppCon от Сергея Слотина, где он за час проходит от простых до сложных методов и сравнивает их с std::lower_bound, доходя по итогу до ускорения в 15 раз 💪

1️⃣ Branchless binary search.
If в котором мы решаем в какую половину массива пойти, плохо предсказывается branch predictor-ом процессора и стопорит работу. С помощью пары махинаций этот иф можно переписать чуть по другому (но всё ещё в 3 строчки) - бранч исчезает из ассемблера и заменяется инструкцией cmov (conditional move). Очень простое и изящное ускорение в 3 раза на маленьких массивах

2️⃣ Eytzinger Binary Search
Переставляем элементы массива по мотивам бинарной кучи для улучшения кэш локальности. Пусть есть элемент с позицией k, тогда его непосредственные потомки в поиске будут на позициях 2k, 2k + 1. Получим расклад, где часто нужные элементы лежат рядом в соседних кэш-линиях. Например в начале массива лягут элементы с оригинальными позициями ½n, ¼n, ¾n, ⅛n, ⅜n ..., всегда нужные на первых итерациях. С небольшим тюнингом получаем ускорение уже в 4 раза на больших массивах.

3️⃣ B-trees + SIMD
Наворачиваем на предыдущий подход деревья, где в нодах лежат несколько элементов + SIMD, постепенно получается результат в 15 раз и это не предел. Впрочем реализация и работа с индексами уже становится заметно сложными.

📙 Прислушиваюсь к просьбе посоветовать, что почитать - например, в начале доклада Сергей рекламирует свою книгу Algorithms for Modern Hardware, где эта оптимизация и многие другие вещи объяснены подробнее. Я читал её сколько-то лет назад и мне понравилось.

https://www.youtube.com/watch?v=1RIPMQQRBWk
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4❤2
Anthropic опубликовали исходное тестовое задание для инженеров

Пару недель назад компания Anthropic (те самые которые делают Claude) опубликовали свой take-home test, который использовали для отбора кандидатов ещё до недавнего времени.

Этот факт бы меня может и не заинтересовал, но задание не лишь бы из какой команды, а Perfomance Engineering! Занимаются ускорением training/inference. Вскоре я сел на него посмотреть и порешать.

❓ Что в тесте?

Задание интересное и сделано качественно. Вам дана реализация эмулятора вымышленного процессора. Нужно создать программу, решающую задачу обхода дерева, которая отработает на этом процессоре как можно быстрее (задача оптимизации, нужно найти решение как можно лучше).

На мой взгляд, задание достаточно сложное. Объяснений дано минимально - нужно самому быстро разобраться с реализацией эмулятора, понять как тестировать свой код и использовать дебаггер. При решении вручную (без AI) допустить мелкую ошибку и потерять на поиске багов кучу времени - проще простого.

👨‍💻 Мой опыт
Выложенное задание близко к оригинальному, изначально оно давалось кандидатам на 4 часа, а потом с некоторыми изменениями на 2 часа. Видимо на тот момент стало подразумеваться разрешенное использование AI - без него 2 часа выглядит почти нереальным лимитом.

Лично у меня ушло около часа в спокойном темпе въехать с чем я вообще имею дело и начать оптимизировать (как я потом прочитал в статье авторов о задании - это похоже на ожидаемое время).

В какой-то момент я застрял в долгом дебаге. Я обратился Claude за помощью и он сразу нашел глупый баг, а ещё объяснил мне, что я неверно пользовался предоставленным дебаггером. Что ж, в 2026 меня уже не удивляет, что машина с такими вещами может разобраться лучше меня 🙂 Писать и отлаживать код вручную сегодня - хорошо для тренировки мозга, но в рабочих условиях редко самое эффективное занятие.

🤓 Рассказ от авторов

Даже если вы не готовы тратить время на само задание (или например это вообще не ваша тема), то рекомендую почитать статью о том как менялось задание и в какой-то момент стало очевидно, что нужно новое. Ведь оптимальной стратегией для прохождения теста стало просто проделегировать Claude и ждать результата.

Автор считает, что бессмысленно запрещать AI на онлайн тестовых (как минимум это сложно сделать на практике) По его мнению хорошое тестовое должно быть в состоянии отличить "... where human reasoning could win over Claude's larger experience base".

Пока это всё ещё возможно. Надолго ли - вопрос открытый.

#ai #optimization
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4❤1
Индустрия с самым точным прогнозом погоды ☔

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

А вот что может показаться неожиданным - в ход может идти вообще всё, если это даёт преимущество (и не нарушает закон).

За последние 5-10 лет в интернете появилось много статей, что фонды активно нанимали метеорологов и использовали свои ресурсы для построения best in class прогнозов погоды - гораздо более точных чем те, что доступны публично

Кто и зачем?

Часто в этой связи пишут про Citadel (FT утверждали о найме более 20 человек в США и Великобритании), но и остальные не отставали - упоминания есть о многих крупных игроках (Jane Street, Millennium, Balyasny)

Область применения на самом деле понять легко - погода имеет решающие значение в формировании спроса на газ, урожаях зерна, кофе и другие commodities ☕️ 🥖

А что там по деньгам?💲

Исторически метеорология не известна как индустрия, в которой много платили. В основном это госслужба - публичные данные в США говорят о медиане в 97 тысяч долларов в год, в Великобритании около 40 тысяч фунтов

Блумберг утверждает, что в фондах за экспертизу специалистов в этой области платят до 1 млн в год

(Интересно представить лица метеорологов, когда они увидели суммы в офферах в 10 раз больше того, что им платили на тот момент 🙂)

Пример статьи, кажется перепечатку с Bloomberg (зато можно открыть без paywall)

P.S если примеры использования такого рода неожиданных вещей в индустрии интересна, то оставляйте реакции/комментарии, когда-нибудь напишу и о других примерах

https://financialpost.com/pmn/business-pmn/hedge-funds-paying-up-to-1-million-for-weather-modeling-experts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24⚡2