The baby boomer generation probably helped define the image of career path and trajectory for many Gen X and Millennials that followed. It was incredibly common for the baby boomer to remain with one company for their entire career, possibly move up the proverbial corporate ladder, and retire with a pension. The typical baby boomer’s lifespan may have looked like
college/military → entry-level → low level management → higher level management → retirement with pension
For engineers, the problems of traditional career paths may be compounded. To ‘move up’ and maximize earnings often means getting further from what you do best or enjoy (code) and the result may be to leave jobs more often than you should. Management responsibility is not always on the engineer’s wish list, yet that direction may be the best way to earn more. There is a career point where salaries plateau, and switching employers becomes unsustainable as a method of increasing earnings.
Considering that statistics show the younger generations are typically switching employers every three years, two things are clear:
- Employer loyalty is dead, and has been replaced by either loyalty to one’s own career (hopefully this is the case) or just the need for new challenges (boredom).
- We need to start looking at alternative employment and earning models, career path, and trajectory in a different way.
Entry-level and junior candidates in the tech industry often ask how long they should stay at any given job, how to get into management roles, or what options they have in their career given a certain set of skills. I’m always amused when entry-level developer candidates inquire about getting into management, as if they are trying to get out of coding before they’ve written one line. It seems that most are focusing their questions based around traditional baby boomer type standards of career path and earning, while very few are even considering what alternatives may exist. “Layoff victim? Go find another job, of course!” “Not making enough money? Get promoted or find someone to pay you more!”
Aren’t there some other possibilities that one might at least consider? In technology, the range of opportunities for earning are substantial and alternatives to the standard employer/employee mindset are somewhat vast.
As opposed to approaching your career as simply the search for new jobs, think about career for just a minute as a collection of ways to earn money while building your skills and marketability. One of those ways is obviously to take a full-time job slinging code for the bank or insurance company. That works for many people.
But what if your job isn’t paying you enough? Naturally, you either try to get a promotion (which for engineers is often into a role that may make you less happy) or you go out and get a new employer. Did it ever cross your mind, even for a second, to get a second job? This second job could take on several shapes, so perhaps we should call it a second source of revenue so we don’t lead people to believe this will require 80 hours a week.
Or what if your job is not fulfilling professionally? Do you ever hear about actors who will take peanuts to do the indie films they want and make up for it by doing a few summer blockbuster movies for millions? This isn’t a perfect analogy, but it’s a valuable mindset. I know independent contractors who may have three or four clients at one time, with varying hourly levels of commitment to each, different rates, and a range of project technologies. It’s not easy to do, but it can be done.
If your day job is technically unfulfilling or not providing the necessary financial rewards, at least consider some of these possible options before taking the usual steps (listed by perceived level of difficulty, starting with least difficult).
Day job + moonlighting (contract) – Could you make a few extra bucks and perhaps learn a new skill through a paid side project ? If you have contacts that own businesses, they may be a good source for this type of work. This could cure both your boredom at the day job and being underpaid.
Contracting – It seems the decision to go into contracting is often not made consciously, but rather based around a specific opportunity that leads to a contract and then an acquired appreciation for the lifestyle and money. A proactive approach to entering contracting as a full-time endeavor is probably more effective, as you need to think like a business owner.
Contracting, multiple concurrent clients – This usually requires having a widely respected set of technical skills (a ‘name’), a network, and some basic business knowledge (not to mention time management and negotiating knowledge). Not easy, but something to strive for and aspire to be. Doing 50 hours of remote work a week on three different projects and getting paid for every single hour is probably fairly enticing for most.
Day job (full-time or contracting) + product – Could you supplement your primary income by creating some sort of product for sale? Your product could be mobile apps, a web app with a subscription model, or even a tech book. This could be time intensive at first and obviously requires some creativity for ideas, but also financially rewarding.
These alternative arrangements are not for everyone, and they may come with some associated risk. The world of employment, especially tech pros, has changed significantly over the past two decades. It’s time to start thinking differently about career paths and traditional employer/employee models. Whether or not these options are right for you, they are worthy of consideration.
Job Tips For GEEKS: The Job Search is out and available in most ebook formats. See the book page for more info on where to buy.
I’ve recently seen a spate of engineers declaring boredom and/or dissatisfaction with their current roles and responsibilities, which leads them to openly question what options are available. Perhaps building accounting software products or maintaining the web presence of an insurance firm just isn’t inspiring you to get out of bed anymore. This problem isn’t unique to the software industry (and based on a 2003 Joel On Software post, not necessarily new), but whenever a professional invests years of their life getting an education and honing their skills, it can be daunting to think that the time was somewhat wasted.
Thankfully, if you are losing your passion for typical web or software development, your training and experience have at least in part prepared you for several alternative roles that perhaps you have not considered. It seems that frustrated developers tend to weigh their options as stay in development or leave the industry, without considering the fact that these other alternatives exist. If the source of discontentment is tied to the role of app or web dev work (and not the overall tech industry), there are some relatively new roles that have become more in demand that may satisfy the itch you have.
This information may also be useful to new entrants into the market and grads that are wondering what they can do with their computer science degree other than just stereotypical development roles.
Here are some examples (some have crossover and similarity):
Performance Engineer – This role isn’t about building a product, but rather improving speed, scalability and reliability. Performance engineers may be thinking about databases or monitoring tools one day and hardware or operating systems the next. It is a highly technical and specialized role with increasing market demand.
QA Automation Engineer – QA is one discipline that seems to have gone through some significant changes over the course of my career (15 years). In the late 90’s, QA meant large teams of manual testers and high demand mostly attributed to the Y2K scare (history lesson for the young). At some point thereafter it became the norm to outsource QA overseas, making QA a lost art in the US and thus making QA talent significantly harder to find. Over the past couple years, there seems to be some resurgence of demand for QA to be performed domestically, and hires typically will be expected to have some automation and scripting experience.
DevOps Engineer – This is another role that has been growing due to the number of shops that like to deploy frequently. As the trend in delivery will not be changing anytime soon, the ability to automate the process will continue to be in demand.
Configuration, Release, or Build Manager/Engineer – As the look of development teams has progressed from crowded shops to remote employees, combined with the popularity of cloud-based computing, the concept of configuration management is changing. Demand for talent in these areas is relatively steady.
Embedded Systems and Firmware Engineer – Although the transition from your typical app or web developer position may be a bit more complex, one should expect growth in embedded systems to continue as the variety and sheer number of devices continues to increase. The concepts of ubiquitous computing and the Internet of Things are getting one step closer to reality every day, and engineering talent with a unique set of skills will be required.
Project Manager, Technical Writer, Business Analyst – Having a coding background can make the move into any of these jobs a bit easier, and your appreciation for development should maximize your shot at being successful.
Before abandoning the years you have invested in learning how to code, consider whether or not you may be happy in a different role that enables you to reuse many of the skills you have already developed.
My ebook Job Tips For Geeks: The Job Search has been released and is now available in most formats. See the book page for details.