TBF_
← Notes

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.