Menerima projek baharu · pasukan hanya senior · bekerja dari jauh diutamakan PWN-ALL · Studio perisian tersuai

Perisian dalam Rust dan Python yang lebih bertahan lama pasukan yang membekalkannya.

Kami adalah sebuah studio yang hanya terdiri daripada senior, membina perisian tersuai dalam dua bahasa dengan sengaja: Rust di mana kesilapan adalah mahal, dan Python di mana kelewatan penghantaran adalah mahal.

Peningkatan purata p99 melalui 40 migrasi
Pengurangan memori 0% berbanding garis dasar JVM / Node
Perkhidmatan dalam pengeluaran 0 sejak 2024
Insiden keselamatan dihantar 0 sepanjang sejarah kami
Pasukan yang mempercayai kod kami
01 Dua bahasa. Bukan lima.

Satu tumpukan, dipilih dengan sengaja.

Agensi poliglot kedengaran hebat dalam pitch deck. Dalam pengeluaran ia bermakna tiga sistem binaan, empat varian null, dan sebuah kubur perkhidmatan yang diselenggara separuh. Kami memilih dua bahasa yang merangkumi 95% beban kerja sebenar — dan kami menjadi sangat, sangat mahir dalam kedua-duanya.

Laluan panas · sistem · keselamatan

Karat

9.6 skor kecocokan dalaman

Selamat-ingatan tanpa pengumpul sampah. Bebas pertembungan data semasa penyusunan. Penilai kod paling kejam yang akan anda miliki — dan setelah ia meluluskan anda, perkhidmatan anda tidak akan mengejutkan anda pada hari Ahad.

Apabila kita meraihnya

  • Saluran pembayaran & apa sahaja yang berkaitan dengan wang atau maklumat peribadi yang boleh dikenal pasti
  • Gateway API berprestasi tinggi dengan SLA lima sembilan
  • Enjin padanan latensi rendah, dagangan, masa nyata
  • Modul WebAssembly dihantar ke pelayar
  • Alat CLI & daemon yang mesti memulakan dalam milisaat

Kompromi yang tidak akan kami pura-pura

  • Tempoh persiapan untuk pekerja baru: ~2–4 minggu untuk menjadi produktif
  • Masa kompilasi pada ruang kerja besar (kami baiki dengan sccache)
  • Ekosistem lebih muda berbanding Java — matang di mana ia penting
Lem · data · ML · kelajuan

Python

9.3 skor kesesuaian dalaman

Jalur terpantas dari papan putih ke sistem yang berfungsi. Ekosistem paling kaya di Bumi untuk data, ML dan automasi. Python moden — 3.12, uv, ruff, pydantic, FastAPI — adalah bahasa yang tepat, bertipe, dan cukup pantas untuk kebanyakan keperluan anda.

Apabila kita meraihnya

  • Alat dalaman, papan pemuka, panel pentadbiran
  • ETL, saluran data, Airflow / Dagster / Prefect
  • ML — latihan, penyampaian, penilaian
  • Automasi & integrasi dengan API vendor
  • MVP yang dilancarkan suku ini, bukan tahun depan

Kompromi yang tidak akan kami pura-pura

  • Kecekapan pemprosesan teras tunggal adalah 20–50× lebih perlahan berbanding Rust
  • Memori lebih tinggi setiap permintaan — fatal untuk beberapa beban kerja
  • Tipe dinamik merugikan tanpa mypy / pydantic yang ketat
Rust di mana kesilapan adalah mahal. Python di mana kelewatan penghantaran adalah mahal. Satu pasukan. Tiada dogma.
02 Angka, bukan getaran

Rust & Python vs. suspek biasa.

Ketuk metrik untuk menyorot di mana setiap bahasa berada. Skor adalah 0–10, dikompilasikan daripada penanda aras kami sendiri serta sumber awam (Techempower R22, CLBG, migrasi sebenar yang kami jalankan).

Kriteria Rust Python Pergi C++ Java Node.js
Prestasi mentah (p99, teras tunggal) 10 3 7 10 7 5
Keselamatan memori & perlumbaan data 10 9 8 2 8 7
Masa untuk prototaip berfungsi 5 10 7 3 6 8
Lebar ekosistem 8 10 7 9 10 9
Kesesuaian tanpa air mata 10 6 9 empat 6 7
Kos operasi setiap permintaan 10 5 8 9 5 6
Ketersediaan bakat kanan 6 10 7 8 10 9
Kekal boleh diselenggara selama 10 tahun 10 8 8 5 8 5
03 Dari → Ke

Apa yang berubah apabila anda berhijrah.

Pilih bahasa permulaan. Saksikan impak beralih ke Rust atau Python. Nombor adalah median merentasi 40 projek migrasi terakhir kami, bukan omong kosong pemasaran.

Pada masa ini di

C / C++

Pantas, ya. Tetapi setiap penunjuk null adalah CVE berpotensi, setiap benang adalah potensi perlumbaan data, dan sistem pembinaan anda adalah pekerjaan sepenuh masa seseorang.

Sakit tipikal
  • CVE keselamatan memori
  • Perilaku tidak terdefinisi
  • Kesesakan sistem pembinaan
Pindahkan ke

Rust

Kadar pemprosesan ×6.4
Jejak memori −78%
Kegagalan masa larian −99%
Bil pengkomputeran bulanan −65%

Yang terbaik apabila anda kini hidup dengan pepijat null-pointer, perlumbaan data, atau memori yang bertumbuh tanpa had. Rust mengekalkan kelajuan dan membuang perangkap tersembunyi.

Beralih ke

Python

Kelajuan pembangunan ×3.1
Baris kod −55%
Masa untuk melancarkan −60%
Beban operasi +40%

Yang terbaik apabila kos sebenar adalah masa kejuruteraan, bukan CPU. Tukar throughput mentah untuk gelung maklum balas yang lebih pendek, pustaka yang lebih kaya, dan kod yang sebenarnya boleh dibaca oleh manusia.

Bagaimana kami mengukur angka-angka ini

Median merentasi 40 pemindahan yang disiapkan antara 2023 dan 2026. Kecekapan diukur pada lapisan aplikasi (p50 hujung-ke-hujung di bawah beban realistik, bukan mikrobenchmark). Memori ialah RSS pada keadaan stabil. Kos adalah pengkomputeran atas permintaan bulanan di AWS/GCP, dengan segala-galanya sama. Keputusan individu berbeza — kami juga menerbitkan yang tidak mengikut pelan, atas permintaan.

04 Nombor tanpa bintang

Permintaan setiap saat di bawah beban sebenar.

Beban kerja yang sama — sahkan JSON → pertanyaan Postgres → render — diukur pada satu kotak AMD Ryzen 7. Ini bukan mikrobenchmark. Sumber & metodologi ↓

  1. 1 Rust · Axum
    21,030 permintaan/s
  2. 2 C# .NET · ASP.NET Core
    14,707 permintaan/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. enam Python · FastAPI (Uvicorn)
    1,185 permintaan/s
  7. 7 PHP · Laravel
    299 req/s

Baca ini dengan betul: Python berada di bahagian bawah carta ini, dan itu tidak mengapa. Kami tidak menjalankan FastAPI pada laluan utama. Kami menjalankannya di mana 1,185 permintaan sesaat sudah kira-kira 10× melebihi keperluan beban kerja, dan jam kejuruteraan lebih berharga daripada kitaran CPU. Metodologi: AMD Ryzen 7, Linux, Docker, satu instans tunggal, satu rangka kerja popular bagi setiap bahasa. Nombor adalah purata daripada beberapa kali larian.

05 Kos sebenar kod yang rosak

Apa yang sebenarnya koskan anda apabila berlaku gangguan.

"Lima sembilan" bukan pemasaran. Berikut adalah kos satu jam masa henti yang tidak dirancang, mengikut industri — dengan sumber. Kami membina Rust di mana angka-angka ini wujud.

Kos terkumpul sejak anda membuka bahagian ini
Kewangan / penjagaan kesihatan $0 ~$83k/min · $5M/jam
Automotif $0 ~$38k/min · $2.3M/jam
Perusahaan besar $0 $23,750/min · $1.4M/jam
Perusahaan bersaiz sederhana $0 ~$5k/min · $300k/jam
Kewangan & penjagaan kesihatan $5 juta + / sejam

Vertikal dengan pertaruhan tertinggi. Platform dagangan, sistem penyelesaian dan sistem klinikal boleh melebihi $5 juta sejam semasa gangguan serius — sebelum sebarang kos pengawalseliaan atau litigasi diambil kira.

Sumber: Kajian Fortune 500 Gartner 2024; Kos Waktu Henti Per Jam ITIC 2024.
Pengilangan automotif $2.3 juta / sejam

Satu barisan pengeluaran yang terhenti membazirkan kira-kira $640 setiap saat. Kegagalan CrowdStrike pada Julai 2024 menelan kos sebanyak $380 juta bagi Delta Air Lines sahaja dalam tempoh lima hari.

Sumber: Pecahan industri Erwood Group 2025; Postmortem Antithesis CrowdStrike.
Perusahaan besar (purata) $1.4M / sejam

Angka BigPanda 2024 untuk perusahaan besar: $23,750 setiap minit. ITIC melaporkan 41% perusahaan besar kehilangan antara $1 juta dan $5 juta setiap jam waktu henti.

Sumber: Penyelidikan BigPanda 2024; ITIC 11th Annual Hourly Cost of Downtime.
Global 2000 (Oxford Economics) $400B / tahun

Jumlah kos tersembunyi masa henti tidak dirancang bagi 2,000 syarikat terbesar di dunia, mengikut kajian Oxford Economics 2024 — purata impak sebanyak $200 juta bagi setiap syarikat apabila hasil, produktiviti dan kos pembaikan dijumlahkan.

Sumber: Oxford Economics 2024, "Kos Tersembunyi Masa Henti".
Saiz sederhana & besar (jam tipikal) $300k+ / sejam

Tinjauan ITIC 2024: lebih 90% perusahaan bersaiz sederhana dan besar kini menilai satu jam masa henti tidak dirancang melebihi paras minimum ini — tidak termasuk penalti undang-undang, sivil atau peraturan.

Sumber: Laporan Kos Per Jam Waktu Henti ITIC 2024.
Saiz kecil & sederhana (SMB) $25k–$150k / sejam

Kajian bersama ITIC / Calyptix 2025 mendapati banyak PKS kehilangan sebanyak ini setiap jam; Siemens melaporkan PKS yang terjejas oleh gangguan boleh kehilangan sehingga $150,000/jam. Purata kejadian gangguan mengambil masa 87 minit.

Sumber: ITIC + Calyptix 2025; Siemens True Cost of Downtime 2024.
06 Karya terpilih

Tiga projek. Tiga kebakaran berbeza.

Dianonimkan di mana NDA mengkehendakinya, khusus di mana hasilnya. Ini adalah perjanjian yang akan kami tunjukkan kepada pembeli teknikal terlebih dahulu.

  1. Kes 01 Python Pangkalan data Kripto GDPR

    Gudang data fintech: 4× lebih kecil, 5.5× lebih pantas, mematuhi piawaian global.

    Klien mempunyai kluster Postgres 1.8 TB yang membengkak dengan lajur warisan, indeks mati, dan BLOB yang disulitkan secara inline yang telah berkembang selama tujuh tahun. Kripto dijalankan pada perpustakaan lapuk yang ditandakan dalam tiga audit berasingan. Pendedahan peraturan adalah nyata; juruaudit sedang mengintai.

    Apa yang kami lakukan

    • Audit skema penuh + penggunaan, buang lajur dan indeks yang tidak digunakan, perkenalkan pemartabatan yang betul.
    • Migrasi saluran pemprosesan kriptografi daripada pustaka warisan ke susunan AEAD moden yang diaudit dengan kunci berputar.
    • Tukar penyulitan BLOB dalam baris kepada penyulitan sampul rujukan + KMS khusus.
    • Menyelaraskan aliran pengekalan data & akses subjek dengan GDPR, CCPA dan APPI.
    Keputusan

    Data yang sama, satu perempat daripada bil penyimpanan, 5.5× throughput, dan sijil kesihatan bersih untuk pengawal selia seterusnya yang datang mengetuk.

  2. Kes 02 Rust C++ → Rust Keselamatan Penyimpanan

    Perkhidmatan C++ ditulis semula dalam Rust: lebih 100 pepijat kelas CVE dihapuskan dalam 9 minggu.

    Perkhidmatan pemprosesan fail berinteraksi dengan pengguna dalam C++, rosak setiap 4–5 hari dan dibaik pulih terus di tempat setiap kali. Audit kami mendedahkan lebih 100 pepijat sebenar: laluan penafian perkhidmatan, kebanjiran buffer, pengendalian permintaan tanpa had. Ralat 503 pada waktu puncak menjadi ritual mingguan. Di bahagian storan, muat naik pengguna telah terkumpul menjadi rawa fail dwi yang memakan kuota storan.

    Apa yang kami lakukan

    • Penulisan semula sepenuhnya dalam Rust (axum + tokio) dengan pengesahan input yang ketat dan had sumber yang terhad.
    • Ujian berasaskan sifat + cargo-fuzz merentasi setiap pemarser dan sempadan format wayar.
    • Lapisan penyimpanan beralamat kandungan dengan penyahpenggandaan semasa penulisan.
    • Pelancaran biru-hijau di belakang tetingkap integrasi 4 jam, tiada masa henti.
    Keputusan

    Perkhidmatan berubah daripada "rapuh dan dibaiki setiap minggu" kepada "kami berhenti memeriksa pager". Kos penyimpanan menurun dengan deduplikasi, tiket sokongan mengenai ralat dan 503s kering, dan penulisan semula membiayai sendiri dalam suku tahun tersebut.

  3. Kes 03 Rust Python eBPF / XDP CRM · 4k pengguna

    CRM Perusahaan, dibina semula: 18 pelayan → 5, mengurangkan perbelanjaan 60%+.

    CRM dalaman yang berkhidmat kepada lebih 4,000 pengguna merangkumi IAM, SOC, log pusat, sembang, kongsi fail, VoIP dan data yang disulitkan dari hujung ke hujung. Lapan belas pelayan, Cloudflare di atasnya, dan bil awan yang terus meningkat tanpa mengira bilangan kakitangan. Kami membina semula laluan utama dalam Rust, mengekalkan Python pada lapisan integrasi dan pelaporan, dan meletakkan penapis eBPF/XDP terus di hadapan pintu masuk.

    Apa yang kami lakukan

    • Perkhidmatan Rust untuk pengesahan (IAM), pesanan masa nyata, isyarat VoIP, pemindahan fail.
    • Python untuk antaramuka pentadbiran, pelaporan, korelasi peristiwa SOC, integrasi dengan API pembekal.
    • Penapisan bot dan penyalahgunaan eBPF/XDP di kernel — menggantikan Cloudflare untuk beban kerja ini.
    • Saluran log berstruktur ditulis semula menggunakan skema zero-copy.
    Keputusan

    Tiga belas pelayan kurang, tiada lagi baris Cloudflare, pasukan SOC melihat isyarat yang lebih bersih melalui saluran log, dan CFO berhenti mengajukan soalan yang menjengkelkan mengenai bajet infrastruktur.

07 Bagaimana kami sebenarnya bekerja

Putar tombol. Saksikan pelan berubah.

Setiap projek mengimbangkan kelajuan, kos dan kebolehpercayaan. Anggaran lima peringkat di bawah diselaraskan dengan median industri (penemuan 2–6 minggu, seni bina 1–4 minggu, pelaksanaan 4–20 minggu, pengukuhan 2–8 minggu, penyerahan 1–2 minggu — per laporan 2024–2026 daripada NIX United, Agilie, SOLTECH, OTG Lab). Geser penggelek; pelan menimbang semula secara langsung.

01

Penemuan

3 minggu

Bacalah kod anda, wawancara pasukan operasi anda, senaraikan perkara yang tidak diketahui, pilih bahasa mengikut setiap komponen.

  • Temu bual domain & audit kod
  • Daftar risiko & sasaran SLA
  • Keputusan bahasa bagi setiap perkhidmatan
02

Arkitektur

2 minggu

Kontrak sebelum kod. OpenAPI / protobuf, model data, topologi penyebaran, rangka runbook.

  • RFC untuk setiap kontrak awam
  • Model data + pelan migrasi
  • Garis asas infrastruktur sebagai kod
03

Pelaksanaan

8 minggu

PR kecil, CI hijau sejak hari pertama, deploy pada setiap merge, disemak oleh senior kedua.

  • Rust: axum · tonic · sqlx
  • Python: FastAPI · Pydantic · SQLAlchemy
  • Demonstrasi mingguan + log perubahan
04

Pengukuhan

3 minggu

Fuzzing, ujian berasaskan sifat, ujian beban terhadap trafik realistik, model ancaman.

  • cargo-fuzz · proptest · hypothesis
  • Ujian beban k6 yang diikat kepada SLO
  • Semakan keselamatan & audit kebergantungan
05

Serah terima

1 minggu

Runbook, giliran on-call, ADR, dan pasukan yang telah pernah menyiapkannya sekali.

  • Buku panduan operasi + matriks on-call
  • Log ADR & diagram seni bina
  • Sokongan 30 hari selepas pelancaran
08 Masalah yang sama, dua bahasa

Bagaimana rupa hujung yang sama dalam setiap satu.

Dapatkan pengguna, sahkan input, simpan ke Postgres, kembalikan JSON. Tukar antara bahasa — kedua-duanya adalah kod sebenar yang akan kami keluarkan.

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="emel sudah wujud") from exc
    if row is None:
        raise HTTPException(status_code=500, detail="suntikan gagal")
    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)))
}
Baris kod
16 22
Keluaran
1,185 permintaan/s 21,030 permintaan/s
kelewatan p50
21.0 ms 1.6 ms
RAM semasa tidak aktif
41.2 MB 8.5 MB
Kami membalas dalam masa 1 hari bekerja. Bukan main-main.

Telah membaca keseluruhan halaman.
Mari kita bina perkara ini.

Beri tahu kami apa yang tidak kena dengan susunan anda, atau apa yang anda ingin bina dari awal. Anda akan mendapat pendapat kejuruteraan sebenar — bukan bahan jualan.

  • Tiada jurutera junior. Tiada pemindahan kerja ke luar negara.
  • Pilihan harga tetap untuk kerja yang ditetapkan skopnya.
  • NDA ditandatangani sebelum kami bertanya apa-apa.