About the service
I'm a developer in formal methods, writing programs in Idris where the type system itself carries a proof that the code meets its specification. Instead of hoping tests catch every edge case, I encode invariants directly in dependent types—and whole classes of bugs become impossible: they simply won't compile. My work sits at the intersection of programming and mathematics: I design types that describe the shape of correct data, express pre- and postconditions as proper values, and turn type checking into a tireless proof assistant. If you have a critical piece of logic—a protocol, parser, state machine, financial calculation—that simply cannot be wrong, that's the guarantee I deliver.
My method is type-driven development in the fullest sense: I start with a precise specification, sketch the types, and grow the implementation through "holes" that the compiler helps me fill, refining code until all proof obligations close. I write total functions with totality checking, indexed data structures, and machine-checked proofs about their behavior, and I document the reasoning so your team can maintain and trust them. Beyond Idris itself, I have broad experience in functional programming and formal verification—that lets me pick the right level of rigor for the budget: full proofs where they pay dividends, and light type guarantees elsewhere. I also love research prototypes: testing a new idea at the type level, encoding a problem domain in a proof style, turning an academic result into working code.
Whether you need a verified core inside a larger system, a formal model of a tricky algorithm, or a mentor to bring dependent types into your codebase, I work carefully, explain every step, and deliver code whose correctness reads straight from the types.
— Idris implementations with dependent and indexed types
— Type-driven development from formal specifications
— Machine-checked proofs and totality checking
— Verified parsers, protocols, and state machines
— Formal modeling of algorithms and domain logic
— Research prototypes and type-level experiments
— Code review, mentoring, and dependent types education
My method is type-driven development in the fullest sense: I start with a precise specification, sketch the types, and grow the implementation through "holes" that the compiler helps me fill, refining code until all proof obligations close. I write total functions with totality checking, indexed data structures, and machine-checked proofs about their behavior, and I document the reasoning so your team can maintain and trust them. Beyond Idris itself, I have broad experience in functional programming and formal verification—that lets me pick the right level of rigor for the budget: full proofs where they pay dividends, and light type guarantees elsewhere. I also love research prototypes: testing a new idea at the type level, encoding a problem domain in a proof style, turning an academic result into working code.
Whether you need a verified core inside a larger system, a formal model of a tricky algorithm, or a mentor to bring dependent types into your codebase, I work carefully, explain every step, and deliver code whose correctness reads straight from the types.
— Idris implementations with dependent and indexed types
— Type-driven development from formal specifications
— Machine-checked proofs and totality checking
— Verified parsers, protocols, and state machines
— Formal modeling of algorithms and domain logic
— Research prototypes and type-level experiments
— Code review, mentoring, and dependent types education