Инженерная разработка ПО в Алматы — Codelabs
RU|EN|KK

16+ лет · 297 репозиториев кода · системы, которые работают прямо сейчас

Системы, которым нельзя ошибаться

Мы — инженерная команда. Строим и поддерживаем продукты, где нельзя потерять платёж, показать неверный баланс или лечь под нагрузкой в час пик: платёжные шлюзы, криптообмен, игровые и букмекерские платформы, кассовые сети, видеотрансляции, носимую электронику.

Всю цепочку делаем сами — от чертежа печатной платы и прошивки внутри устройства до серверов, базы данных и того сайта, который видит ваш клиент. Поэтому в проекте не появляется «ничьей» части, за которую никто не отвечает.

◆Участник международного технопарка «Астана Хаб»

~1.5 млн
денежных операций в сутки
столько проводит платформа, которую мы построили и обслуживаем
2.18 млн
игроков на одной платформе
и 1.24 млн пополнений счёта за 30 дней
85 млн+
операций в криптошлюзе
приём и вывод в 10 блокчейн-сетях
16+ лет
команда работает вместе
первый код в наших репозиториях — 2009 года

Как с нами работают

01

Построить продукт с нуля

Вы приходите с задачей — получаете работающую систему: проектирование, разработка, запуск, передача вашей команде. Так у нас сделаны платёжный шлюз, криптообмен, лотерейная платформа, устройство для трекинга спортсменов и ещё десяток продуктов.

02

Починить и ускорить то, что уже работает

Система тормозит, теряет деньги или падает под нагрузкой — находим настоящую причину и доводим исправление до продакшена. Один такой разбор ускорил расчёт ставок в 15 раз, другой избавил платформу от 267 двойных выплат.

03

Взять на себя эксплуатацию

Серверы, обновления, мониторинг, резервные копии, дежурство при авариях. Для нас это не побочная активность: мы держим собственную инфраструктуру на 300+ проектов, пять независимых систем наблюдения и разбираем каждую серьёзную аварию до первопричины.

Что мы делаем

6 из 11 направлений
01

Системы, в которых считаются деньги

Высоконагруженные транзакционные системы

Кошельки, платежи, начисления, ставки — всё, где ошибка в одной строке кода превращается в реальный убыток. Мы строим их так, чтобы платёж нельзя было провести дважды, а баланс не мог уйти в минус, даже когда тысячи людей платят в одну и ту же секунду. А если операция зависла где-то между вашей системой и банком — она не останется висеть: система сама доведёт её до конца или вернёт деньги.

Платформа, которую мы ведём, проводит около 1.5 млн денежных операций в сутки. После того как мы переписали расчёт выплат, исчезли 267 двойных выплат и очередь из 437 тысяч зависших задач.

02

Приём и вывод денег любым способом

Платёжная интеграция и финтех

Подключаем к вашему продукту то, чем реально платят ваши клиенты: банковские переводы, мобильные деньги, криптовалюту, наличные через кассу или терминал. Каждый платёжный провайдер разговаривает по-своему, и половина из них — на языке десятилетней давности. Для нас это рутина. Если подходящего шлюза на рынке нет — строим свой: у нас уже есть собственный, с 21 подключённой платёжной системой.

Больше 20 интеграций в Карибском регионе, Латинской Америке и СНГ. Плюс собственная сеть денежных переводов: человек вносит наличные в одной стране, получатель забирает их в другой по PIN-коду.

03

Приём криптовалюты и обмен на обычные деньги

Криптопроцессинг

Клиент платит вам в USDT, биткоине или другой монете — вы получаете сумму в местной валюте и не думаете о блокчейне. Курс подбирается автоматически по реальным заявкам на биржах, входящие платежи проверяются на «грязное» происхождение, ключи от кошельков лежат зашифрованными и расшифровываются только в момент перевода.

Наш шлюз работает с 10 сетями — Ethereum, TRON, Solana, TON, Bitcoin и другими. За время работы прошло больше 85 млн операций, база данных выросла до 283 ГБ.

04

Данные, которые обновляются мгновенно

Real-time системы и потоковые данные

Коэффициенты ставок, биржевые котировки, показания датчиков — всё, что меняется по несколько раз в секунду и должно одновременно дойти до тысяч экранов. Здесь мало «просто передать данные»: нужно, чтобы у человека не прыгали цифры, ничего не терялось при обрыве связи и события не перепутались местами. Мы написали такое ядро с нуля и знаем, где оно ломается.

Наше ядро принимает поток котировок по 12 видам спорта и раздаёт его тысячам браузеров одновременно. Работает в продакшене с 2020 года.

05

Видео в реальном времени и управление техникой через браузер

Live-видео и удалённое управление оборудованием

Показываем сотни и тысячи живых видеопотоков в браузере — без плагинов и с задержкой в доли секунды. Самый наглядный наш проект: человек из браузера играет на настоящем игровом автомате, который физически стоит в зале. Нажатие на экране доходит до платы внутри корпуса и замыкает контакт, автомат отрабатывает, камера показывает результат. Тот же подход работает для любой техники, которой нужно управлять на расстоянии и видеть результат своими глазами.

Около 1000 подключённых автоматов и примерно 2000 одновременных видеопотоков: экран и камера на каждый аппарат.

06

Электроника: от чертежа платы до готового устройства

Встраиваемые системы и электроника

Делаем «железо» целиком, а не собираем проект из чужих кусков: рисуем схему и печатную плату, пишем прошивку, поднимаем сервер, куда устройство шлёт данные, и интерфейс, где эти данные видит человек. Отдельно пишем драйверы к промышленной технике — купюроприёмникам, выдатчикам наличных, чековым принтерам, считывателям карт.

Свои платы и прошивки на ESP32, STM32 и AVR — вплоть до сетевой платы, для которой пришлось написать собственный сетевой стек: готовый не помещался в память микроконтроллера.

Ещё: Аналитика и отчёты по большим данным · Игровые платформы и математика игр · Мобильные приложения · Тестирование и ускорение медленных систем · Серверы и эксплуатация

Все 11 услуг →

Что уже построено

5 из 12 кейсов
CASE 05Криптоплатёжный шлюз

Криптоплатежи в 10 блокчейн-сетях

Задача звучит просто: клиент платит криптой — бизнес получает деньги в местной валюте. За этой простотой прячется всё остальное: выдать каждому клиенту свой адрес, увидеть входящий платёж в блокчейне, дождаться подтверждений, проверить происхождение денег, посчитать курс и не потерять на нём. Мы собрали всё это в одну систему.

КриптоПлатежиПроверка на AML
Разбор кейса →
Чертёж: горизонтальная ось с размерными линиями, в центре круг с янтарной точкой, слева блок из шестиугольников, справа плотная стопка слоёв
  • ▸больше 85 млн операций
  • ▸10 сетей: Ethereum, TRON, Solana, TON, Bitcoin и другие
  • ▸курс считается автоматически по заявкам на биржах
CASE 09Сеть денежных переводов

Наличные, отправленные из одной страны в другую

Человек вносит наличные в кассе одной страны, получатель забирает их в другой по номеру перевода и четырёхзначному PIN. Комиссия делится между принявшей точкой, оператором и выдавшей точкой автоматически. Каждый запрос и каждый ответ подписаны криптографически, все операции пишутся в два независимых журнала, а после десяти неверных PIN перевод блокируется.

ПлатежиКассыФинтех
Разбор кейса →
  • ▸выдача наличных по PIN в агентской точке
  • ▸три части комиссии распределяются автоматически
  • ▸конвертация между тремя валютами
  • ▸двойное журналирование всех операций
CASE 07IoT-трекинг и локальное позиционирование

Датчик на футболисте и тепловая карта поля

Тренеру нужно видеть, сколько игрок пробежал, где он был на поле, как часто ускорялся и что происходит с его пульсом. Мы разработали носимую метку — сами нарисовали плату, сами написали прошивку, — расставили по стадиону приёмники и написали сервер, который по радиосигналу вычисляет положение каждого игрока. Тренер получает живую карту поля во время матча и тепловые карты после него.

IoTСпортЭлектроника
Разбор кейса →
Чертёж: слева носимая метка с размерными линиями и выноской на плату, справа схема поля с круговой тепловой картой в центре
  • ▸своя плата: радиомодуль, датчики движения, ЭКГ, GPS
  • ▸положение считается по радиосигналу с нескольких приёмников
  • ▸зарядные капсулы для меток — тоже наша разработка
CASE 02Перенос истории в колоночное хранилище

Горячая база уменьшена в 45 раз — платежи не останавливались

Денежный журнал разросся до сотен миллионов строк, и всё, что с ним работало, начинало тормозить. Мы оставили в основной базе одни сутки вместо сорока пяти, а всю историю отправили в отдельное хранилище — потоком, с задержкой в секунды. Каждый отчёт переводили на новое чтение по одному, маленькими релизами, и на каждом шаге сверяли старый ответ с новым: расхождение должно было быть нулевым. Так и вышло.

ДанныеMariaDBClickHouse
Разбор кейса →
  • ▸горячая база: 1 сутки вместо 45 дней
  • ▸история сохранена целиком
  • ▸сверка на каждом шаге: расхождение 0.00
  • ▸платежи не останавливались
CASE 11Протокольные эмуляторы и приёмка

Замена кассового ПО без единого расхождения

Кассовое ПО меняли на новое, и нужно было доказать, что новая система считает так же, как старая. Мы написали эмулятор для каждого игрового клиента — двенадцать штук, — прогнали через них тысячи ставок и построчно сверили отчёты обеих систем. Любое расхождение роняло сборку, поэтому «кажется, всё сходится» превратилось в проверяемый факт.

QAКассыАвтотесты
Разбор кейса →
  • ▸12 эмуляторов сетевых протоколов
  • ▸тысячи ставок за прогон
  • ▸сверка каждого выигрыша с таблицами коэффициентов
  • ▸расхождение — красная сборка в CI
Остальные семь — на странице кейсов.Все 12 кейсов →

Что можем построить под вас

7 направлений

Это не сделанные проекты, а задачи, которые ложатся на уже построенное. У каждой указано, на чём именно основан опыт, — чтобы можно было проверить, а не поверить на слово.

01

Аналитика поверх боевой базы, не роняя её

Отчёты и дашборды считаются на отдельном хранилище, куда данные едут потоком из основной базы. Боевая система не замедляется в момент построения отчёта, а история остаётся за все годы, а не за последние девяносто дней.

Опора — Хранилище отчётности на 1.63 млрд строк, поток изменений из боевой базы, отчётность по нескольким часовым поясам без сдвига границ суток.

Кому — Тем, кто вырос из отчётов, которые запускают ночью прямо на боевой базе.

02

Платёжный контур и кошелёк внутри сервиса

Приём денег через нескольких провайдеров, баланс пользователя внутри сервиса, выплаты исполнителям и ежедневная сверка. Повторное нажатие кнопки не создаёт второй платёж, зависшая между вами и банком операция не остаётся висеть.

Опора — Денежное ядро, через которое проходит около 1.5 млн операций в сутки, с автоматической сверкой расхождений.

Кому — Маркетплейсам, курьерским и сервисным платформам, подписочным продуктам.

03

IoT-продукт под ключ: от платы до личного кабинета

Схема и печатная плата, прошивка, радиоканал, серверная часть, обновление устройств «по воздуху» и веб-панель, где всё это видно. Одна команда на всю цепочку — между железом и софтом не остаётся ничьей зоны.

Опора — Носимое устройство собственной разработки: своя плата с радиомодулем, датчиками движения, ЭКГ и GPS, обновление прошивки без визита к устройству.

Кому — Производству, агро, ЖКХ, контролю холодовой цепи.

04

Сбор показаний с промышленного оборудования

Счётчики, контроллеры, весы и датчики говорят каждый на своём протоколе. Мы приводим их к одной картине с историей, порогами и оповещением, когда показание вышло за норму.

Опора — Драйверы промышленной периферии по спецификации протокола и сетевые контроллеры на микроконтроллерах — вплоть до собственного сетевого стека на плате.

Кому — Энергоучёту, ЖКХ, производству.

05

Удалённый доступ к физическому объекту через браузер

Живое видео с малой задержкой плюс управление реальным оборудованием в кадре: осмотреть товар, принять работу, запустить стенд, поторговаться на живом лоте — не приезжая на место.

Опора — Около тысячи устройств онлайн и 1998 одновременных видеопотоков, где нажатие кнопки в браузере замыкает контакт на плате внутри корпуса.

Кому — Аукционам, удалённой приёмке, шоурумам, сервису оборудования.

06

Конвейер быстро меняющихся цен

Поток изменений раскладывается по объектам и уходит в тысячи открытых браузеров. Если у клиента оборвалась связь, он получит корректно восстановленную картину, а не обрывки, и не увидит цену, которой уже нет.

Опора — Ядро котировочного потока на C++ в продакшене с 2020 года: снапшот плюс инкременты, собственный протокол доставки.

Кому — Биржевым витринам, аукционам, динамическому ценообразованию, диспетчерским.

07

Тиражирование продукта под партнёров

Один код — много брендов: оформление, домены, лимиты и тарифы задаются настройкой, а не копией проекта под каждого клиента. Обновление выкатывается всем сразу, а не семь раз подряд.

Опора — 15 брендов из одной кодовой базы на действующей платформе, сборка и выкладка тиражей автоматизированы.

Кому — Тем, кто начал продавать свою платформу другим компаниям.

На чём работаем

опыт в проде, не список из вакансии
Чем пишем серверную часть
Основа систем, где считаются деньги и держится нагрузка.
PHP (Symfony, Laravel, RoadRunner)C++ (Qt, CUDA)Node.js / TypeScriptJava (Spring, Kafka)PythonC (микроконтроллеры)
Что видит пользователь
Сайты, личные кабинеты, панели управления, игры в браузере.
ReactReact Router (SSR)Vue / NuxtEffectorTailwindMantine
Где храним данные
От денежных операций до архивов на миллиарды строк.
MariaDB / MySQL (Galera)ClickHousePostgreSQLRedisMongoDBMinIO
Как передаём данные мгновенно
Живые обновления в браузере и очереди между сервисами.
RabbitMQKafkaCentrifugouWebSockets.jsWebSocketсобственные протоколы TCP / UDP
Из чего делаем устройства
Схема, плата, прошивка, радиосвязь.
ESP32 (ESP-IDF, FreeRTOS)STM32 (HAL, CubeMX)AVRRaspberry PiKiCad, ProteusUWB (Decawave)
На чём всё это живёт
Серверы, автоматическая выкладка обновлений, мониторинг, бэкапы.
DockerAnsibleGitLab CInginxZabbixPrometheus / Grafana
Весь стек →

Опишите задачу — ответим, что из неё у нас уже построено

Расскажите, что нужно сделать. Ответим, что из этого у нас уже построено и работает.