Blog
Engineering Team
2026-08-31 · 6 min read
Why Use Scala / Tail-Call optimization
@tailrec makes the compiler prove a function is stack-safe before it ships, instead of hoping the runtime handles it. Python caps recursion at 1000 frames, Node overflows around 5,000 despite the spec promising otherwise, and the JVM never optimizes tail calls at all.
Engineering Team
2026-08-28 · 8 min read
Why Use Scala / The Collections Library's Uniform API
One pipeline that runs unchanged over a List, a Set, a Map or a lazy sequence, versus Python's containers that share nothing but the for loop, JavaScript's Array-only method API, and Java's Streams bridge that every collection has to get on and off.
Engineering Team
2026-08-24 · 4 min read
Why Use Scala / Extractors & Custom Pattern Matching
Writing your own unapply so arbitrary types, including ones you don't own, can be destructured in a match, versus TypeScript's hand-written type guards, and the lack of an equivalent in Python or Java.
Engineering Team
2026-08-19 · 5 min read
Why Use Scala / Variance Annotations
Declaring covariance and contravariance once at the type definition, versus Java's wildcard ceremony repeated at every call site, versus TypeScript's implicit and occasionally unsound structural variance.
Engineering Team
2026-08-10 · 4 min read
Why Use Scala / Opaque Types
Type-safe wrappers like UserId versus a raw String that cost nothing at runtime, versus TypeScript's leaky branded-type workaround, Java wrapper classes with real allocation cost, and Python's unenforced NewType.
Engineering Team
2026-08-05 · 5 min read
Why Use Scala / Companion Objects & Smart Constructors
A private constructor plus a companion apply() method make an invalid instance impossible to build, rather than merely discouraged by convention.
Engineering Team
2026-07-19 · 2 min read
Why Use Scala / Enums
Scala 3's enum unifies a simple constant list and a full algebraic data type under one keyword, cases with parameters included, versus Python's Enum, verbose Java enum classes, and TypeScript's numeric-enum and const-enum footguns.
Engineering Team
2026-07-02 · 2 min read
Why Use Scala / Given & Using (Context Parameters)
Dependency injection as a language feature, checked at compile time, instead of a framework bolted on top, versus Spring/DI-container ceremony in Java, manual constructor wiring in Python, and TypeScript libraries like InversifyJS.
Engineering Team
2026-06-27 · 3 min read
Why Use Scala / Extension Methods
Adding behaviour to a type you don't own, cleanly and locally, versus Python monkey-patching a shared class everyone imports, JS prototype pollution, and Java's Objects.xyz(thing) static-helper workaround.
Engineering Team
2026-06-18 · 3 min read
Why Use Scala / Type Inference
The same function signature in Java (verbose even with var), Python (optional, often skipped), TypeScript (structural, gradual, with soundness holes like any), and Scala: fully static, but inferred enough to read like a script.
Engineering Team
2026-05-31 · 2 min read
Why Use Scala / Traits
Composable interfaces with real implementation and a well-defined conflict-resolution order, versus Java's stateless default methods, Python's fragile multiple-inheritance MRO, and TypeScript's mixin pattern hacks.
Engineering Team
2026-05-23 · 3 min read
Why Use Scala / Immutable Collections by Default
Scala's List and Map are immutable unless you specifically ask for a mutable one, the opposite default from Python's list/dict, Java's Collections.unmodifiableList afterthought, and JS/TS arrays.
Engineering Team
2026-05-08 · 3 min read
Why Use Scala / Case Classes & Structural Equality
Free equals/hashCode/toString, a .copy() for immutable updates, immutability by default, and structural equality.
Engineering Team
2026-04-28 · 4 min read
Why Use Scala / For-Comprehensions
Scala's for loop isn't a loop: it's syntactic sugar over flatMap/map that works identically for Option, Either, List, and Future. Python, Java, and TypeScript special-case that ergonomics for exactly one type: the async keyword.
Engineering Team
2026-04-17 · 4 min read
Why Use Scala / The Option Data Type
Tony Hoare called null his billion-dollar mistake. Python's None, Java's opt-in Optional, and TypeScript's strictNullChecks each patch around it differently. Scala's Option bakes 'this might not exist' into the type itself.
Engineering Team
2026-03-30 · 5 min read
Why Use Scala / Algebraic Data Types
Modeling a payment state so invalid combinations can't be constructed at all: Scala's sealed traits plus case classes, against TypeScript unions, Java sealed interfaces, and Python's lack of a real sum type.
Engineering Team
2026-03-25 · 4 min read
Why Use Scala / Pattern Matching
A branching problem every backend hits, handling a sum-type API result, done in Python, Java and TypeScript, then contrasted with Scala's match, a first-class expression the compiler can prove is exhaustive.
AI Integrity Lead
2026-03-23 · 11 min read
Understanding the current AI "Industrial Revolution" age
AI is here to stay. The harder question is what it actually changes about our professional lives.
Engineering Team
2026-03-21 · 3 min read
Why Use Scala / Expressiveness & Conciseness
Doing more with less syntax leaves fewer places for bugs to hide, and less code for both humans and AI agents to hold in their heads.
Chief Technology Officer
2026-03-19 · 1 min read
Hello World!
A brief introduction to our mission and what we hope to achieve.
