Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flox as a Guided Path for Nix

Flox as a Guided Path for Nix

Flox aims to simplify software delivery by leveraging Nix. This presentation explores lessons from years of building developer tools and cloud-native systems. Discover how Nix is the key building block, addressing complexities in modern application delivery. The talk emphasizes a guided path for adoption, enabling teams to modernize without needing a Nix expert in every department. Dive into the underlying mindset of Flox's approach to evolving software practices for a simpler experience.

Delivered at Planet Nix 2025, March 07, 2025.

Avatar for Michael Stahnke

Michael Stahnke

March 07, 2025
Tweet

More Decks by Michael Stahnke

Other Decks in Technology

Transcript

  1. Flox as a Guided Path for Nix Michael Stahnke VP

    Engineering at Flox (flox.dev) @stahnma
  2. 5

  3. 6 Packaging and Software • Founded EPEL repository • Maintained

    more than 200 packages for Fedora • Ported Ruby to AIX • Packaged for AIX, Debian, Red Hat, Solaris, Mac, Windows, Arista Switches, Cisco Nexus Gear, etc @stahnma
  4. 9

  5. 20 Other problems Can’t find headers Can’t find libraries Shell

    vs develop Experimental Features Is this a package manager, a package repository, an OS, or a tool? @stahnma
  6. 21 Commands with spaces all need extra arguments saying it’s

    ok to use commands with spaces @stahnma
  7. 26 Nix Benefits • Reproducibility • Cross Platform • Trying

    out software • Caching builds and tests • Huge Package Repository @stahnma
  8. 27

  9. 28

  10. Everyone knows that debugging is twice as hard as writing

    a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? — Brian Kernighan 34
  11. Workflows 39 • Have a way to contribute to a

    project (locally usually) • Set environment variables in some way • Configure the environment • Run Tests • Have development look like something that will run in prod • Use my editor • Use my preferences @stahnma
  12. 40

  13. 45

  14. Thrown away concepts using cloud native architecture 46 Multiuser systems

    Multi-application systems Debugging using a shell Process and User accounting @stahnma
  15. Added complexity when using Cloud Native 47 Debugging tools Observability

    tooling IAM Paying for services to monitor services to run services to monitor services YAML…fun? Sure. Fun. @stahnma
  16. Peel back the complexity Onion 48 There is a lot

    to like about Cloud Native Architectures. @stahnma
  17. Peel back the complexity Onion 49 There is a lot

    to like about traditional Unix/Linux concepts. @stahnma
  18. Peel back the complexity Onion 52 Build on the simplicity

    of an environment you can work with in your shell. @stahnma
  19. Peel back the complexity Onion 60 Share your environments with

    colleagues, production, friends, strangers @stahnma
  20. Peel back the complexity Onion 62 If you know nix,

    great. Perhaps this can help with others on your team or department. @stahnma
  21. Peel back the complexity Onion 63 If you’re new to

    nix, I hope this an easier approach. @stahnma
  22. 65 Nix Benefits • Reproducibility • Cross Platform • Trying

    out software • Caching builds and tests • Huge Package Repository @stahnma
  23. 66 Approach • Centered around “Environments” • They can be

    used at any time in the SDLC • They are portable • They are sharable • They are built upon nix and share some of the best nix benefits. • They are not 1:1 Nix • Packaged software versions over time • Auditable @stahnma
  24. 67 Approach • Meet technologists where they are • Compatibility

    with existing SDLC approaches, tools, processes • The developer experience is paramount @stahnma