Almost a year and a half ago, on March 2, 2015, I started work as a software engineer. I was new to Portland, new to programming, and frankly, new to having any kind of foreseeable career path.
The first year was a rush: trying to learn as quickly as possible, trying to do well, trying not to fall behind. I set lots of goals for myself. Since I was working on a public REST API, my manager suggested that I learn as much about APIs as possible. Not only did I take that advice, but I started to veer my long-term career goals in the direction of becoming an API master. APIs are neat. They are symbolic of the Internet itself, showing how interconnection enables complexity and creativity. Pursuing that domain-specific knowledge, I focused on having a specialty – on being special.
From there it was easy to start playing the career ladder game. Can I get a promotion six months from now? What do I have to do to get there? I focused on promotion as a sign I was doing well, a sign that I was on the right track. I felt hugely validated (and, of course, sure that there was some mistake) when I was promoted to Software Engineer II a year in. I couldn’t wait to jump right in and start wading towards III, then IV, then senior. I joined a small group of women specifically working on “leveling up” and kept adding to my list of goals.
Over the last several months, though, I got a wake-up call. Part of the wake-up call was that I changed jobs. The API team (me) was merged into another team, one that owned a bunch of internal services. I stopped driving towards API knowledge and Ruby/Grape expertise and scrambled to pick up Java. Now that I was no longer working full-time on a REST API, my goals around API mastery loosened their grip. When I was asked where I was trying to go long-term, I found that my desire to climb to the level of senior engineer as quickly as possible had also disappeared. Instead, I started wondering: why am I here? What motivates me? And I remembered promises I’d made to myself back when I first embarked on the software engineering path. I remembered why I chose a tech career and how it fits into my life goals, not just my career plans.
It’s been an interesting process to re-envision my nearer-term goals with respect to these larger life values. I’m surprised by what has taken root so strongly: to really pursue work as a full-stack engineer. To be somebody who makes a point of being a generalist. I’ve been a generalist all my life. Why switch to being a specialist now? The heck with “Jack of all trades, master of none” and the associated stigma. I’ll be Jack. I like variety. Variety is useful.
I’m starting this blog (in earnest this time!) to capture what I learn in the process of becoming a Jack of all trades. If I’m going to gobble up knowledge involving React, Angular, Java, Kafka, Rails, Docker, Jenkins, and so much more, then I’ll need a place to recompile and condense that information – and that’s here.