I was inspired to write this blog because of the number of developers who've recently reached out to me regarding their employment situations. This past week a Senior Developer asked me for advice on what technologies he should learn in order to find a job. He was recently let go from his long term job due to reasons such as organizational restructuring, shifts in technology etc.. He is a bad ass developer that I had the pleasure of working with and learning from as a noob in the industry. I consider these senior developers innovators & veterans of an earlier tech industry. These engineers are very intelligent and capable but over time they neglected their skills and unfortunately became technically irrelevant.
I've officially been working in technology for over 20 years in various roles, capacities and sectors ranging from military, commercial enterprise, federal and most recently start-ups (again). I'm very fortunate to have vast experience in all of these sectors which also gives me a little insight into how developers creep into these situations. I'm going to take the liberty of generalizing here and give my opinion of a developer career track so don't flame me too bad if you don't agree:
- Junior tier developer – noob learns the ropes
- Mid tier developer – work horse, continually learning technology, integral in pushing innovation
- Senior developer – mentor the junior/mid tiers, usually embroiled in project/managerial aspects
As developers rise in an organization their roles and responsibilities inevitably change from being hands on and in the trenches to managing processes and projects at an abstracted layer. Upon reaching that “Senior or Director” status, your primary function is to basically provide for the junior/mid tier developers and enable them to successfully accomplish the project goals. In most cases Senior Developer become “managers” within an organization. They are expected to lead and manage projects, provide guidance and most of all be the bridge between C level execs and tech teams. Inevitably these Senior Developers are removed from being immersed in developing technology and instead overseeing it's progression. They ensure that the team's goals, deadlines & budgets are met.
If what I've described rings true for you, then in my opinion you're on the downward spiral as a developer. You're distracted by your non-technical responsibilities which are very important but ultimately keep you further and further away from technology and before you know it your skills are dated and often are no longer relevant.
So as developers how can we prevent this from happening? We can't afford to stay at the Junior/Mid tiers forever. We need to grow and experience new things in our careers and all the while staying technically relevant. Below I offer some advice that has served me well over my 20+ year career:
- Influence the culture at work
- Embrace change
- Be Passionate
- Champion positive change & innovation
- Build rapport with others outside of your functional units – Understand their work
- Collaborate & Share Ideas across functional unit
- Read about technology daily
- Understand the tech market – discuss it with peers
- Become a Polyglot - Learn & know at least 3 different Programming languages or Frameworks very well
- Keep abreast of new languages and frameworks in the community
- Allocate time to experiment with new languages and frameworks (2-3hours weekly)
- Contribute to or start your own open source project
- Attend local meetups that interest you
- Break out of your shell and contribute to the group – offer to give tech talks
- Network with other developers in your area
- Participate – Great way to learn technologies and meet new developers
- Mentor – Great way for you to give back to the developer community
- Organize – Sponsor your own event in your local community
There is one more item that I struggled with early on and that is “Don't be religious about languages/frameworks or technologies”. There are no silver bullets in technology and keeping an open mind is crucial not matter how much you despise a particular technology.
Most developers will ascend the latter in organizations and must protect their skills and themselves from becoming irrelevant in tech.
Tweet at me if you have opinions: @twrivera