Инженер баз данных
О нас
Chess.com — один из крупнейших игровых сайтов в мире и платформа №1 для игры, изучения и наслаждения шахматами.
Мы — команда из более чем 600 полностью удаленных сотрудников из более чем 60 стран, которые усердно работают, чтобы служить мировому шахматному сообществу. Мы здесь, чтобы поддерживать более 200 миллионов шахматистов по всему миру, предоставляя лучший возможный продукт, контент и инструменты для обслуживания сообщества!
Мы — технологическая компания. Игровая компания. Контентная компания. И мы делаем все это со страстью и приверженностью к игре. Прежде всего, мы ценим нашу миссионерскую, плоскую, жизнеутверждающую, некорпоративную культуру, и мы с нетерпением ждем встречи с вами и узнаем больше о том, что вы можете привнести в команду.
О вас
Должность инженера баз данных имеет решающее значение для создания и развития инфраструктуры баз данных 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, восстановление на определенный момент времени и процедуры аварийного восстановления.
- Доказанный послужной список успехов — история успешной реализации проектов и измеримых улучшений инфраструктуры.
- Вклад в проекты с открытым исходным кодом в экосистеме MySQL: инструменты, драйверы или инфраструктурные проекты.
О возможности
- Это полная занятость.
- Мы на 100% удаленные (работайте где угодно!).