Nicolas Mattia
I am a software engineer with a passion for functional programming,
correctness and robustness. I like simple solutions.
nicolas@nmattia.com
• github.com/nmattia
• https://nmattia.com
• Zurich, Switzerland
Employment
2019 — present Senior Software Engineer, DFINITY
Full-stack engineering:
- Engineering lead for DFINITY’s authentication system, Internet Identity
- Coordinated between engineering, product & design for timely feature releases
- Set up and maintained CI & release process for Internet Identity and defined CI & reproducibility best practices in the scope of DFINITY’s (WebAssembly-based) canister smart contract development
- Actively contributed to Internet Identity (Rust & TypeScript)
Infrastructure/Ops engineering:
- Developed a new Nix-based build tool for Rust (naersk)
- Streamlined in-house developer experience and maintained developer environment and tooling: Rust builds, static dependency packaging, GitHub Actions setup, DFINITY SDK packaging
- Deployment & management of in-house services (logs, code search, RBAC & more) with Terraform, Docker & NixOS
- Set up Docker-based remote environments for in-house development
2016 — 2019 Software Engineer, Tweag I/O
Led and contributed to projects from when they were moonshots to
production-ready products. Consulting and development of Nix, Go, Haskell & C projects.
- Part of the research team for an EU-funded project aimed
at redefining data storage for the era of “exascale” computing
- One of two developers who created an entirely new data platform (data-lake)
for a Fortune 500 company. The platform enables data scientists
from several continents to share large datasets for reproducible
research
- Core developer of a new form of spreadsheet engine, which
allows Python, R and other programming languages to be used interactively
alongside Excel, as well as using large (1GB+) datasets in user sheets. I
have advised on, and helped implementing the API and database designs, auto
scaling infrastructure and code quality measures
- Added support for building Haskell programs in Google’s Bazel on Windows
for Digital Asset’s DAML compiler
2015 — 2016 Platform Engineer, Pusher Ltd.
- Contributed to the design and development of a high-performance, Redis-based
distributed PubSub system
- Developed a pluggable PostgreSQL-based system for monitoring and reporting the performance
of the platform
- Wrote
nagios-sink
, a simple service that gathers the statuses of Nagios
endpoints
Education
-
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
Open Source & Side Projects
- niv — Easy dependency management for Nix projects
- naersk — Just-add-water Nix packaging for Rust projects
- nmattia.com — Irregular blogging
- onyx (work in progress) — Bi-directional type-checker for the Nix programming language
- twrl (work in progress) — TypeScript framework for reactive webapps
- DeckDeckGo (deprecated) — Open Source presentation platform
Academic & Speaking
-
Overview of Language Support in Nix — Public Speaking, 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 — Public Speaking, 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 — Public Speaking, WebZuri — September 2017
Discussions around and examples of functional programming stacks for web
applications.
-
Dominating the Stone Age — Academic, Master’s Thesis
Solved graph-theoretic problems using networks of finite-state machines.
-
Toehold DNA Languages are Regular — Academic, Publication
By Sebastian Brandt, Nicolas Mattia, Jochen Seidel, and Roger Wattenhofer, 2015. In ISAAC’15.
-
Parallel DNA — Academic, 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.
Languages
French (native speaker), English (fluent), German (professional proficiency), Italian (social proficiency)