A software engineer’s role traversal
Software engineer and author Jason Myers on changing roles in a changing market.
Software engineer and author Jason Myers on changing roles in a changing market.
We often hear about how the tech job market is booming and has space for newcomers, but what does that mean for the developers already in the market? In December of 2014, Fortune.com predicted that 2015 would be an excellent year for developers to change jobs. Citing Dice.com, they note that jobs are popping up all over the country. In fact, Dice’s survey also reports 40% of hiring managers seeing voluntary departures, a higher number than was seen just six months earlier.
These are all large, general numbers. What does a job change, and the changing market, look like for individual developers? To get a better sense, I spoke with Jason Myers, who is working on our upcoming Essential SQLAlchemy, 2e title. Jason recently went from working for the email marketing service Emma, Inc., to working for networking giant Cisco. Here, he talks about how a change like that feels, and how the market looks to him.
Jason Myers: I changed jobs just three weeks ago.
Jason Myers: My previous title was Systems Software Engineer and my current title is Software Engineer IV.
Jason Myers: It was quite a jump, I went from working primarily on Web and API development to work on OpenStack, CI/CD, and Linux deployment systems and installers. It was also a move from being on a smaller team in a 150 person company to a very large company. Finally, a move to working from home full-time.
Jason Myers: I’ve been a Network Engineer, Network Design and Implementation Engineer, Systems Synergist, Manager of Information Services, Consultant, Principal Consultant, Business Consultant, Systems Architect, Intern, Software Developer, Software Engineer, Systems Software Engineer, Software Engineer IV.
Titles do nothing for me personally. I know they are often used to slot pay for a position, but I don’t think much of them in the way of prestige. I prefer to just be a developer who is known for his work ethic at work and in the community, and not my current title.
Jason Myers: I’ve been following the OpenStack project for a while as it is a huge part of the Python world at the moment, and I’ve wanted to work for Cisco for quite some time. I was a Systems Architect (Servers and Networking) for much of my professional career before switching to development.
Jason Myers: I think the way people feel about that is going to vary a lot from person to person. At a large company you are not as involved in each individual decision; however, that means you can focus more on the work in front of you. It also leads to more opportunities for research. While smaller companies can tolerate some level of research, larger companies can enable bigger budgets for longer term research. They also can bring in talented engineers from other companies to talk to your staff and provide more opportunities for learning than just outside events.
Jason Myers: I again think this is a personal preference to some level; however, I find the current open office design to be bad for both developer productivity and a historical record of conversation. I find that when there is a remote centric workspace there tends to be more written communication and it is more asynchronous thus allowing you to respond when you take a break versus being interrupted in the middle of a thought stream. I’ve seen this done well inside of offices as well, but it often leaves remote workers off of the impromptu meeting stream, which I think is bad.
Jason Myers: I think it depends on the locale and the job market. I’ve changed a few times in the past few years as my development career has advanced and/or the startup I was working for underwent some big changes. I think it’s fairly common because there is such a demand for development talent, and especially those that are known to deliver projects and be active in the community.
Jason Myers: I tend to see people staying within a particular language, but I do see a lot of people complementing that with additional languages, and the type of technologies they choose to work on varies greatly. My view of this is probably skewed because I’m so embedded in Python. I don’t think I’ve seen too many people make just plain lateral moves unless they where leaving a situation that wasn’t right for them. In Nashville, there are a LOT of web development jobs in Python, but there is also data analysis, OpenStack, etc. What I like about Nashville is there isn’t a bunch of language hate, and everyone seems to want to learn additional languages. We see a lot of interest in functional languages like Elixir and F# due to our great NashFP group.
Jason Myers: There are millions of resources available for online MOOCs and bootcamps, etc. None of those can compare to participating in the local developer community. I was a fixture at many meetups and events prior to my first official job as a developer. This meant I knew people in the field I wanted to join. I knew who I could meet for coffee to get a deeper understanding of something. I had a cup of coffee with Cal Evans (famous PHP Cal), and that basically started my development career. In addition, those people can point you to how they learned or offer to teach you directly.
One thing I want to stress though, is to get a project. Don’t just do tutorial after tutorial. Until you have said I want to go build a thing without a guide, then put that thing live on the internet, and done it, you don’t have a good picture of the actual work of a developer.
Jason Myers: There are a lot of beginners, and Nashville, like a lot of places, is hungry for mid to senior talent. Some of this is due to coding being the hot thing, and some of it is because that other fields aren’t really hiring right now. I’m glad we have this influx of beginners, and I hope they stay for the long haul. However, I hope they continuously train because we need those mid to senior people to develop higher order solutions and help companies progress. I’m not an idealist about open source, I know it takes money to get somewhere.
Jason Myers: Absolutely, provided the community around that language/technology was supporting and open. I gravitate towards Python because of the community and the need for it in our area, but previously I really enjoyed working in PHP and C#. Languages and technologies are just tools for a developer, and given enough time they will ebb and flow through our career.
I do not tend to just go jump on the hot new bandwagon. I like Node, and help organize a conference on it in Nashville. However, I don’t think I’d want to work full-time in that community until the rapid pace of change slows to a more maintainable state. I feel like we have several stable and maintainable technologies and Node will be joining them very soon. Nonetheless, my background as a systems person means that I tend to think about how to actually support, tune, and mature a piece of code rather than rewrite it in a new language, until that rewrite is also maintainable and required.
Jason Myers: I think the market is going to continue to be challenging for employers and great for developers. There are still tons of beginners around filling that need, and I’m hoping more companies will pick them up, and devote resources to leveling them up more. It’s still easy for mid to senior level engineers to move to other companies as they wish.
However, my hope is that some stability occurs and there is less shuffle and a greater effort made to retaining that talent. As an older developer (I guess 35 is older), I’d love to see fewer developers demanding superficial perks, and more of them asking to have more time to contribute to the open source products we use, mentor young developers, and learning more about the space they occupy. All of those result in us growing as developers in more than just our coding skills.
I’m not sure how preachy this sounds, so some might view it as… get off my lawn and be good humans.