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.

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