Компания: студия-разработчик и издатель игр, специализируется на жанре 4X-стратегий и ставит перед собой амбициозную цель — вывести свою игру на первое место среди стратегических игр в мире.
Мы ищем
Senior C++ Developer, который присоединится к команде разработки Game Backend Framework и SDK — внутреннего решения, упрощающего создание игровых механик.
Наш игровой проект включает около 500k строк кода, где единый игровой мир распределён между сотнями сервисных инстансов. Мы постоянно создаём новые игровые механики, и проект продолжает активно расти. Наша основная цель — обеспечить масштабируемость, гибкость, качество и простоту разработки новых игровых фич в будущем.
- Формат работы: Full-time, офис (Лимасол)
- Уровень: senior
Примеры задач:- Взаимодействие с командой разработки игры: анализ проблем, сбор требований и разработка решений.
- Создание модульных и гибких решений для игровых механик и удобных API в наших библиотеках для backend-сервисов.
- Рефакторинг легаси-кода: уход от god-объектов и dependency hell к модульной архитектуре и лучшим практикам.
- Исследование и внедрение новых подходов, ускоряющих разработку игровых фич (например, поиск высокоуровневых абстракций, внедрение скриптового языка).
- Расширение возможностей ORM для более гибкого хранения данных.
- Улучшение эффективности сетевого кода и асинхронных операций ввода-вывода.
- Оптимизация использования CPU/MEM.
- Оптимизация взаимодействия с базами данных и сторонними сервисами.
- Создание и поддержка технической документации для разработчиков.
Примеры наших разработок:- Кастомные обработчики запросов, таймеры и фоновые задачи.
- Unit of Work — обеспечение атомарности изменений сущностей с возможностью отката или сохранения в памяти и последующей записью в БД.
- ORM — работа с данными из кода без написания SQL-запросов.
- Генератор кода для бинарного RPC, ORM и других автоматизаций.
- Pub/Sub система событий для клиентов игры и межфункционального взаимодействия.
- Сообщения для обмена данными между игровыми функциями (включая S2S).
- Интерпретатор выражений для конфигураций игры, используемых геймдизайнерами.
- Система телеметрии в реальном времени.
Требования:- C++ (5+ лет): глубокие знания стандарта C++17+ и популярных библиотек.
- Проектирование ПО: умение писать простой и поддерживаемый код, знание принципов и паттернов проектирования, понимание распространённых архитектур.
- Разработка API: умение проектировать интуитивно понятные и расширяемые решения.
- Backend: уверенное знание серверных технологий и работы в Linux.
- Многопоточность: опыт работы с потоками, предотвращения гонок, дедлоков и конкуренции за блокировки; понимание корутин.
- Сетевое программирование: знание IP, TCP, UDP; опыт работы с TCP, HTTP, REST/RPC и асинхронными API.
- Базы данных: опыт работы с реляционными и NoSQL базами, кешированием и инвалидацией кеша.
- Python: знание или готовность быстро освоить для утилит и генерации кода.
- C#: знание или готовность изучить для поддержки C# версий SDK.
- Тестирование: опыт написания модульных и интеграционных тестов.
Преимуществом будет:- Портфолио кода, который вы можете показать.
- Понимание игровой индустрии и профильной терминологии.
- Опыт разработки игр.
- Базовые знания Cloud и CI/CD.
- Знание других языков программирования.
Мы используем:- C++20, Clang, CMake.
- Boost, ASIO, libfmt.
- PostgreSQL, Redis, Google Spanner.
- GitLab, TeamCity, Ansible.
- SonarQube, Clang-Tidy, Clang-Format.
- Python — для утилит и генератора кода.
- C# ASP.Net — для одного из сервисов.
- ОС: Ubuntu.