Принимаем новые проекты · команда исключительно из старших специалистов · преимущественно удаленная работа PWN-ALL · Студия разработки индивидуального программного обеспечения

Программное обеспечение в Rust и Python которая переживет команду, которая его выпустила.

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

Среднее улучшение p99 по 40 миграциям
Сокращение объема памяти 0 по сравнению с базовыми показателями JVM / Node
Сервисы в производственной среде 0 с 2024 года
Устраненные инциденты безопасности 0 за всю нашу историю
Команды, доверяющие нашему коду
01 Два языка. Не пять.

Один стек, выбранный специально.

Многоязычные агентства звучат отлично в презентациях. На практике это означает три системы сборки, четыре варианта null и кладбище полузаброшенных сервисов. Мы выбрали два языка, которые покрывают 95% реальных рабочих нагрузок — и мы стали очень, очень хороши в обоих.

Горячий путь · системы · безопасность

Rust

9,6 внутренний показатель соответствия

Безопасен для памяти без сборщика мусора. Без гонки за данными на этапе компиляции. Самый строгий рецензент кода, который у вас когда-либо был — и как только он вас пропустит, ваш сервис не разбудит вас в воскресенье.

Когда мы к этому стремимся

  • Платежные системы и все, что касается денег или личной информации
  • Высоконагруженные API-шлюзы с SLA на уровне 99,999%
  • Механизмы сопоставления с низкой задержкой, торговля, работа в реальном времени
  • Модули WebAssembly, отправляемые в браузер
  • CLI-инструменты и демоны, которые должны запускаться за миллисекунды

Компромиссы, которые мы не будем игнорировать

  • Введение в курс дела новых сотрудников: ~2–4 недели до начала продуктивной работы
  • Время компиляции в огромных рабочих пространствах (мы решаем эту проблему с помощью sccache)
  • Экосистема моложе, чем у Java — но зрелая там, где это важно
Связующее звено · данные · машинное обучение · скорость

Python

9,3 оценка внутренней согласованности

Самый быстрый путь от доски к работающей системе. Самая богатая экосистема на Земле для данных, машинного обучения и автоматизации. Современный Python — 3.12, uv, ruff, pydantic, FastAPI — это точный, типизированный и достаточно быстрый язык для большинства ваших задач.

Когда мы стремимся к этому

  • Внутренние инструменты, информационные панели, панели администратора
  • ETL, конвейеры данных, Airflow / Dagster / Prefect
  • ML — обучение, обслуживание, оценка
  • Автоматизация и интеграция с API поставщиков
  • MVP, которые будут выпущены в этом квартале, а не в следующем году

Компромиссы, которые мы не будем игнорировать

  • Пропускная способность на одном ядре в 20–50 раз ниже, чем у Rust
  • Больший объем памяти на запрос — фатально для некоторых рабочих нагрузок
  • Динамическая типизация создает проблемы без строгого mypy / pydantic
Rust, где ошибки обходятся дорого. Python, где медленная доставка обходится дорого. Одна команда. Никаких догм.
02 Цифры, а не впечатления

Rust и Python против обычных подозреваемых.

Нажмите на показатель, чтобы увидеть, где находится каждый язык. Оценки — от 0 до 10, составлены на основе наших собственных тестов и открытых источников (Techempower R22, CLBG, реальные миграции, которые мы провели).

Criterion Rust Python Go C++ Java Node.js
Производительность (p99, одноядерный процессор) 10 3 7 10 7 5
Безопасность памяти и конфликты доступа к данным 10 9 8 2 8 7
Срок создания рабочего прототипа 5 10 7 3 6 8
Широта экосистемы 8 10 7 9 10 9
Параллелизм без проблем 10 6 9 4 6 7
Операционные затраты на запрос 10 5 8 9 5 6
Наличие опытных специалистов 6 10 7 8 10 9
10-летняя ремонтопригодность 10 8 8 5 8 5
03 От → К

Что меняется при миграции.

Выберите исходный язык. Посмотрите, как повлияет переход на Rust или Python. Цифры — это средние значения по нашим последним 40 проектам миграции, а не маркетинговая пустота.

В настоящее время на

C / C++

Быстро, да. Но каждый нулевой указатель — это потенциальная уязвимость CVE, каждый поток — потенциальная гонка за данными, а ваша система сборки — это чья-то полная занятость.

Типичные проблемы
  • CVE, связанные с безопасностью памяти
  • Неопределенное поведение
  • Разрастание системы сборки
Перейти к

Rust

Пропускная способность ×6,4
Занятость памяти −78%
Сбои во время выполнения −99%
Ежемесячный счет за вычислительные ресурсы −65%

Идеально подходит, если вы сейчас сталкиваетесь с ошибками нулевого указателя, гонкой за данными или памятью, которая растет без ограничений. Rust сохраняет скорость и устраняет «ловушки».

Перейти на

Python

Скорость разработки ×3,1
Количество строк кода −55%
Время до выпуска −60%
Накладные расходы на выполнение +40%

Идеально подходит, когда реальная цена — это время разработчиков, а не ресурсы процессора. Обменяйте сырую пропускную способность на более короткий цикл обратной связи, богатые библиотеки и код, который люди действительно могут читать.

Как мы измеряем эти показатели

Средние значения по 40 завершенным миграциям в период с 2023 по 2026 год. Пропускная способность измеряется на уровне приложения (end-to-end p50 при реалистичной нагрузке, а не по микротестам). Память — это RSS в стабильном состоянии. Стоимость — это ежемесячные расчеты по требованию на AWS/GCP при прочих равномерных условиях. Индивидуальные результаты могут отличаться — по запросу мы публикуем и те, которые не пошли по плану.

04 Цифры без звездочек

Запросы в секунду при реальной нагрузке.

Идентичная рабочая нагрузка — проверка JSON → запрос к Postgres → рендеринг — измерена на одном компьютере с процессором AMD Ryzen 7. Это не микробенчмарки. Источник и методология ↓

  1. 1 Rust · Axum
    21 030 запросов/с
  2. 2 C# .NET · ASP.NET Core
    14 707 запросов/с
  3. 3 Node.js · Fastify
    9 340 запросов/с
  4. 4 C++ · Drogon
    7 200 запросов/с
  5. 5 Go · Gin
    3 546 запросов/с
  6. 6 Python · FastAPI (Uvicorn)
    1 185 запросов/с
  7. 7 PHP · Laravel
    299 запросов/с

Поймите это правильно: Python находится почти в самом низу этого графика, и это нормально. Мы не запускаем FastAPI на «горячем» пути. Мы запускаем его там, где 1 185 запросов в секунду уже примерно в 10 раз превышают потребности рабочей нагрузки, а часы работы инженеров ценятся выше, чем циклы ЦП. Методология: AMD Ryzen 7, Linux, Docker, один экземпляр, один популярный фреймворк на каждый язык. Цифры представляют собой средние значения по нескольким прогонам.

05 Реальная стоимость некорректного кода

Во сколько вам на самом деле обходится сбой.

«Пять девяток» — это не маркетинговый трюк. Ниже приведены расчеты стоимости одного часа незапланированного простоя по отраслям — с указанием источников. Мы создаем Rust там, где существуют эти цифры.

Расходы, накопленные с момента открытия этого раздела
Финансы / здравоохранение $0 ~83 тыс. долл./мин · 5 млн долл./час
Автомобилестроение $0 ~38 тыс. долл. в мин. · 2,3 млн долл. в час
Крупные предприятия 0 23 750 долл. в мин. · 1,4 млн долл. в час
Среднее предприятие 0 ~5 тыс. долл. в минуту · 300 тыс. долл. в час
Финансы и здравоохранение 5 млн долларов и более в час

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

Источник: исследование Gartner «Fortune 500» 2024 года; ITIC «Почасовая стоимость простоя» 2024 года.
Автомобилестроение 2,3 млн долларов в час

Остановленная производственная линия обходится примерно в 640 долларов в секунду. Сбой CrowdStrike в июле 2024 года обошёлся только Delta Air Lines в 380 млн долларов за пять дней.

Источник: разбивка по отраслям от Erwood Group за 2025 год; анализ последствий сбоя CrowdStrike от Antithesis.
Крупные предприятия (в среднем) 1,4 млн долларов в час

Данные BigPanda за 2024 год по крупным предприятиям: 23 750 долларов в минуту. ITIC сообщает, что 41 % крупных предприятий теряют от 1 до 5 млн долларов за час простоя.

Источник: исследование BigPanda 2024; 11-й ежегодный отчет ITIC о почасовой стоимости простоев.
Global 2000 (Oxford Economics) 400 млрд долларов в год

Общая скрытая стоимость незапланированных простоев в 2000 крупнейших компаниях мира, согласно исследованию Oxford Economics за 2024 год — в среднем 200 млн долларов ущерба на компанию, если сложить доходы, производительность и затраты на устранение последствий.

Источник: Oxford Economics 2024, «Скрытые затраты, связанные с простоями».
Средние и крупные компании (типичный час) 300 тыс. долларов и более в час

Опрос ITIC 2024 года: более 90% средних и крупных предприятий в настоящее время оценивают один час незапланированных простоев выше этого порога — без учета юридических, гражданских или нормативных штрафов.

Источник: Отчет ITIC 2024 «Почасовая стоимость простоев».
Малые и средние предприятия (МСП) 25–150 тыс. долларов в час

Совместное исследование ITIC / Calyptix 2025 года показывает, что многие МСП теряют столько в час; Siemens сообщает, что убытки МСП, пострадавших от простоев, могут достигать 150 000 долларов в час. Средняя продолжительность простоя составляет 87 минут.

Источник: ITIC + Calyptix 2025; Siemens «Реальная стоимость простоев» 2024.
06 Избранные работы

Три проекта. Три разных пожара.

Анонимизированы там, где того требует соглашение о неразглашении, конкретны там, где того требуют результаты. Это те проекты, на которые мы в первую очередь обратили бы внимание технического заказчика.

  1. Пример 01 Python База данных Криптовалюта GDPR

    Хранилище данных для финтех-компании: в 4 раза меньше, в 5,5 раз быстрее, соответствует международным стандартам.

    У клиента был кластер Postgres объемом 1,8 ТБ, перегруженный устаревшими столбцами, неиспользуемыми индексами и BLOB-объектами с встроенным шифрованием, которые накапливались в течение семи лет. Криптографические функции работали на устаревшей библиотеке, отмеченной в трех отдельных аудитах. Риск нарушения нормативных требований был реальным; аудиторы не отступали.

    Что мы сделали

    • Полный аудит схемы и использования, удаление неиспользуемых столбцов и индексов, внедрение правильного разбиения на сегменты.
    • Перенос криптографического конвейера из устаревшей библиотеки в современный, прошедший аудит стек AEAD с ротацией ключей.
    • Преобразование встроенного шифрования BLOB в шифрование с использованием конвертов по ссылке + выделенный KMS.
    • Приведение процессов хранения данных и доступа субъектов в соответствие с GDPR, CCPA и APPI.
    Результат

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

  2. Пример 02 Rust C++ → Rust Безопасность Хранение

    Сервис на C++, переписанный на Rust: более 100 ошибок класса CVE устранены за 9 недель.

    Сервис обработки файлов для пользователей на C++, вылетавший каждые 4–5 дней и каждый раз исправлявшийся на месте. Наш аудит выявил более 100 реальных ошибок: пути отказа в обслуживании , переполнения буфера, неограниченная обработка запросов. Ошибки 503 в часы пик были еженедельным ритуалом. Что касается хранилища, загрузки пользователей превратились в болото дубликатов файлов, поглощающих ресурсы хранилища.

    Что мы сделали

    • Полная переработка на Rust (axum + tokio) со строгой проверкой входных данных и ограниченными ресурсами.
    • Тесты на основе свойств + cargo-fuzz для каждого парсера и границы формата передачи данных.
    • Уровень хранения с адресацией по контенту и дедупликацией при записи.
    • Внедрение по схеме «синий-зеленый» в рамках 4-часового окна интеграции, без простоев.
    Результат

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

  3. Пример 03 Rust Python eBPF / XDP CRM · 4 тыс. пользователей

    Переработанная корпоративная CRM: 18 серверов → 5, сокращение расходов более чем на 60%.

    Внутренняя CRM, обслуживающая более 4000 пользователей в сферах IAM, SOC, централизованного ведения журналов, чата, обмена файлами, VoIP и данных с сквозным шифрованием. Восемнадцать серверов, Cloudflare сверху и счет за облако, который продолжал расти независимо от численности персонала. Мы переписали горячий путь на Rust, оставили Python на уровне интеграции и отчетности, а также разместили фильтр eBPF/XDP непосредственно перед входом.

    Что мы сделали

    • Сервисы на Rust для аутентификации (IAM), обмена сообщениями в реальном времени, VoIP-сигнализации и передачи файлов.
    • Python для интерфейсов администрирования, отчетности, корреляции событий SOC, интеграции с API поставщиков.
    • Фильтрация ботов и злоупотреблений с помощью eBPF/XDP на уровне ядра — заменила Cloudflare для этой рабочей нагрузки.
    • Структурированный конвейер логгирования, переписанный на основе схемы «zero-copy».
    Результат

    На 13 серверов меньше, больше нет отдельной статьи расходов на Cloudflare, команда SOC видит более чистый сигнал через конвейер логгирования, а финансовый директор перестал задавать неудобные вопросы о бюджете на инфраструктуру.

07 Как мы работаем на самом деле

Поворачивайте ручки. Наблюдайте, как меняется план.

В каждом проекте мы балансируем скорость, стоимость и надежность. Приведенная ниже пятиэтапная оценка согласована с медианами отрасли (анализ 2–6 недель, архитектура 1–4 недели, реализация 4–20 недель, укрепление 2–8 недель, передача 1–2 недели — согласно отчетов за 2024–2026 годы от NIX United, Agilie, SOLTECH, OTG Lab). Перемещайте ползунки; план пересчитывается в режиме реального времени.

01

Исследование

3 недели

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

  • Интервью с экспертами в данной области и аудит кода
  • Реестр рисков и целевые показатели SLA
  • Выбор языка программирования для каждой службы
02

Архитектура

2 недели

Контракты до кода. OpenAPI / protobuf, модели данных, топология развертывания, шаблоны руководств.

  • Запросы на предоставление информации (RFC) для каждого государственного контракта
  • Модель данных + план миграции
  • Базовый вариант «инфраструктура как код»
03

Внедрение

8 недель

Небольшие PR, зеленый статус CI с первого дня, развертывание при каждом слиянии, проверка вторым старшим специалистом.

  • Rust: axum · tonic · sqlx
  • Python: FastAPI · Pydantic · SQLAlchemy
  • Еженедельные демо + журнал изменений
04

Укрепление

3 недели

Фузинг, тесты на основе свойств, нагрузочные тесты с реалистичным трафиком, модель угроз.

  • cargo-fuzz · proptest · hypothesis
  • k6 нагрузочные тесты, привязанные к SLO
  • Проверка безопасности и аудит зависимостей
05

Передача

1 неделя

Руководства по эксплуатации, ротация дежурств, альтернативные способы разрешения конфликтов (ADR) и команда, которая уже однажды реализовала подобный проект.

  • Руководства по эксплуатации + матрица дежурств
  • Журнал ADR и схемы архитектуры
  • Поддержка в течение 30 дней после запуска
08 Одна и та же проблема, два языка

Как выглядит один и тот же конечный пункт в каждом из них.

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

SQL_CREATE_USER = "insert into users(email,name) values(lower($1),$2) returning id,email,name"
Name = Annotated[str, StringConstraints(strip_whitespace=True, min_length=1, max_length=120)]

class UserIn(BaseModel):
    email: EmailStr
    name: Name

class UserOut(UserIn):
    id: int

@router.post("/users", response_model=UserOut, status_code=201)
async def create_user(u: UserIn) -> UserOut:
    try:
        row = await pool.fetchrow(SQL_CREATE_USER, str(u.email), u.name)
   except UniqueViolationError as exc:
        raise HTTPException(status_code=409, detail="email already exists") from exc
    if row is None:
        raise HTTPException(status_code=500, detail="insert failed")
    return UserOut.model_validate(dict(row))
#[derive(Deserialize, Validate)]
#[serde(deny_unknown_fields)]
pub struct UserIn {
    #[validate(email)]
    pub email: String,
    #[validate(custom(function = "valid_name"))]
    pub name: String,
}

pub async fn create_user(
    State(pool): State<PgPool>,
    ValidatedJson(u): ValidatedJson<UserIn>,
) -> Result<(StatusCode, Json<UserOut>), ApiError> {
   let user = sqlx::query_as!(UserOut,
        "insert into users(email,name) values(lower($1),$2) returning id,email,name",
        u.email.as_str(),
        u.name.trim(),
    )
    .fetch_one(&pool)
    .await
    .map_err(ApiError::from_db)?;

    Ok((StatusCode::CREATED, Json(user)))
}
Количество строк кода
16 22
Пропускная способность
1 185 запросов/с 21 030 запросов/с
Задержка p50
21,0 мс 1,6 мс
Объем ОЗУ в режиме ожидания
41,2 МБ 8,5 МБ
Мы отвечаем в течение 1 рабочего дня. Без шуток.

Вы прочитали всю страницу.
Давайте создадим это.

Расскажите, что не устраивает вас в вашем стеке или что вы хотите создать с нуля. Вы получите мнение настоящего инженера — а не презентацию отдела продаж.

  • Никаких младших инженеров. Никакого аутсорсинга.
  • Варианты с фиксированной ценой на ограниченные по объему работы.
  • Подписываем соглашение о неразглашении, прежде чем что-либо у вас спрашивать.