Инженер по производительности
Мы ищем выдающегося инженера по производительности, который присоединится к нашей растущей технологической организации. Собеседования в PDT намеренно сосредоточены на поиске отличных людей, которые могут построить с нами долгосрочную, влиятельную карьеру.
Инженеры по производительности в PDT отвечают за глубокое понимание и оптимизацию систем, которые обеспечивают масштабируемость наших торговых стратегий. Вы будете работать на стыке программного обеспечения, систем и оборудования для анализа производительности, повышения эффективности инфраструктуры и высвобождения критически важных вычислительных ресурсов. Ваша работа напрямую ускоряет работу исследователей и масштабирует наши основные модели, оказывая огромное влияние как за счет экономии средств, так и за счет ускорения инноваций. Вам понравится работать в PDT, если вы любите открытые задачи, углубляетесь в оптимизацию GPU и оптимизацию/проектирование систем, и готовы довести свои открытия до производственного масштаба.
Это гибридная позиция, требующая от сотрудника минимального присутствия в нашем офисе в Нью-Йорке 3 дня в неделю.
Почему стоит присоединиться к нам
PDT Partners имеет звездный послужной список продолжительностью более 30 лет и репутацию превосходства. Наша цель — быть лучшим количественным инвестиционным управляющим в мире, измеряемым качеством нашей продукции, а не ее размером. Очень высокий процент удержания сотрудников в PDT говорит сам за себя. Наши сотрудники интеллектуально выдающиеся, а наше сообщество — сплоченное, приземленное и разнообразное.
Ключевые обязанности
- Анализ и понимание сквозной производительности системы для повышения пропускной способности и скорости работы исследователей.
- Работа на уровне ОС, ядра, сетевого стека, подсистем хранения данных, иерархии памяти и уровней ЦП для оптимизации использования вычислительных ресурсов.
- Проведение глубокого анализа с использованием инструментов производительности Linux для выявления узких мест, выбросов задержек и не масштабируемых шаблонов.
- Чтение и понимание программных слоев, от кода приложений до сред выполнения языка, системных библиотек и путей выполнения кода ядра, предоставление предложений/PR, оптимизирующих критические пути.
- Высвобождение мощностей, снижение затрат и масштабирование моделей за счет повышения вычислительной эффективности путем настройки, конфигурации и архитектурных изменений.
- Разработка систем для улучшения телеметрии и наблюдаемости производительности.
- Проведение оценок прототипов новых технологий производительности (новые функции ядра, альтернативные системные библиотеки) и участие в принятии решений по проектированию систем.
- Совместная работа с командами разработчиков для выявления регрессий производительности, проверки кода, чувствительного к производительности, и обмена знаниями по оптимизации в организации.
Ниже приведен список навыков и опыта, которые мы считаем релевантными. Даже если вы не считаете себя идеальным кандидатом, мы все равно призываем вас подать заявку, поскольку мы стремимся развивать наших сотрудников.
- Экспертиза в области внутренних компонентов Linux: подсистемы ядра, планирование, управление памятью, виртуальная память, cgroups, namespaces и сетевой стек.
- Инструменты производительности: владение perf, eBPF, Ftrace, strace, sysstat и связанными инструментами трассировки/профилирования. Способность разрабатывать собственные инструменты, когда существующие недостаточны.
- Оптимизация на уровне системы: опыт настройки производительности системы и приложений с использованием sysctl, политик планировщика, осведомленности о топологии NUMA, аллокаторов памяти, сетевых настроек и конфигурации ввода-вывода хранилища.
- Интерфейс аппаратное обеспечение-программное обеспечение: глубокое понимание микроархитектуры ЦП, иерархии кэшей, подсистем памяти, аппаратных счетчиков производительности и того, как поведение программного обеспечения соотносится с реальностью аппаратного обеспечения.
- Универсальные навыки программирования: уверенное чтение и внесение вклада в код на нескольких языках (C, C++, Python, Go, Rust, Java) и быстрое ориентирование в незнакомых кодовых базах.
- Наблюдаемость и телеметрия: опыт создания или интеграции инфраструктуры мониторинга и наблюдаемости (Prometheus, Grafana, OpenTelemetry).
- Командная работа и коммуникабельность: способность целостно анализировать производительность и эффективно доносить выводы, компромиссы и рекомендации до команд разработчиков и заинтересованных сторон.
Диапазон заработной платы для этой должности составляет от 195 000 до 225 000 долларов США. Этот диапазон не включает возможные бонусные выплаты. Факторы, которые могут повлиять на согласованную заработную плату в пределах диапазона для конкретного кандидата, включают годы опыта, уровень полученного образования, набор навыков и другие внешние факторы.