Being picky

As mentioned in my 2015 round-up post, I’ve been trying to make ends meet, re: open source plus a paying job. In March, I parted ways with a bunch of great people to take time off1 and embark on a job hunt.

My goal was to find a company that could dedicate time to upstream maintenance, used my projects heavily in production, or both:

  • Without a clear split between “internal” and “external” development time, prioritization becomes a tug of war leaving both sides unhappy. (And verbal agreements can get lost when organizations reshuffle.)
  • Only by using one’s own projects can a developer truly internalize use cases and encounter edge cases. Development in a vacuum isn’t great.
  • A role lacking one of these is problematic; one with neither – regardless of how awesome it would normally be – can make OSS unsustainable.

Work found

Despite my tight focus, I’ve had many great conversations with amazing hiring managers – often, after grilling whichever friend or contact initially reached out. Thanks to all of you!

After some difficult decision-making, I’m happy to say I’ve found a role filling both of my criteria! My new employer:

  • uses Fabric to manage thousands of servers, giving me an excellent source of real-world problems to drive development;
  • is giving me 1 day/week for pure upstream development;
  • has plans for a new, interesting-to-an-ops-guy platform that I’ll help architect and develop.

I start at mLab – the world’s leading MongoDB hosting company – tomorrow.

Wait, what?

Some of you are now imitating this GIF, and as for the rest, bless you for avoiding one of tech’s many hate-fests. Unfortunately, MongoDB has a perhaps deservedly poor reputation.

Each of those words links to a less-than-positive article by former MongoDB users and/or data integrity experts, and this is only the tip of the iceberg.

So why did I join a company founded on Maybe Not The World’s Best Database?

Everything involves tradeoffs

See header. For all the upsides this role offers, I’ll happily use MongoDB occasionally. In addition:

  • MongoDB is largely “the product” here; as a sysadmin, enjoying or liking my employer’s product and/or production stack2 has historically been a bonus, not a requirement. I’ve been hired to work on Fabric, not on MongoDB.
  • I’m academically interested to see if Mongo has learned from earlier missteps, and/or why it’s still popular enough to keep a hosting company in business.
  • mLab weathered my many questions re: technical debt, work-life balance, on-call schedules, etc – and I liked what I heard.
  • The company recently announced plans to go above and beyond MongoDB (thus my “developing a new platform” angle). Who knows what the future holds?

Of course, that’s the point – at least in the mid term, the future holds a sweet deal for me and my projects. So please hold back on the snark3, and instead be happy that companies are still willing to directly invest in OSS maintainers.

  1. Insofar as OSS maintainers can take time off…you’ll notice my subsequent blog posts were about a major Paramiko version bump! ↩︎

  2. My last job was technically about mass marketing and Enterprise Java™, neither of which I enjoy. But I didn’t care, because my actual job was slinging Python and Ruby. Same idea here. ↩︎

  3. “The more senior you get, the more cynical & negative you become” is a theme I’ve noticed lately, probably deserving of its own blog post. ↩︎