Инженер баз данных
Компания: Chess.com
Тип занятости: FULL_TIME
О нас
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 theorem, протоколы консенсуса и устойчивость к разделению.
- Владение инструментами 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% удаленно (работайте откуда угодно!).