Re[9]: А как понять зачем ехать в Microsoft кроме как ради д
От: DKM_MSFT  
Дата: 06.02.16 16:29
Оценка: 8 (6)
Здравствуйте, koandrew, Вы писали:

K>Ну расскажи хотя бы, какие же там технически сложные задачи доводится решать...


Да не вопрос. Задачи, решаемые нашей группой, можно условно разделить на три группы.

Исследовательско – алгоритмические
Примеры
1) Мы знаем, как делать деньги на pro-rata exchanges, но на price-time мы деньги теряем. Разобраться почему, и придумать, как делать деньги на price-time.
2) Мы быстро накапливаем риск и из-за этого не можем торговать. Придумать и реализовать алгоритм, как избавляться от риска, чтобы в результате делать больше денег
3) Сейчас наш алгоритм работает таким образом, что мы вынуждены посылать большое количество quotes, которые нельзя задерживать. Это создает проблемы на ряде рынков. Разобраться, как изменить алгоритм таким образом, чтобы он посылал на порядок меньше quotes, при этом сведя к минимуму потери в деньгах
4) Имея базу данных trades, ticks theoretical prices etc разобраться для каждой trade кто с кем торгует, почему, с помощью какого механизма и как можно было бы поучаствовать в некоторых из этих trades, избегая другие.
5) Разобраться, почему именно мы сделали или не сделали тот или иной trade (или trades) и исправить проблему

Задачи на производительность
1) Написать алгоритм таким образом, чтобы обрабатывать и реагировать на определенные события быстрее всех в природе, при этом, не упрощая его до такой степени, когда из-за излишней простоты начинаешь пропускать хорошие trades или делать плохие.
2) Редуцировать зашкаливающее-огромное количество market data ticks во время пиковых нагрузок до приемлемого количества, при этом не теряя важной информации, и быстро отправить результат на обработку дальше
3) Иметь возможность сохранить все это зашкаливающее-огромное количество market data ticks для последующего анализа, не теряя ни одного из них.
4) Разобраться, почему мы имеем провалы в производительности в определенных сценариях и исправить проблему

Задачи на инфраструктуру
1) Написать messanging system для общения между нашими компонентами, удовлетворящую нашим требованиям производительности, и оптимизированную под нас.
2) Написать базу данных, в которую необходимо добавлять десятки терабайт в день, при этом поток данных распределен крайне неравномерно. База данных должна быть оптимизирована для чтения под наши типы запросов.
3) Проанализировать структуру и взаимодействие наших компонентов между собой, найти неэффективности, разбить/консолидировать/переместить/создать новые компоненты для устранения неэффективностей.

K> Я вот что-то таких не припомню, прямо чтобы реально сложные были

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

K> Там другая проблема — всё нужно "вчера", и соответственно перманентный аврал.


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

Лично я прихожу в 9, ухожу в 6, правда с утра логинюсь на работу и проверяю, что система поднимается нормально. Занимает 5 минут, если все ок (так бывает в основном). Если есть проблемы, чаще всего они решаются или митигируются за 15-20 минут.

K> После работы приходишь домой выжатый как лимон


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

В Микрософте я начал думать, что это ощущение ушло навсегда. И вот работа в финансах вернула мне его.

K> Однако это нифига не то, что делает хорошего программиста хорошим программистом.

А что делает хорошего программиста хорошим программистом?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.