single-speaker

Matúš Ferech

Slovakia

Matúš is a software engineer interested in systems programming, security, and privacy.

Nix: know what you are running, testing and deploying Talk

Anglický jazyk

Matúš Ferech

Nix is a tool for declaring reproducible build and development environments. With Nix, you can be sure that every team member is running precisely the same application in the development, testing, and deployment environment.

Do you know the issues when a new team member is trying to set up a local environment for a new project, but it just does not work? Even though you are on the same operating system, use the same application version, and all dependencies are pinned? Are some C-headers missing? Maybe you need to install some system package. Oh, and do you have the same version of the system package? Okay, let's hope we have wheels for this module. Oh no, we are building Alpine docker image, which uses musl libc instead of glibc, so no luck with wheels this time. We better include GCC. And also this and that one. What's the name of the OpenSSL for Alpine? Does it include the c headers? Great! Done! Now, let's do this dance one more time—this time in CI.

This issue will be a thing of the past with Nix. Let me show you how at my talk!