Hacker News new | ask | show | jobs
by gbro3n 37 days ago
Similar to this, but NixOS. Having AI to help me through made this so much easier. I was sold on the idea of an 'IaC' config based machine, after a general push to move all of my processes towards full GitOps. Windows had been pretty good to me (running 4 years on the same laptop install), but it had started overheating with fans sounding like a vacuum cleaner and it was time to start over. The difference with NixOS is that sure there are issues and preferences to work through, but when I fix them, they get committed in config, and thats an investment in time rather than something that will be right until next time I have to do it. I was able to reproduce, and rebuild on a separate machine with minimal hassle (it's good to go through this process to be sure you've got it right) and that really was amazing to see. SSH keys, SMB share, monitor configurations, themes, apps, utilities - a fully set up dev machine, everything is just there. I've been planning changes on a Copilot integrated taskboard I built (https://www.agentkanban.io) and then handing them off to the agent, reviewing the changes in the VS Code git client and then apply, commit. Being able to see the number of commits makes me realise how much I was doing manually, every time I set up a new machine.
1 comments

In my first years with NixOS, I really wanted to share my enthusiasm and joy with others. But I often got caught up explaining the mechanisms, the insights that it's built on. It took me a while to come around to realizing the heart of it: NixOS feels really good to use because it frees you from the uncertainty of a machine that suddenly changes underneath your feet. It gives you a system that is really easy to inspect and modify. It gives you the ability to move forward without fear. It's really liberating and relaxing in a certain way.

Historically, a sense of intimidation and the difficulty of onboarding blocked a lot of people from accessing these benefits. It's been cool to see how LLM agents have helped a lot of people get started and tap into the fun parts.

My experience with explaining NixOS is that once you get to the benefits people get intimidated and start telling how they never have these issues.

I think immutable distros/software are the most intuitive way, even if people get intimidated with the idea. What's the action you did as a junior when windows/linux/x broke? You most likely reinstalled. When encountering issues we tend to try to emulate immutability.

The sad thing about NixOS is that there's 0% chance of seeing it used at work. Even in the devops people you're lucky if people can edit a Dockerfile. Good luck spending the next 3 years explaining it might look like json but it's not, and it would help to learn the syntax.

We used nix for developer environments, and nix to define docker containers for our production services. The biggest problem is the “nix people” can become blockers if there is an issue and they aren’t around to figure it out, because most engineers are just not going to learn nix.

However, we felt the benefit was worth the cost, overall, especially because we used the same flakes and therefore versions across all dev and deployed envs, and we didn’t have to deal with the hassle and performance issues of running all the dev services in docker containers.

I'm the Nix guy on my small team at work and I'd love to train any of teammates on Nix stuff. One of them already has some Nix experience and I make sure to walk him through my Nix work whenever I finish something new. But it seems like no one is really interested in truly diving in like I did when I was new to Nix.

I don't really know why that is, because it doesn't seem to have to do with intelligence or general experience with adjacent skills. I think it's probably at least 30% down to temperament, but it may also be because my team is mostly fairly senior and each person has a lot of responsibilities of their own.

On the bright side, the tooling is easy enough that nonetheless, my team generally has no problems spinning up new Nix environments without me, or making small changes to the ones I've set up. And LLM agents are now good enough with Nix that I'm confident they can unblock themselves until my return whenever I'm on vacation or whatever.

Yeah, similar experience here. One pattern that was helpful for us was defining a nix file that just contained a mapping of names to lists of packages: dev, ci, and so on, so that if you wanted to install something that was on the nix search page, you could just go toss it in there and immediately get it locally. It also made it clear which package sets would wind up where, and allowed recursion so you could say that like dev was rust-base ++ rust-dev ++ js ++ common, or whatever.
Currently no NixOS at work for me, but my team is using Nix for local development environments and CI successcully via devenv.nix. I think we actually could use NixOS on my team except that we have a host of endpoint security software that we need to run on all cloud VMs, and I'm a little distant from the people who own the automation that installs it on approved AMIs.