Наша команда разрабатывает KPHP — сердце инфраструктуры бэкенда ВКонтакте. Это не только компилятор языка, на котором написано 10M+ строк кода бизнес-логики, но и языковой рантайм, веб-сервер и платформа исполнения, на которой работает весь бэкенд.
Сейчас мы глобально пересматриваем архитектуру всей системы и разрабатываем новый асинхронный рантайм на основе компонентной платформы поверх Tokio Rust. Наша ближайшая глобальная цель — перевести на новую платформу бэкенд ВКонтакте на масштабах 2 млн RPS.
А ещё мы занимаемся улучшением developer experience, прокачиваем производительность и надёжность системы.
Ищем специалиста, который усилит нашу команду.
У нас интересно
- Огромное влияние на продакшен ВКонтакте — 2 млн RPS живого трафика
- Большая часть разработки проходит в open source https://github.com/VKCOM/kphp
- Используем современные технологии — C++, Tokio Rust, stackless корутины
- Разнообразные задачи и отсутствие рутины
- Широкая зона ответственности и простор для творчества
- Нет лишней бюрократии
Примеры наших задач
Улучшение компилятора (стек C++)
- Улучшение типовой системы
- Внедрение escape-анализа
- Поддержка новых языковых фич
Развитие рантайма (стек C++)
- Разработка нового thread-safe re-entrant рантайма
- Улучшение стандартной библиотеки языка
- Оптимизация рантаймовых примитивов языка (строки, массивы, хеш-таблицы и другие)
- Оптимизация аллокатора
- Модернизация собственных корутин на основе языковых механизмов C++20
Разработка асинхронной компонентной платформы исполнения (стек Rust)
- Профилирование и тюнинг Tokio на продакшене
- Проектирование и разработка подсистемы исполнения CPU-bound задач
- Проектирование и реализация low-latency in-memory кеша для горячих пользовательских данных
- Модернизация сетевого слоя и тюнинг веб-сервера
- Различные бенчмарки и низкоуровневые оптимизации производительности на стыке Rust, C++ и не только
Требования
- Опыт работы на технологически сложных инфраструктурных проектах не менее трёх лет
- Отличное знание C++, принципов работы с памятью и умение писать понятный эффективный код
- Уверенное знание системного программирования
- Понимание принципов профилирования низкоуровневого кода и утилизации ресурсов
- Умение погружаться в незнакомый код любого уровня сложности
- Желание заниматься сложными инфраструктурными вещами
Будет плюсом
- Опыт или интерес к разработке языков
- Опыт или интерес к разработке на Rust
- Владение контекстом веб-разработки
Приглашаем специалиста, который сможет посещать офис в Москве или Санкт-Петербурге, работать в комбинированном режиме или удалённо. Ждём ваших откликов. Удачи!