Database Engineer
О вас
Инженер баз данных играет ключевую роль в построении и развитии инфраструктуры баз данных Chess.com, которая обеспечивает поддержку миллионов ежедневных шахматных партий, взаимодействий пользователей и крупномасштабной социальной сети. Эта должность предполагает разработку и создание высокопроизводительных, масштабируемых систем баз данных, а также внедрение автоматизации, инструментов и архитектурных улучшений в гибридной инфраструктуре Chess.com, объединяющей физические дата-центры и облачные сервисы. Должность требует глубоких знаний в области внутренних компонентов баз данных, моделирования данных, распределенных систем и практик разработки программного обеспечения для создания отказоустойчивых систем, обеспечивающих оптимальное взаимодействие с пользователями на глобальной платформе Chess.com.
Что вы будете делать
- Проектировать и разрабатывать архитектуру систем баз данных, оптимизированных для конкретных нагрузок Chess.com, включая игровой процесс в реальном времени, системы головоломок и обход социальных графов.
- Создавать внутренние инструменты и автоматизацию для повышения эффективности развертывания, миграции и эксплуатации баз данных, упрощая рабочие процессы для всего инженерного отдела.
- Разрабатывать конвейеры данных и ETL-процессы для аналитики, функций машинного обучения и синхронизации данных между системами.
- Разрабатывать многорегиональные архитектуры баз данных, способные обрабатывать огромные объемы шахматных партий, пользовательских данных и взаимодействий в социальной сети с минимальной задержкой.
- Решать сложные задачи моделирования данных, включая оптимизацию хранения шахматных партий, отслеживание попыток решения головоломок и представление крупномасштабных социальных графов.
- Управлять развитием платформы баз данных, оценивая и внедряя новые технологии, движки хранения и архитектурные шаблоны с упором на постоянное совершенствование.
- Создавать инструменты для наблюдения и анализа производительности, обеспечивающие глубокое понимание поведения баз данных, шаблонов запросов и тенденций использования ресурсов.
- Сотрудничать с командами разработки продуктов для проектирования оптимальных схем, шаблонов доступа и интеграции уровней данных, гарантируя, что нужные люди имеют необходимую им информацию.
- Внедрять практики Infrastructure-as-Code для предоставления ресурсов баз данных, их настройки и управления жизненным циклом с высоким качеством первого прохода.
- Участвовать в ротации дежурств для обеспечения круглосуточной доступности баз данных и вносить вклад в анализ пост-инцидентных отчетов.
Требуемые навыки
- 5+ лет профессионального опыта работы с крупномасштабными системами баз данных с высокой доступностью в производственных средах.
- Экспертное владение MySQL (Percona), включая внутренние компоненты, поведение движков хранения, топологии репликации и оптимизацию производительности.
- Сильные навыки разработки программного обеспечения с владением Python и/или Go для создания инструментов, автоматизации и конвейеров данных.
- Опыт проектирования и создания конвейеров данных с использованием фреймворков для потоковой или пакетной обработки.
- Значительный опыт работы с Redis для архитектур кэширования, систем pub/sub и высокопроизводительных структур данных.
- Продвинутые знания систем Linux, включая понимание поведения ядра, шаблонов ввода-вывода и оптимизации оборудования для нагрузок баз данных.
- Опыт работы с концепциями распределенных систем, включая компромиссы теоремы CAP, протоколы консенсуса и устойчивость к разделению.
- Владение инструментами Infrastructure-as-Code (Terraform, Ansible, Pulumi) для автоматизации инфраструктуры баз данных.
- Опыт работы с платформами мониторинга и наблюдаемости (Datadog, Prometheus, PMM) для создания решений по наблюдаемости баз данных.
- Глубокое понимание оптимизации запросов, включая планы выполнения, проектирование индексов и анализ рабочих нагрузок.
Предпочтительные навыки
- Опыт работы в игровой индустрии с пониманием требований к базам данных для игр в реальном времени и шаблонов доступа к данным с низкой задержкой.
- Глубокие знания внутренних компонентов MySQL, включая внутренние компоненты InnoDB, настройку буферного пула, журналы redo/undo и поведение MVCC.
- Опыт создания прокси или промежуточного ПО для баз данных (ProxySQL, Vitess, пользовательские решения) для управления соединениями и маршрутизации запросов.
- Экспертиза в репликации MySQL, включая репликацию на основе GTID, мульти-источниковую репликацию и оптимизацию задержки репликации.
- Опыт разработки облачных архитектур баз данных с использованием AWS (RDS, Aurora) и/или GCP (Cloud SQL, AlloyDB) для гибридных стратегий баз данных.
- Опыт работы с ScyllaDB и/или Cassandra для высокопроизводительных распределенных нагрузок с низкой задержкой.
- Знание стратегий шардинга и партиционирования MySQL для крупномасштабного распределения данных и повышения производительности запросов.
- Опыт создания инструментов для миграции с нулевым простоем (pt-online-schema-change, gh-ost) для эволюции схем в масштабе.
- Опыт работы с контейнерами и Kubernetes для разработки операторов баз данных и облачных развертываний MySQL.
- Экспертиза в резервном копировании и восстановлении MySQL, включая Percona XtraBackup, восстановление на определенный момент времени и процедуры аварийного восстановления.
- Подтвержденный опыт достижения результатов — История успешной реализации проектов и измеримые улучшения инфраструктуры.
- Вклад в open-source проекты экосистемы MySQL: инструменты, драйверы или инфраструктурные проекты.
О вакансии
- Это полная занятость.
- Мы работаем на 100% удаленно (можно работать из любой точки мира!).