11 направлений
Одиннадцать направлений, и за каждым — конкретная система, которая работает прямо сейчас. Если направления нет в списке, это не значит, что мы за него не возьмёмся: значит, у нас нет доказательства, и мы скажем об этом прямо.
Высоконагруженные транзакционные системы
Кошельки, платежи, начисления, ставки — всё, где ошибка в одной строке кода превращается в реальный убыток. Мы строим их так, чтобы платёж нельзя было провести дважды, а баланс не мог уйти в минус, даже когда тысячи людей платят в одну и ту же секунду. А если операция зависла где-то между вашей системой и банком — она не останется висеть: система сама доведёт её до конца или вернёт деньги.
Платформа, которую мы ведём, проводит около 1.5 млн денежных операций в сутки. После того как мы переписали расчёт выплат, исчезли 267 двойных выплат и очередь из 437 тысяч зависших задач.
Платёжная интеграция и финтех
Подключаем к вашему продукту то, чем реально платят ваши клиенты: банковские переводы, мобильные деньги, криптовалюту, наличные через кассу или терминал. Каждый платёжный провайдер разговаривает по-своему, и половина из них — на языке десятилетней давности. Для нас это рутина. Если подходящего шлюза на рынке нет — строим свой: у нас уже есть собственный, с 21 подключённой платёжной системой.
Больше 20 интеграций в Карибском регионе, Латинской Америке и СНГ. Плюс собственная сеть денежных переводов: человек вносит наличные в одной стране, получатель забирает их в другой по PIN-коду.
Криптопроцессинг
Клиент платит вам в USDT, биткоине или другой монете — вы получаете сумму в местной валюте и не думаете о блокчейне. Курс подбирается автоматически по реальным заявкам на биржах, входящие платежи проверяются на «грязное» происхождение, ключи от кошельков лежат зашифрованными и расшифровываются только в момент перевода.
Наш шлюз работает с 10 сетями — Ethereum, TRON, Solana, TON, Bitcoin и другими. За время работы прошло больше 85 млн операций, база данных выросла до 283 ГБ.
Real-time системы и потоковые данные
Коэффициенты ставок, биржевые котировки, показания датчиков — всё, что меняется по несколько раз в секунду и должно одновременно дойти до тысяч экранов. Здесь мало «просто передать данные»: нужно, чтобы у человека не прыгали цифры, ничего не терялось при обрыве связи и события не перепутались местами. Мы написали такое ядро с нуля и знаем, где оно ломается.
Наше ядро принимает поток котировок по 12 видам спорта и раздаёт его тысячам браузеров одновременно. Работает в продакшене с 2020 года.
Live-видео и удалённое управление оборудованием
Показываем сотни и тысячи живых видеопотоков в браузере — без плагинов и с задержкой в доли секунды. Самый наглядный наш проект: человек из браузера играет на настоящем игровом автомате, который физически стоит в зале. Нажатие на экране доходит до платы внутри корпуса и замыкает контакт, автомат отрабатывает, камера показывает результат. Тот же подход работает для любой техники, которой нужно управлять на расстоянии и видеть результат своими глазами.
Около 1000 подключённых автоматов и примерно 2000 одновременных видеопотоков: экран и камера на каждый аппарат.
Встраиваемые системы и электроника
Делаем «железо» целиком, а не собираем проект из чужих кусков: рисуем схему и печатную плату, пишем прошивку, поднимаем сервер, куда устройство шлёт данные, и интерфейс, где эти данные видит человек. Отдельно пишем драйверы к промышленной технике — купюроприёмникам, выдатчикам наличных, чековым принтерам, считывателям карт.
Свои платы и прошивки на ESP32, STM32 и AVR — вплоть до сетевой платы, для которой пришлось написать собственный сетевой стек: готовый не помещался в память микроконтроллера.
Данные и аналитика
Отчёты, которые не отвечают минутами и не роняют боевую базу. Данные из рабочей системы потоком уезжают в отдельное хранилище, приспособленное считать по миллиардам строк, — и отчёт строится там, не мешая людям платить и оформлять заказы. История при этом остаётся вся, а не за последние девяносто дней.
Отчёты, упиравшиеся в 15-секундный лимит базы, теперь считаются за 0.2–10.6 секунды. Выгрузки и постраничный просмотр работают поверх таблицы в 90 млн строк без таймаутов. Сама горячая база сжата в 45 раз — без остановки платежей.
iGaming: платформы, игры, математика
Игровая платформа целиком: сайт для игроков, касса в наземных точках, бэк-офис, партнёрская программа, подключение внешних поставщиков игр, букмекерский модуль и лотереи. Математику игр считаем сами: процент возврата настраивается и проверяется расчётом, а не на глаз.
12 собственных игр, 8 подключённых внешних провайдеров, 159 математических ядер слотов с настраиваемым процентом возврата и встроенной проверкой методом Монте-Карло. Лотерейная платформа работает на официальных розыгрышах США.
Мобильная разработка
Приложения для Android и iOS — и обычные, из магазина, и те, что живут вне его: с собственным обновлением там, где магазин недоступен или не подходит по правилам. Делаем и нестандартное — например, приложение, превращающее телефон в SMS-шлюз там, где обычные операторские сервисы не работают.
Android-приложения с самообновлением в обход магазинов, нативные iOS и Android, Unity-клиент с аппаратным декодированием видео, телефоны-шлюзы, через которые проходит около 7.5 тысяч SMS в неделю.
QA и нагрузочный инжиниринг
Не «прокликать перед релизом», а найти, где система упрётся в потолок, и убрать этот потолок. Пишем собственные генераторы нагрузки, воспроизводим час пик до того, как он случится, и сверяем деньги до копейки: сколько принято, сколько начислено, сходится ли.
Наш генератор нагрузки на 274 виртуальных игрока вскрыл узкое место в расчёте ставок — после переделки темп вырос с 290 до 4360 ставок в минуту. Финансовый аудит прогонов на 123 543 ставках: ноль двойных выплат, ноль потерянных начислений.
DevOps и эксплуатация
Берём на себя то, что должно работать круглосуточно: серверы, выкладку обновлений, наблюдение, резервные копии и дежурство при авариях. Обновления выкатываются автоматически и одинаково, а не руками по SSH; за системой смотрят несколько независимых систем наблюдения, чтобы отказ одной не оставил вас вслепую.
Своя фабрика сборки на 301 проект и 15+ машин-исполнителей, 47 ролей автоматической настройки серверов, пять независимых трактов наблюдения, бэкапы с обязательной проверкой восстановимости и разбор каждой серьёзной аварии до первопричины.