2026-07-22 · EN
Rust where the edge is sharp
When we reach for Rust, and when TypeScript is enough.
We are not a “Rust shop” cosplay. We use Rust when the constraint is real: hot paths, deterministic engines, long-lived services that cannot afford vague ownership of memory and concurrency.
Reach for Rust when
- Execution correctness and auditability matter more than shipping velocity this week.
- The hot path is known and will be measured (ingest, classification, render, rebalance).
- The boundary is a CLI, library, or service that other languages can call.
Stay in TypeScript when
- The product is mostly product, forms, auth, CRUD, dashboards.
- Iteration speed with the operator matters more than microbenchmarks.
- The team integrating the system lives in the JS ecosystem.
The boring middle
Most systems are mixed. A typed web product can own the surface; a Rust core can own the expensive truth. The interface between them should be boring: HTTP, JSON schemas, CLI contracts, not clever FFI unless you have a reason.
Pick the language for the constraint. Resume-driven stack roulette is how you get both slow products and fragile systems.