Career Thoughts of a Second-year Developer
In March I’ll be celebrating two years of working in the professional world. I’ve grown a lot and, upon reflection, have identified three distinct stages of personal development that I’ve gone though in that time. While I have certainly learned a great deal, in a way it feels like I have more questions now than when I started, the biggest one being: where do I go from here? Before I get into that, though, I’ll give a quick recap of the path that got me where I am today.
Stage One: Acclimation
The first six months to a year were a period of acclimation to working in “the real world.” I’ve had paid internships during summers since my sophomore year of High School, so I had some idea of what being a professional software developer was like. There are plenty of differences being a salaried employee vs. an intern, but in the beginning it felt much the same. I was given problems to solve and spent my time solving them, learning our codebase and the basics of our business along the way. It all felt very familiar, and the familiarity lulled me into a false sense that “This is all there is to it.”
Sometime between six months to a year in I started to make the first mental transition toward the second stage in my development. I had become comfortable working in our technology stack, getting to a point where I could do things without needing much help from colleagues, and began noticing deficiencies in our software infrastructure and development processes. Hours spent troubleshooting why Eclipse was suddenly spouting hundreds of errors, work lost through misuse of Perforce; things that had been “just part of the process” were becoming much more apparent and bothersome.
Stage Two: Infrastructure
As I started to notice these issues the scope of my problem solving expanded to include not only the problems given to me, but also those I noticed myself. Looking back I have to appreciate the freedom I was given that allowed me to pursue this work, though much of it was done on my own time and only brought to the attention of others when I had something good to show for it.
Working these problems on my own time, while it may seem like a negative, really goes to show that I had become genuinely interested in finding better ways of doing things, and it became something of a passion project for me. In fact, some of my favorite projects that I am most proud of came out of this period.
The results of that work made the day-to-day development much more enjoyable, providing a sense of progress and momentum that has carried over into the rest of our work. A coworker remarked to me that, before I started to make the improvements to our infrastructure, he felt like things were beyond the point of being saved and, after seeing the progress I had been able to achieve, was encouraged to improve things himself. That alone gave me more satisfaction than any technical achievement, and I began to think about the idea of making a career in this developer support role.
Stage Three: Culture
It was around 18 months in that I experienced another expansion in the scope of my interest. Just as my view had expanded from specific problems to the context and infrastructure in which I was solving those problems, my view began to expand once more to include the organization and culture in which everything else was occurring. It had taken 18 months, but I was beginning to realize that, while the technical challenges were interesting, the people problem is orders of magnitude more challenging and interesting to me.
I became fascinated by engineering culture and studied both the internal culture that I was immersed in, along with any information I could find about the culture in other companies. Unfortunately for all the discussion on various technical topics, it seems there is comparatively little on the subject of organizational structure and culture. To add to the lack of discussion, it is much more difficult to experiment with ideas around culture than it is with a technical idea.
Where to Next?
With the progression and mindset outlined above in mind, I wonder: where do I go from here, and how exactly do I get there? I can identify at least two obvious paths of interest: working to ensure developers are as effective and productive as possible (ie. the infrastructure tooling and processes I developed in stage two), and thinking about, developing, and maintaining engineering culture. The former seems much more concrete, though I find the latter to be more interesting at the moment. The theme common to both interests is the desire for my work to help other people, which seems like a useful observation on what motivates me.
Given those two areas of interest as potential goals, I’m somewhat at a loss of what steps I can take now to bring me in the right direction. There isn’t any clearly defined career development progression in my current environment, and there aren’t any roles that I know of in the organization that encompass either of these interests. It seems that any progress toward these goals will mean blazing my own trail which, while I’ve been doing that to some extent already, may be a more difficult path than necessary.
Ultimately I’m not sure there is an answer for me to find here, but at least with a destination in mind I can ask around for a map.