Today was my last day at Joyent.
It has been a weird 3 years and 3 months, but I enjoyed the experience, and learned a great deal along the way. As is always the case, I’m really going to miss the people the most; both those there now, as well those I’ve worked with in the past. The company has used the term “Joyeurs” to describe its staff, and as much as I’ve never really liked the word, Joyent has managed to attract a certain kind of mind, and the people I’ve worked with during my time there have been lovely.
When I moved from Oracle, Solaris was in the twilight of its software lifecycle with a reduced amount of staff and resourcing dedicated to the operating system, and I felt sad about that.
Earlier at Oracle, one of my assignments was the Solaris kernel tech-lead role, and having had a hand in a sightly stressful build-system rewrite before that, I was a little burned out. I ended my tenure there working on the Solaris compliance(8) subsystem, which I enjoyed, but increasingly, it felt like a change of scenery would be a good idea. Several of my former colleagues had moved to Joyent and it looked like Joyent was assembling quite the team. I wanted to help out.
Perhaps this would be my next “for-life” engineering job? Having spent 21 years at Sun/Oracle, I wasn’t looking for a short-term lease, though things don’t always work out the way we hope.
I started out with an eye on build systems, the work I was really looking forward to taking on. We filed RFD 145 as an effort to improve engineering productivity for Manta and Triton development. That effort took just over a year, but I think it was well worth it, making the build system a lot less error-prone, and easier for engineers to use. After that, I worked on various bits of internal tooling, and improvements to the way we were using Jenkins.
I also had a hand in some Manta and Triton fixes, a bit of work in the SmartOS build system, and had the opportunity to learn (and, to be honest, loathe) node.js along the way. Given Joyent’s open-source-led approach to software engineering, you can see almost everything I worked on during that time, from 2018 to 2019/2020 on my GitHub page.
Still, as was suggested to me recently, it started to feel like I might have joined about 5 years too late.
While we had Manta, with its ahead-of-its-time co-located compute capability on objects, as well as the later “v2” variant (which sacrificed that capability, in favour of a more efficient metadata tier) neither solution was the approach our engineering organisation was eventually directed towards. A similar call to not continue with Joyent’s public cloud offerings, started to suggest that Joyent maybe wasn’t quite the long-term prospect I’d hoped for.
Several of the old guard at Joyent left to form Oxide, and with notable staff departures to different companies, our work environment had changed. Nevertheless, a new org was formed and hiring ramped up to contribute to a different, mostly closed-source, in-house object-storage system. We were to build-out that existing system, aiming eventually at the scale that Manta had previously delivered on. While that code was allegedly performing well on small configurations (running on very fast hardware that Manta never had access to, which always felt like a significant thumb on the scales to me), there was work needed to deploy it at a larger scale.
Curious to see what life after Manta would be like, my last year at Joyent was spent working on containerizing that system, writing new build infrastructure and new Ansible code to deploy it. I came up with some more efficient roles and playbooks, and now that we had the system composed of container images, we had the semblence of something that could work in production. This was all targetting CentOS on baremetal (for unclear reasons.) The side effects of that work were that I got to learn Ansible from the ground-up, and gained more Linux experience, for better and for worse, though I often missed the capabilities we had in SmartOS.
Over the past year, I’ve enjoyed drawing on the earlier Manta and Triton build work for this new solution. Growing a project that started as a bare-bones 2-week hackathon entry into something that we could legitimately consider for production was quite rewarding. Although there’s work still to be done, I hope the fundamentals are established. Getting the chance to write a simple build system from scratch, and getting to design it the way I talked about build systems from the beginning of my time at Joyent was a pleasure. I hope that at some point, it gets deployed to the scale we envisioned, and maybe it’ll eventually get released to the public.
With that work now in the past for me, no doubt my former colleaues will drive on with it, I’ll be taking July off to decompress, but am looking forward to my next job, and expect to be traipsing through an entirely different build infrastructure very soon.






















































