Systems that must not fail.Built to prove it.
PMT Software builds reliable, secure systems software. We write in Haskell wherever the problem allows it, so whole classes of bugs are ruled out before the program runs — and drop to C only where performance or hardware access leaves no other choice.
| No. | Property | Value | Remark |
|---|---|---|---|
| 01 | Primary language | Haskell | Types make invalid states unrepresentable |
| 02 | Systems language | C | Used only where the problem requires it |
| 03 | Design priority | Correctness | Verified before it is fast |
| 04 | Security posture | Defense in depth | Memory-safe by default; C paths audited |
| 05 | Target platform | FreeBSD | Where most of our systems run in production |
This is how we build. It does not change per project or deadline.
Haskell, by default
Most of a system is not the part that needs to be fast — it's the part that needs to be right. Haskell's type system and purity let us encode invariants directly, so a large share of defects are caught at compile time, not in production.
C, at the boundary
Where a system must touch hardware directly or hit a hard performance floor, we write C — kept small, isolated behind a narrow interface, and reviewed with the scrutiny that code with no safety net deserves.
FreeBSD in production
We run our systems on FreeBSD: a stable, well-documented base with a kernel and userland maintained as one coherent whole, which keeps the platform underneath our code as predictable as the code itself.
Reviewed like it matters
Every change is reviewed, tested, and traced back to a requirement. There are no shortcuts taken to hit a date — a system that must not fail does not get to fail quietly later.
Engineering, not guesswork
We keep the surface area small: few dependencies, a clear boundary between the Haskell core and the C we can't avoid, and a build that fails loudly rather than shipping something we can't stand behind.
Have a system that can't fail?
Tell us what you're building and what it has to guarantee. We'll tell you honestly whether Haskell and C are the right fit.