Nicolas Mattia

I am a software engineer with a passion for functional programming,
correctness and robustness. I like simple solutions.


Software Engineer at DFINITY

I have been working as a Software Engineer at DFINITY since June 2019. I work on automatizing the infrastructure deployments, make the builds reliable, fast and adaptable, and as an integral member of the development team of DFINITY’s execution platform.

Software Engineer at Tweag I/O

I worked as a Haskell consultant at Tweag I/O between September 2016 and July 2019. I have lead projects from when they were moonshots to production-ready products.

Platform Engineer at Pusher Ltd.

I worked at Pusher Ltd. in London from September 2015 to July 2016. One of my key lessons at the job was that with every million users comes a million ways to break a platform.


2013 – 2015

Msc, Information Technology & Electrical Engineering – ETHZ, Zurich

Graduated in Systems & Control from the ITET department.

2012 – 2013

Erasmus – TU Wien, Vienna

Erasmus year in Vienna as Elektrotechnik/Bau-ingenieur.

2010 – 2013

BSc, Micro-Engineering – EPFL, Lausanne

Graduated as a Microtechnician from the MT department.

Technical Experience

Open Source

I contribute to the Open Source projects that I use in my work regularly, either to bring attention to an issue, to directly fix a bug, or to submit new features. In addition, I maintain a few projects of my own, including:

Haskell is my language of choice for most projects. I have learned to leverage its powerful type system on many occasions, have contributed to core libraries, and have a good understanding of its runtime characteristics.

Nix is my go-to package manager and build system. I contribute to Nixpkgs, have deployed Nix in production to teams of up to 40 engineers and have acquired an excellent understanding of its model, capabilities and limitations.

I am proficient with Go, Java, Ruby, C/C++, Kubernetes and Terraform.

I have a basic knowledge of Rust, Python, JavaScript, Erlang, LaTeX and x86 assembly.

Academic & Speaking


Overview of Language Support in Nix – Talk at NixCon – October 2019
A comparison of the different approaches used in the Nix community today to package code.

Testing and Deploying to AWS: A Toolbox – Talk at NixCon – October 2019
An overview of the setup used when building DeckDeckGo. How to use Nix to test and deploy code to AWS Lambda, backed by Amazon’s Simple Queue Service, DynamoDB, S3 and RDS PostgreSQL.

A Fully Functional Webapp – Talk at WebZuri – September 2017
Discussions around and examples of functional programming stacks for web applications.


Dominating the Stone Age – Master’s Thesis
Solved graph-theoretic problems using networks of finite-state machines.

Toehold DNA Languages are Regular – Publication
By Sebastian Brandt, Nicolas Mattia, Jochen Seidel, and Roger Wattenhofer, 2015. In ISAAC’15.

Parallel DNA – Semester Project
Modeled and studied parallel, DNA-based computations.

Parallelizing the Schrödinger Equation – Semester Project
Developed a fast parallel algorithm for solving the Retarded Green’s Function.

Beyond technology
Zurich, Switzerland