Nicolas Mattia
I am a software engineer with a passion for functional programming,
correctness and robustness. I like simple solutions.
[email protected] • github.com/nmattia • https://nmattia.com • Zurich, Switzerland
Employment
2019 — present DFINITY
Full-stack & Infrastructure Engineering:
- Contributed to DFINITY’s authentication system (Rust, TypeScript)
- Coordinated between engineering, product, and design for timely feature delivery
- Improved developer workflows and tooling as part of the Internal Developer Experience team
- Built a system to catch and debug non-deterministic builds early in CI
- Optimized caching and workflows to reduce CI time and flakiness
- Collaborated across teams and with external partners to scale and secure CI infrastructure
- Built secure, cross-platform build and release pipelines with automated artifact publishing
- Ported the company’s main Bazel-driven Rust project to produce release artifacts for arm64 Linux and Apple Silicon
- Developed a Nix-based build tool for Rust (naersk)
2016 — 2019 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
- SKAPA — In-browser generation of 3D printable models for IKEA pegboards
- 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)