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.
- As a Postgres fan, I may compare/contrast it to 9.4+’s JSON support; could even use Mongo-via-Postgres tools in a skunkworks capacity. Change from within!
- 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.
-
Insofar as OSS maintainers can take time off…you’ll notice my subsequent blog posts were about a major Paramiko version bump! ↩︎
-
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. ↩︎
-
“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. ↩︎