I recently quit my job. My letter of resignation was short and to the point: I had accepted an offer at another company and was giving my two weeks notice. I read and reread my email a few times, took a deep breath, and hit send. I was now officially a short timer, and before I knew it, my last day had come. It was a bittersweet occasion for me. I had already said my heartfelt goodbyes, gave hugs, shook hands, and parted ways with coworkers who had become friends. I shed a tear as I walked off into the sunset, but not once did I look back.
There are pros and cons when it comes to changing jobs. The benefits of staying in one place for the long haul are pretty self explanatory. The awkward time spent floundering about at the start is now a distant memory. Having built up credibility, your input is actually valued. You find yourself entrusted with critical projects, given more freedom and flexibility in execution, climbing the corporate ladder with every success. The sky is the limit. So I’m going to talk about the flip side and why you would ever want to give all that up voluntarily.
The obvious reason is unhappiness. Maybe the opportunities for growth and advancement aren’t really there. Perhaps the work life balance is non-existent. You could have a pointy haired boss. The technology stack could suck. The company could be on a downward spiral. It lost its VC funding and now the employees are leaving in droves. There’s a whole myriad of issues that would make you want to leave.
But why would you ever want to leave a place where you are quite comfortable and content? Well, there’s a fine line between contentment and complacency, and the longer you stay at a place, the easier it is for complacency to become complete stagnation. A change of jobs can shake things up and expose you to new ideas. Every place has its own way of doing things. Ideally, the goal should be to learn new languages, design patterns, tools, and frameworks wherever you go. It can also be quite instructive to pay close attention to the org chart. For example, how do people report up the chain command? Do they use horizontal integration, vertical integration, or a combination of both? Also, observe the processes put into place by the company. What is the product release cycle? When there are blocking issues or showstopper bugs, how are these problems escalated? Where are the bottlenecks? There is no one size fits all when it comes to structuring and running a corporation, so by examining these things closely, you can figure out what works well and what doesn’t given a specific set of circumstances. This will allow you to assist the company by suggesting improvements and sharing your own experiences. Furthermore, this experience can refine your future job searches by helping you identify the well run companies.
On a similar note, by experiencing a wide range of different work environments, you can quickly learn what is tolerable and what is not. For me personally, I’d never work anywhere that required a suit and tie. Outdated and obsolete technologies like classic ASP are also a complete dealbreaker. Free coffee and soda are a perk, but not a necessity. Again, this helps you narrow down your search criteria when it comes to finding a new job. In a way, this is similar to dating. Much in the same way that you cannot know what you are looking for in a significant other until you have been in at least a few relationships, you cannot really know what companies will be a good fit for you, until you’ve worked for at least a few of them.
Which brings me to my final point. Gone are the days where an employee joins a company and works there until retirement. It is best to get used to changing jobs, because there are things out of your control, such as mass layoffs, budget cuts, and the collapse of the US real estate market, that can lead to unemployment. To the uninitiated, finding a new job can be very stressful. The mad scramble to update the resume, apply for positions, talk to recruiters, and run an interview gauntlet can be completely overwhelming*. Starting a new job is even more stressful. The ramp up process can be unforgiving, especially in the tech industry, where one is expected to be self-sufficient and be able to adapt on the fly. In my first week at a consulting gig I did at Microsoft, I had no cubicle (we had to work in the atrium until we found enough office space for the whole team), no developer image on my laptop (we had to set up our dev environment from scratch), and no account in source control (we had to email our code in zip files so other devs who did have access could check our files in). Oh and the project was already behind schedule so we needed to work weekends too. By having gone through multiple job changes early on in life, hectic starts like this will no longer faze you later on in life, when the stakes are higher and you have a family to feed. This will make your job transitions go much more smoothly and successfully.
*Luckily, there are many great books and resources on this. Land the Tech Job You Love is one. It contains a lot of great advice. For example, you don’t want to make a disaster preparedness kit after an earthquake hits. Likewise, you want to update your resume at least once a year, so that if a layoff or other disaster strikes, you’ll be ready. Better yet, if a great opportunity arises, you’ll be ready to respond immediately.