Tumatanggap ng mga bagong proyekto · pangkat na binubuo lamang ng mga senior · remote muna PWN-ALL · Pasadyang software studio

Software sa Rust at Python na mas tumatagal ang koponang naglabas nito.

Kami ay isang studio na binubuo lamang ng mga senior na sinadya ang paggawa ng pasadyang software sa dalawang wika: Rust kung saan mahal ang pagkakamali, at Python kung saan mahal ang mabagal na pagpapalabas.

Karaniwang p99 na pagbuti sa 40 na migrasyon
Pagbawas ng memorya 0% vs baseline ng JVM / Node
Mga serbisyo sa produksyon 0 mula 2024
Mga insidente sa seguridad na naipadala 0 sa buong kasaysayan namin
Mga koponan na nagtitiwala sa aming code
01 Dalawang wika. Hindi lima.

Isang stack, pinili nang sadyang.

Ang mga polyglot na ahensya ay maganda pakinggan sa pitch deck. Sa aktwal na produksyon, nangangahulugan ito ng tatlong build system, apat na uri ng null, at isang sementeryo ng mga serbisyo na kalahating pinananatili. Pinili namin ang dalawang wika na sumasaklaw sa 95% ng totoong workload — at naging napakahusay kami sa pareho.

Mahalagang landas · mga sistema · kaligtasan

Kalawang

9.6 iskor ng panloob na pagkasya

Ligtas sa memorya nang walang garbage collector. Walang data race sa oras ng pag-compile. Ang pinakamahigpit na tagasuri ng code na matatagpuan mo — at kapag pinayagan ka na nito, hindi ka gigisingin ng serbisyo mo tuwing Linggo.

Kapag iniabot natin ito

  • Mga sistema ng pagbabayad at anumang nakahawak ng pera o PII
  • Mga hot na API gateway na may five-nines na SLA
  • Mga engine ng pagtutugma na mababa ang latency, kalakalan, realtime
  • Mga module ng WebAssembly na ipinapadala sa browser
  • Mga CLI tool at daemon na dapat magsimula sa loob ng millisegundo

Mga kompromiso na hindi namin ipapanggap na wala

  • Panandaliang pagsasanay para sa mga bagong empleyado: ~2–4 na linggo bago maging produktibo
  • Oras ng pag-compile sa malalaking workspace (inaayos namin gamit ang sccache)
  • Mas batang ekosistema kaysa sa Java — hinog kung saan mahalaga
Pandikit · datos · ML · bilis

Python

9.3 iskor ng panloob na pagkasakto

Pinakamabilis na daan mula sa whiteboard hanggang sa gumaganang sistema. Ang pinakamayamang ecosystem sa mundo para sa data, ML, at automation. Ang modernong Python — 3.12, uv, ruff, pydantic, FastAPI — ay isang tumpak, may type, at sapat na bilis na wika para sa karamihan ng iyong kailangan.

Kapag inabot natin ito

  • Panloob na mga kasangkapan, mga dashboard, mga admin panel
  • ETL, mga pipeline ng datos, Airflow / Dagster / Prefect
  • ML — pagsasanay, pagseserbisyo, pagtatasa
  • Awtomasyon at integrasyon sa mga vendor API
  • Mga MVP na ilalabas ngayong quarter, hindi sa susunod na taon

Mga kompromiso na hindi namin ipagkukunwari

  • Ang throughput ng single-core ay 20–50× na mas mabagal kaysa sa Rust
  • Mas mataas na memorya bawat kahilingan — nakamamatay para sa ilang workload
  • Masama ang dynamic typing kung walang mahigpit na mypy / pydantic
Rust kung saan mahal ang pagkakamali. Python kung saan mahal ang mabagal na pagpapalabas. Isang koponan. Walang dogma.
02 Mga numero, hindi vibes

Rust & Python laban sa karaniwang pinaghihinala.

I-tap ang isang metrik para ipakita kung saan nauuri ang bawat wika. Ang mga marka ay 0–10, kinumpila mula sa aming sariling mga benchmark at mga pampublikong sanggunian (Techempower R22, CLBG, mga totoong migrasyon na naipadala namin).

Pamantayan Rust Python Pumunta C++ Java Node.js
Pangunahing pagganap (p99, iisang core) 10 3 7 10 7 5
Kaligtasan sa memorya at mga karera ng datos 10 9 8 2 8 7
Oras para sa gumaganang prototipo 5 10 7 3 6 8
Lawak ng ekosistema 8 10 7 9 10 9
Pagsasabay nang walang luha 10 6 9 4 6 7
Gastos sa operasyon bawat kahilingan 10 5 8 9 lima Anim
Pagkakaroon ng mga senior na talento 6 10 7 8 10 9
10-taong pagpapanatili 10 8 8 5 8 5
03 Mula → Papunta

Ano ang nagbabago kapag nag-migrate ka.

Pumili ng panimulang wika. Tingnan ang epekto ng paglipat sa Rust o Python. Ang mga numero ay mga medyan mula sa aming huling 40 proyektong migrasyon, hindi palamuti sa marketing.

Sa kasalukuyan sa

C / C++

Mabilis, oo. Ngunit bawat null pointer ay potensyal na CVE, bawat thread ay potensyal na data race, at ang iyong build system ay full-time na trabaho ng isang tao.

Karaniwang sakit
  • Mga CVE sa kaligtasan ng memorya
  • Hindi tinukoy na pag-uugali
  • Kalat ng sistema ng pagbuo
Paglipat sa

Rust

Dami ng pagproseso ×6.4
Bakás ng memorya −78%
Mga pag-crash sa runtime −99%
Buwanang singil sa compute −65%

Pinakamainam kapag kasalukuyan kang nakikipamuhay sa mga null-pointer bug, data race, o memorya na lumalaki nang walang hanggan. Pinananatili ng Rust ang bilis at tinatanggal ang mga bitag na madaling masagasaan.

Lipat sa

Python

Bilisan ng pag-develop ×3.1
Linya ng code −55%
Oras ng paglabas −60%
Sobrang gastos sa pagpapatakbo +40%

Pinakamainam kapag ang tunay na gastos ay oras sa pag-e-engineer, hindi CPU. Ipalit ang hilaw na throughput para sa mas maikling feedback loop, mas mayamang mga librarya, at kodigo na talagang mababasa ng mga tao.

Paano namin sinusukat ang mga numerong ito

Medyana sa 40 na nakumpleto nang migrasyon mula 2023 hanggang 2026. Sinukat ang throughput sa layer ng aplikasyon (end-to-end p50 sa ilalim ng makatotohanang load, hindi microbenchmarks). Ang memorya ay RSS sa matatag na estado. Ang gastos ay buwanang on-demand compute sa AWS/GCP, kung pantay ang lahat ng iba pa. Nag-iiba-iba ang mga indibidwal na resulta — inilalathala rin namin ang mga hindi ayon sa plano, kapag hiniling.

04 Mga bilang na walang asterisko

Mga kahilingan bawat segundo sa ilalim ng totoong load.

Magkaparehong workload — pag-validate ng JSON → pag-query sa Postgres → pag-render — sinukat sa isang single na AMD Ryzen 7 na kompyuter. Hindi ito mga microbenchmark. Pinagmulan at metodolohiya ↓

  1. 1 Rust · Axum
    21,030 req/s
  2. 2 C# .NET · ASP.NET Core
    14,707 req/s
  3. 3 Node.js · Fastify
    9,340 req/s
  4. 4 C++ · Drogon
    7,200 req/s
  5. 5 Go · Gin
    3,546 req/s
  6. 6 Python · FastAPI (Uvicorn)
    1,185 kahilingan/seg
  7. 7 PHP · Laravel
    299 req/s

Basahin ito nang tama: Ang Python ay nasa ibaba ng tsart na ito, at ayos lang iyon. Hindi namin pinapatakbo ang FastAPI sa hot path. Pinapatakbo namin ito sa lugar kung saan ang 1,185 req/s ay halos 10× na higit kaysa sa kailangan ng workload, at mas mahalaga ang oras ng mga inhinyero kaysa sa mga CPU cycle. Metodolohiya: AMD Ryzen 7, Linux, Docker, iisang instance, isang tanyag na framework bawat wika. Ang mga numero ay mga karaniwang halaga mula sa maraming pagtakbo.

05 Ang tunay na gastos ng sirang code

Ang tunay na gastos sa iyo ng isang outage.

Ang "Five nines" ay hindi pang-marketing. Narito sa ibaba kung magkano ang gastos ng isang oras ng hindi planadong downtime, ayon sa industriya — na may mga sanggunian. Gumagawa kami ng Rust kung saan nananahan ang mga numerong ito.

Ang gastos na naipon mula nang buksan mo ang seksyong ito
Pananalapi / pangangalaga sa kalusugan $0 ~$83k/min · $5M/hr
Awtomotibo $0 ~$38k/min · $2.3M/hr
Malaking enterprise $0 $23,750/min · $1.4M/hr
Katamtamang laki ng negosyo $0 ~$5k/min · $300k/hr
Pananalapi at pangangalagang pangkalusugan $5M+ kada oras

Ang mga sektor na may pinakamataas na pusta. Ang mga plataporma ng kalakalan, sistema ng pag-aayos ng transaksyon, at klinikal na sistema ay maaaring lumagpas sa $5 milyon kada oras sa panahon ng seryosong pagkabigo — bago pa man mabilang ang anumang gastos sa regulasyon o paglilitis.

Pinagmulan: Gartner 2024 Fortune 500 na pag-aaral; ITIC 2024 Hourly Cost of Downtime.
Paggawa ng sasakyan $2.3M kada oras

Ang isang huminto na linya ng produksyon ay nagkakahalaga ng humigit-kumulang $640 bawat segundo. Ang pag-outage ng CrowdStrike noong Hulyo 2024 ay nagkakahalaga sa Delta Air Lines lamang ng $380M sa loob ng limang araw.

Pinagmulan: Erwood Group 2025 breakdown ng industriya; Antithesis CrowdStrike postmortem.
Malaking enterprise (karaniwan) $1.4M kada oras

Ang bilang ng BigPanda para sa malalaking negosyo noong 2024: $23,750 kada minuto. Iniulat ng ITIC na 41% ng malalaking negosyo ay nawawalan ng pagitan ng $1M at $5M kada oras ng pagkabigo.

Pinagmulan: Pananaliksik ng BigPanda 2024; Ika-11 Taunang Ulat ng ITIC sa Oras-oras na Gastos ng Pag-pause ng Serbisyo.
Global 2000 (Oxford Economics) $400B bawat taon

Kabuuan ng nakatagong gastos ng hindi planadong paghinto sa operasyon sa 2,000 pinakamalalaking kumpanya sa buong mundo, ayon sa pag-aaral ng Oxford Economics noong 2024 — na may karaniwang epekto na $200M bawat kumpanya kapag pinagsama ang kita, produktibidad, at pag-aayos.

Pinagmulan: Oxford Economics 2024, "Ang Mga Nakatagong Gastos ng Paghinto sa Gawain".
Katamtaman at malaki (karaniwang oras) $300k+ / oras

Survey ng ITIC noong 2024: mahigit 90% ng mga katamtaman at malalaking negosyo ngayon ay tinataya ang isang oras ng hindi planadong paghinto sa itaas ng batayang halagang ito — hindi pa kasama ang mga parusang legal, sibil, o regulatori.

Pinagmulan: Ulat ng ITIC 2024 Tungkol sa Gastos kada Oras ng Pagkaantala.
Maliit at katamtamang laki (SMB) $25k–$150k / oras

Natuklasan sa pinagsamang pag-aaral ng ITIC / Calyptix noong 2025 na maraming SMB ang nawawalan ng ganito karami kada oras; Iniulat ng Siemens na ang mga SME na naapektuhan ng outage ay maaaring mawalan ng hanggang $150,000 kada oras. Ang karaniwang tagal ng isang outage ay 87 minuto.

Pinagmulan: ITIC + Calyptix 2025; Tunay na Gastos ng Pag-pause ng Siemens 2024.
06 Piniling mga gawa

Tatlong proyekto. Tatlong magkakaibang sunog.

Ginawang anonymous kung saan sinasabi ng NDA, at ginawang tiyak kung saan sinasabi ng mga resulta. Ito ang mga pakikipag-ugnayan na unang ipinapakita namin sa isang teknikal na mamimili.

  1. Kaso 01 Python Database Crypto GDPR

    Kaban ng datos ng fintech: 4× mas maliit, 5.5× mas mabilis, sumusunod sa pandaigdigang regulasyon.

    Ang kliyente ay may 1.8 TB Postgres cluster na namamaga sa mga legacy na kolum, mga patay na index, at inline-encrypted na BLOB na lumago sa loob ng pitong taon. Ang crypto ay tumakbo sa isang lipas na aklatan na minarkahan sa tatlong hiwalay na audit. Totoo ang panganib sa regulasyon; paikot-ikot na ang mga auditor.

    Ang ginawa namin

    • Kompletong pag-audit ng iskema at paggamit, tanggalin ang hindi nagagamit na mga kolum at index, ipakilala ang wastong partitioning.
    • I-migrate ang crypto pipeline mula sa legacy library patungo sa modernong, na-audit na AEAD stack na may umiikot na mga susi.
    • I-convert ang BLOB-inline encryption sa referenced envelope encryption + dedikadong KMS.
    • I-align ang data retention at daloy ng access ng paksa sa GDPR, CCPA at APPI.
    Kinalabasan

    Parehong datos, isang-kapat ng singil sa imbakan, 5.5 beses na throughput, at malinis na ulat ng kalusugan para sa susunod na regulator na kumatok.

  2. Kaso 02 Rust C++ → Rust Seguridad Pag-iimbak

    Muling isinulat sa Rust ang serbisyo sa C++: 100+ CVE-class na bug ang nawala sa loob ng 9 na linggo.

    Serbisyo sa pagproseso ng file na nakaharap sa user sa C++, nagkaka-crash tuwing 4–5 araw at tinutustusan nang direkta sa bawat pagkakataon. Ibinunyag ng aming audit ang mahigit 100 totoong bug: mga landas ng denial-of-service, buffer overflows, at hindi nilimitahang pagproseso ng kahilingan. Lingguhan nang ritwal ang mga 503 error tuwing rurok ng oras. Sa bahagi ng imbakan, ang mga in-upload ng user ay naipon at naging latian ng mga duplicate na file na kumakain sa storage bucket.

    Ang ginawa namin

    • Kumpletong muling pagsulat sa Rust (axum + tokio) na may mahigpit na pagpapatunay ng input at may hangganang limitasyon sa mga mapagkukunan.
    • Mga pagsubok na nakabatay sa property + cargo-fuzz sa bawat parser at hangganan ng wire-format.
    • Patong ng imbakan na naka-address batay sa nilalaman na may deduplikasyon sa oras ng pagsusulat.
    • Paglulunsad na blue-green sa likod ng 4-oras na bintana ng integrasyon, walang downtime.
    Kinalabasan

    Ang serbisyo ay mula sa "marupok at inaayos tuwing linggo" tungo sa "hindi na namin tinitingnan ang pager". Bumaba ang gastos sa imbakan gamit ang dedupe, natuyo ang mga support ticket tungkol sa mga error at 503, at nagbayad ang muling pagsulat sa sarili sa loob ng isang quarter.

  3. Kaso 03 Rust Python eBPF / XDP CRM · 4k na gumagamit

    Enterprise CRM, muling binuo: 18 server → 5, nabawasan ang gastos ng 60%+.

    Panloob na CRM na naglilingkod sa 4,000+ na gumagamit sa buong IAM, SOC, sentralisadong pag-log, chat, pagbabahagi ng file, VoIP at end-to-end na naka-encrypt na datos. Labingwalong server, Cloudflare sa ibabaw, at isang bayarin sa cloud na patuloy na lumalaki kahit hindi tumataas ang bilang ng kawani. Muling binuo namin ang hot path sa Rust, pinanatili ang Python sa layer ng integrasyon at pag-uulat, at inilagay ang eBPF/XDP filter nang direkta sa harap ng ingress.

    Ang ginawa namin

    • Mga serbisyo sa Rust para sa awtorisasyon (IAM), real-time na pagmemensahe, pagsi-signal ng VoIP, paglilipat ng file.
    • Python para sa mga admin surface, pag-uulat, korelasyon ng mga kaganapan sa SOC, integrasyon sa mga vendor API.
    • eBPF/XDP bot at pag-filter ng pang-aabuso sa kernel — pinalitan ang Cloudflare para sa workload na ito.
    • Muling isinulat ang structured logging pipeline gamit ang zero-copy na iskema.
    Kinalabasan

    Labing-tatlong mas kaunting server, wala nang hiwalay na line-item para sa Cloudflare, nakakakita ang SOC team ng mas malinaw na signal sa pamamagitan ng logging pipeline, at tumigil na ang CFO sa pagtatanong ng mga nakakailang tanong tungkol sa infra budget.

07 Paano talaga kami nagtatrabaho

I-ikot ang mga dial. Panoorin ang pagbabago ng plano.

Bawat proyekto ay nagbabalansi ng bilis, gastos, at pagiging maaasahan. Ang limang-yugto na pagtataya sa ibaba ay kinakalooban laban sa mga median ng industriya (discovery 2–6 na linggo, arkitektura 1–4 na linggo, implementasyon 4–20 na linggo, hardening 2–8 na linggo, handover 1–2 na linggo — bawat mga ulat ng 2024–2026 mula sa NIX United, Agilie, SOLTECH, OTG Lab). Igalaw ang mga slider; muling tinatimbang nang real-time ang plano.

01

Pagtuklas

3 linggo

Basahin ang iyong code, interbyuhin ang iyong ops, ilista ang mga hindi alam, piliin ang wika batay sa bawat bahagi.

  • Mga panayam sa domain at pag-audit ng code
  • Rehistro ng panganib at mga target ng SLA
  • Desisyon sa wika para sa bawat serbisyo
02

Arkitektura

2 linggo

Kontrata bago ang code. OpenAPI / protobuf, mga modelo ng datos, topology ng deployment, mga balangkas ng runbook.

  • Mga RFC para sa bawat pampublikong kontrata
  • Modelo ng datos + plano ng migrasyon
  • Batayang imprastruktura bilang code
03

Implementasyon

8 linggo

Maliit na PR, berde sa CI mula unang araw, nagde-deploy sa bawat merge, sinusuri ng pangalawang senior.

  • Rust: axum · tonic · sqlx
  • Python: FastAPI · Pydantic · SQLAlchemy
  • Lingguhang demo + talaan ng mga pagbabago
04

Pagpapalakas

3 linggo

Fuzzing, property-based tests, load tests laban sa makatotohanang trapiko, threat model.

  • cargo-fuzz · proptest · hypothesis
  • k6 load tests na naka-tie sa mga SLO
  • Pagsusuri sa seguridad at audit ng mga nakadepende
05

Pagpapasa

1 linggo

Runbooks, on-call rotation, ADRs, at isang koponan na nakapag-ship na nito minsan.

  • Runbooks + on-call matrix
  • ADR log at mga diagram ng arkitektura
  • 30-araw na suporta pagkatapos ng paglulunsad
08 Parehong problema, dalawang wika

Ganito ang hitsura ng parehong endpoint sa bawat isa.

Kunin ang user, i-validate ang input, i-persist sa Postgres, ibalik ang JSON. Lumipat sa pagitan ng mga wika — parehong totoong code na ilalabas namin.

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="mayroon nang email") from exc
    if row is None:
        raise HTTPException(status_code=500, detail="nabigo ang pag-insert")
    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)))
}
Linya ng code
16 22
Dami ng pagproseso
1,185 kahilingan/s 21,030 req/s
p50 na pagkaantala
21.0 ms 1.6 ms
RAM sa pahinga
41.2 MB 8.5 MB
Sumusagot kami sa loob ng 1 araw ng trabaho. Hindi kami nagbibiro.

Binasa mo ang buong pahina.
Buuin na natin ito.

Sabihin sa amin kung ano ang mali sa iyong stack, o kung ano ang gusto mong buuin mula sa simula. Makakatanggap ka ng tunay na opinyon ng inhinyero — hindi isang sales deck.

  • Walang baguhang inhinyero. Walang offshoring.
  • Mga opsyon na nakapirming presyo para sa sakop na trabaho.
  • NDA na pirmado bago pa man namin kayo tanungin ng kahit ano.