I’m looking to learn more about working with NixOS and having your occupation based around it’s use and/or implementation.
I was also curious to hear people’s experience with NixOS jobs - what it entails, any pros/cons, any advice for some switching to that career (I imagine more devops) particularly from an academic/health data science background.
Honestly, almost any job in IT can be made a Nix job. That is at least my approach. I am an embedded software developer and I introduced Nix to the company when I started working there. It is now slowly getting used more and more. I know that this approach is not for everyone, but it is still a posibility if you want a Nix job.
I am a sole sysadmin / full stack dev for a (non-technical) SMB (but with a ton of old custom dev tech debt), and I manage a small fleet of instances in a hybrid (cloud and on-prem) environment. Started with standard terraform / ansible stack, then started using nixos on my personal machine and homelab (I think when unstable was 22.05). Once I got hooked and comfortable, moved the work stuff over to nixos as well.
My deployment consists of big mono-flake with separate nixpkgs inputs for each instance, so I can upgrade them separately as needed, though in practice I upgrade them at the same time, just don’t want to have to do them completely in lock-step. System deployment is done with deploy-rs, secrets managed with sops-nix. On the dev side, I have drone-ci hooked into gitea for CI and deployment.
As a single owner of the process, nixos is great. Kind of enforces some discipline, as there’s no room to introduce out-of-band configs and forget to rewrite in ansible. If I had to train someone else to do it, I’d be a little worried about finding the right person who would be amenable to learning; I’d be really worried about introducing nixos to an existing devops org, though I’d still be tempted to try.
I can’t speak to how to switch to a career with nixos, as I don’t even think I qualify – I get to decide what gets run in my tiny one-person shop. But I imagine it might follow a similar path – put it on your own machine, then your own homelab or cloud cluster, spin up some standard services. @Solene 's comment on gluing to reality is apt – also a good opportunity to learn, like, modify or rewrite some nixpkgs to fit your use case, use home-manager and system activation or systemd services to creatively fit square pegs into round holes.
I enjoyed reading this thread and general topic. We don’t really have a lot of content on what it means to work or have a job that is highly involved in Nix or NixOS. Would anyone be interested to be interviewed on the topic and then we create a blog or writeup answering the biggest questions on the topic?
It might help folks coming in or considering Nix related jobs to get a better picture and help answer questions like these.
I found this researching distros as it relates to the job market. (Absolutely captivated with nix)
Company is ‘Mercury’
The position is ‘senior full-stack engineer’
" Technically, we’re working on these challenges:
Frontend — React, Typescript, Redux: Creating a beautiful user interface. We iterate on designs and don’t compromise until we have a great product.
Backend — Haskell, Yesod, Persistent: Integrating with banking services and third party APIs to accurately track financial data and make payments.
Operations — Nix, Postgres, AWS: Maintaining a stable, secure fleet of servers.
Mobile — Swift, Kotlin: We have nativeiOS and Android apps
We’re looking for someone who is comfortable working across the stack. The ideal candidate has done full-stack development before, and is excited to learn and work with Haskell, React, and TypeScript."
I work at a technology startup and I have been gradually pushing nix forward into our stack ever since I fell down the rabbit hole personally. We have seen great success so far in improving on our previous docker-based dev environment setup (particularly for m2 macs), and have been starting to explore building on those dev shells to produce minimal & reproducible artifacts (OCI images) for deployment with nix-build.
I think as long as you master the fundamentals of Nix, and are able to effectively communicate its benefits, any job can become a Nix job. The tool as it stands now already provides enough to blow all the other alternatives I’ve come across out of the water, and the main hurdle is wrapping it into something with a nice interface for non-nix experts, and teaching & documenting around any pitfalls to keep the maintenance burden as low as possible. That, and working at companies that are bullish on FOSS.