So, today I did I thing I've never done before. I quit.
In all my career as a software developer, I've never quit from a position like this. In college I quit a few jobs that weren't software development, such as the warehouse job, the data entry position, and the pizza delivery service. I've quit a few small start-ups that weren't paying me what I was worth, but then at the time nobody was getting paid what they were theoretically worth, and every single one of those start-ups was still incredibly valuable: they let me keep my resume alive, and they let me learn useful skills. But all the big job endings, from CompuServe, F5, and Isilon, had been either shutdowns or layoffs. CompuServe was just axed by some holding company owned by AOL. F5 and Isilon let me go during the massive layoffs of the Big Tech Bubble and the Great Recession, respectively.
I've never just… left. Certainly not when the opportunities at the company were pretty good. At Isilon I was definitely going stale, but the same can't be said for F5 or CompuServe. At those, I'd been learning great things up until the very end. At F5 we'd had a great ANTLR project underway, and at CompuServe I'd been knee-deep into making contributions to the Python standard library and maintaining the original mod-logging library documentation for Apache.
Today, I quit because I'd lost my niche.
Today I left my job a Splunk for no other reason than that I wanted to. I'd been learning a fantastic array of new stuff. I had Kubernetes deployments working reliably, was deploying them on AWS, had transitioned away from Ansible onto something using Terraform and Ksonnet, was writing a Kubernetes-based microservice in Golang to gather billing information for tenanted systems, doing internal logging and using the Prometheus client libraries for observability (but actually scraping the data into Splunk instead, which was hella fun), and had a Grafana-to-Splunk dashboard transformer kinda sorta working. Codeship, Gitlab, Jenkins, Swagger, Docker, Make, Go, you name it, I'm doing it. And a lot of Python, too, as it remains the official language of Splunk Enterprise Engineering. Oh, and the front-end of our proxy is written in React, too, which they gave to me because "You're a UI guy, right?"
I was a UI guy. In fact, that was why Splunk hired me in the first place. I'd literally written the book on writing SPAs (Single Page Applications) using Backbone, JQuery, and REST, after learning how to do that at a previous start-up. I had a niche as an expert single-page-application developer using Python middle tiers and SQL back-ends. I could, in a pinch, even do it in Ruby on Rails, but it would take a week, whereas if you gave me Django and Postgresql I would have it up and running in an hour.
I had an elevator pitch. You can still read it. I was someone who could do the whole stack, even on AWS, well enough to get your start-up off the ground. I did it five times: two failures, two lifestyle successes, and one runaway success that allowed me to survive the 2008 recession, paying for Omaha's medicines and the kids' schooling, without having to tighten my belt too much.
Looking at the list of skills I've got from Splunk, I can't say that I have an elevator pitch anymore. Everything I've been doing for the past six months has been too fast, too new, too much all at once for me to develop a sense of expertise in anything— well, except for writing a Prometheus-instrumented microservice in Go. Maybe that's not a bad niche, since the bulk of software development is just plumbing anyway these days, a paint-by-numbers process of input, map, filter, output. The problem is that anyone can do plumbing. I like to think I'm better at the really hard problem in that area of development than most people– but then I'm reminded that most people don't care about readable code anymore. It's all replaceable anyway.
Part of this coming year will be to figure out what my next elevator pitch will be, and if there's a place in the industry where I want to pitch it. I was good at industrial websites, and I was good at server design, and I was good at UIs for embedded systems. The question is: what will I be good at in 2020? What will I need to be good at in 2020?
I guess I'm about to find out.