We are Tweag I/O

for composable software

Modular, simple, composable. It's the only way we have found to build fast, correct and maintainable software. Modular means that we build software as a collection of independently useful and reusable parts. We ruthlessly refactor each part to keep it focused on a single purpose, making it simple. We deliver software fast by thinking about composability left right and centre, connecting parts together from whichever direction, like train wagons. Composability lets us express arbitrarily complex behaviours with less code.

Functional, typed, immutable. These are the key technologies for composable software. We build parts as functions, because functions compose where objects do not. We use types to describe functions, because one type is worth a thousand out-of-date comments. We keep data immutable, because immutability lets us focus on the business logic holistically without getting bogged down by hundreds of corner cases.

Dec. 2013


Nov. 2015

Paris office opening

Oct. 2015-2018

Horizon 2020 SAGE participant

Sep. 2016

New Cyprus office

Jan. 2016

Awarded French "Innovating Enterprise"

Oct. 2017

Tweag UK opening


Theodora Tsentas

Operations Manager

A journalist by training, managed a media ethics think-tank and agricultural research scholarships. I keep things ticking around here.

Budgets and forecasts

Decreasing entropy in the Tweagverse

Compulsively renaming Drive folders

Mathieu Boespflug


PhD (École Polytechnique) formal methods and compiler design. Dreams distributed systems.

Banging bits in Haskell


Building factories that build factories

Stephanie Bertels

Tweag I/O Limited

Background in market research for new product innovations. MSc in International Business.

Sign things

Spreadsheet aesthetics expert

Jonas Pfenniger Chevalier

Automation Architect

Managing infrastructures with code. And a healthy dose of stubborness.




Arnaud Spiwack

Senior Architect

PhD (École Polytechnique) in homological algebra and dependent types. Core team of Coq proof assistant. Mathematician and software engineer. Wish Bear.

Torturing type systems

Solving Rubik's cube

Putting topoi in your computer

Tom Nielsen

Data Scientist

PhD (Neuroscience, UCL). Data scientist with a background in experimental and computational science. I like to invent new ways of building predictive models.

Basic Simple Functional Programming

Bayesian Probabilistic Programming

Patch clamping

Fabienne Montgobert

Office Manager

Three decades managing purchases, recruitment, accounting and all around problem solver. From textiles to geeks.

"Don't worry, I got it."

Parsing the lingo...

Manuel Chakravarty

Functional programming evangelist

PhD (Technische Universität Berlin) concurrent functional programming & compilers. Lambda Scientist.



Compulsively checking Twitter

Eva D'hondt

Data Scientist

PhD (Radboud) in Natural Language Processing. Language engineer and data scientist. Occasional wrestler of neural networks.

Text Mining


Reducing ambiguity, one oxford comma at a time

Facundo Dominguez

Senior software engineer

MSc (Montevideo) in program fusion transformations. Software craftsman and engineer. Maintainer of Cloud Haskell. Dreams of ways to make software correct.

Bug hunting

GHC hacking

Dominic Steinitz

Applied mathematician

PhD (Kingston) Applied mathematician, statistician & functional programmer. Jack of all trades - closet differential geometer.

Data modelling


Blogging my enthusiasms

Alexander Vershilov

Senior software engineer

PhD (Saint Petersburg State) theoretical physics. Tying the knot between abstract problems and computer aided solutions. Gentoo developer.

GDB-ing Haskell


Growing a long beard and long hair

Mateusz Kowalczyk

Software Engineer

Computer scientist, spare time hacking, few years Haddock maintainer, now distributed systems and production Haskell. I like Agda, nix, Haskell and other cool stuff.

Type wrangling

Space-leak chasing

James Haydon

Software engineer

PhD (Oxford) Geometry and higher category theory. Likes trying to apply n-categories to software problems.



Drawing commutative diagrams

Nick Clarke

Software engineer

MMath (Oxford). Likes tidying codebases and writing documentation in verse. Secretly hates type classes.



Hanging upside down

Yves Parès

Software Engineer

PhD (UPMC Paris 6) medical informatics, knowledge engineering. NLP enthusiast. Cursing the typesystem when coding in Haskell and longing for it when coding in Clojure.

Functional programming

Knowledge bases, RDF and ALCUEQOBHIR+

Typing þ and ð on a QWERTY keyboard

Gaël Deest

Software Engineer

PhD (Rennes) on FPGA accelerators. Functional programming convert. Dreams of expressive tools for designing type-safe hardware.

Taming HLS design tools


Modeling programs as polyhedra

Nicolas Mattia

Software engineer

I am a system control engineer. Fast, correct and maintainable code is too important to leave it to software engineers, so I entered the fray.


Salvaging codebases

Kalman filters and PID controllers

Damien Leprovost

Software Engineer

PhD (Dijon) in communities discovery, knowledge engineering and MSc in business management. Love learning machines that learn how to learn.

Inferring Web data

Write models

Need more data

Théophane Hufschmitt

Software Engineer

Msc (École polytechnique) in programming languages theory. Grows a binary tree in his garden.


Writing Haskell in Ocaml

Writing Ocaml in Haskell

Andreas Herrmann

Software Engineer

PhD Computational physics (Fribourg, ETH Zurich). Functional programming enthusiast. Hacks Haskell for fun.



FP in C++ templates

Julian Arni

Software Engineer

BA Philosophy (Harvard). Coauthored the servant web framework.

Type-level DSLs



Ioanna Mavromiti

Administrative assistant