Title: Member of Technical Staff (Search Core, Indexing & Data Pipeline Stream)
Company: Perplexity
Location: Belgrade / London / Remote / Berlin
Perplexity ищет высококвалифицированного инженера экспертных систем для нашей команды Search Core. Для направления индексации и обработки данных. Эта роль имеет решающее значение для создания поисковых продуктов и технологий нового поколения.
Обязанности
- Разработка и создание основных компонентов поисковой системы, особенно конвейеров индексации, форматов хранения данных, работающих с миллиардами страниц.
- Разработка потоковой и пакетной обработки данных с использованием систем YT для построения поискового индекса в среде с высокой нагрузкой.
- Расширение пределов производительности оборудования за счет низкоуровневой оптимизации и настройки на уровне системы.
- Решение проблем многопоточности, параллелизма и оптимизации на уровне системы.
- Разработка и создание основных компонентов поисковой системы, включая конвейеры индексации, алгоритмы поиска и системы ранжирования, работающие с миллиардами страниц.
- Разработка потоковых и пакетных систем обработки данных для построения поискового индекса в среде с высокой нагрузкой.
- Расширение пределов производительности оборудования за счет низкоуровневой оптимизации и настройки на уровне системы.
- Решение проблем многопоточности, параллелизма и оптимизации на уровне системы.
Квалификация
- Более 3 лет практического опыта в системном программировании (Rust, C++, C или аналогичные).
- Ответственность за полный жизненный цикл проекта: вы не просто пишете быстрый внутренний цикл, вы заботитесь о том, как система построена, развернута, эксплуатируется и масштабируется в продакшене.
- Знание Python или других скриптовых языков.
- Знание систем обработки данных (YT/Kafka/Hadoop).
- Страсть к написанию чистого, эффективного и масштабируемого кода на системном уровне.
- Глубокие знания алгоритмов и структур данных, а также способность эффективно их применять.
- Глубокое понимание многопоточности, включая различные подходы, проблемы и компромиссы.
- Опыт создания высоконагруженных, распределенных и аппаратно-ориентированных сервисов.
- Глубокое понимание основ Linux (системные вызовы, сетевой стек, модель памяти, настройка ядра).
- Знакомство с низкоуровневыми методами оптимизации (управление памятью, эффективность кэширования, SIMD, профилирование).
Желательно
- Опыт разработки основных компонентов поисковых систем, баз данных или систем информационного поиска.
- Понимание основ поиска: индексация, разбор запросов, ранжирование и релевантность.
- Опыт работы с торговыми системами или другими чувствительными к задержкам системами реального времени.
- Знакомство с облачными сервисами, Kubernetes и инфраструктурой AWS