Yesterday was my second "Faceversary" (i.e. the anniversary of when I started). That's the tenure that I initially thought I had a 50:50 chance of reaching, so it seems like a good time to look back at how I got this far. Instead of waffling on like I usually do, I'll try to structure this as a set of pretty quick good/bad items.
- Good: Working with a lot of really smart, nice people. FB culture in general is that way, and I feel the POSIX team in particular was particularly blessed.
- Bad: Being forced to leave that team when Gluster was de-emphasized (though it's still growing organically).
- Good: Getting to work on Gluster at higher scale than I ever saw at Red Hat, without the containers containers containers madness, and then working on Warm Storage at even greater scale.
- Bad: Having to work in C++. What a crappy language.
- Good: Getting out of my "architecture astronaut" rut and learning what it's actually like to run something like this at scale.
- Bad: Learning by working all night on potential data-loss isues, or being awakened 20+ times in one night by stupid flappy alerts and obnoxious task auto-promotions.
- Good: Having access to some fantastic Facebook tools, especially for monitoring.
- Bad: Having to deal with some utterly insane Facebook tools, written to replace stuff that actually worked better because writing new stuff is how people get "impact" here.
- Good: Being in some of my favorite places in Silicon Valley (Nom Burger!) and Seattle.
- Bad: Sitting in planes getting to/from those places.
- Good: Challenging problems.
- Bad: Challenging problems.
- Good: Paychecks.
- Bad: Moral concerns (my own and others') about things that Facebook has done.
Overall, I'd say this has been a fun ride, and I expect I'll stay on it a while longer. Where else would I get to see and solve problems that only occur at thousands-of-nodes scale? Only a handful of places, each with their own tradeoffs. It's a pretty good gig, really.