Why changing jobs every few years is good for your career

 

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.

 

 

Why every developer should work for a startup at least once in their lives

Shortly before I graduated from the University of Washington, I joined the startup company Twango as a software development intern. We were a web 2.0 company whose premise was to provide a centralized place on the web where users could upload, manage, and share all their digital media with friends. Our tagline was “Share your life”. Think of a more advanced version of flickr that catered toward power users and also had support for video, audio, and office documents. I was offered a full time job there after completing my degree in computer science, which I gladly accepted. Looking back, it was one of the best decisions I ever made in my life.

I got to experience a truly hands on learning environment that was far more in depth and educational than any of the projects that I had worked on in school. This is not a knock on the University of Washington, as there is only so much you can do in a quarter system and when you are constrained by the course material itself. The professor is not going to deviate much from her carefully prepared course plan*. The “curriculum” at a startup is much more fluid and dynamic. Because the team itself is so small, everyone actively participates in every aspect of running the company, from development, testing, design, operations, customer support, and even marketing. I had to master many different technologies and learn on the fly. This helped foster a “can do” attitude that has served me well over the years. It didn’t matter what language, tool, framework, or API was needed. I was willing and able to learn whatever was necessary to get the job done.

This amazing learning experience is free from the constraints of bureaucratic processes and red tape found in larger corporations. I am not saying that processes and development methodologies are bad, only that corporations tend to adhere to these things religiously, rather than exercising flexibility and common sense. At a startup, you are given a lot more freedom in what features you work on and how you will design and build them. For instance, Twango was missing a private messaging feature, so I went ahead and built one. At a giant corporation, something so simple would have required multiple meetings, requirements gathering, functional specifications, and a whole lot of other hurdles. That’s even assuming the higher ups would even OK the feature in the first place. At a startup, you can pitch your idea directly to the founders. At a corporation, you as a developer are typically pigeon holed into a narrow role working on a small subset of the functionality. At a startup, you have the freedom and the responsibility over the entire code base. It sounds daunting, but it’s actually quite empowering.

Of course, the best part about working for a startup? It’s a lot of fun! Sadly, most people forget that work can and should be enjoyable. Older, grizzled veterans of the development industry tend to become cynical over the years, and view their jobs as a way to collect their monthly paycheck. They forget the passion and enthusiasm that got them excited about computers in the first place. I’m lucky that I got to experience the startup culture straight out of school Otherwise, I wouldn’t really know what I was missing out on. As a result, I can screen the companies that I interview for, and tailor my search toward the types of places that evoke the same happy feelings I had when I was at Twango.

This is why I’d recommend anyone who recently graduated from school to go find a startup to work for. The pay will not be as competitive. You might never IPO or get bought out. But it is better to take that kind of risk when you are young. There will be plenty of time later on down the line to find a high paying job. Trust me, the skills you acquire at a startup will allow you to easily find one later. Not to mention, there will be other perks. The Twango founders constantly took us out for lunch, movies, and even the occasional ski trip. These are the sort of warm fuzzy memories that are truly priceless.

*To be fair, many of the University of Washington capstone courses do a good job of giving the student more freedom over their own projects.

Layoffs done the Nokia way

I’m always amused at how life in the corporate world resembles a Dilbert comic. In an example of life imitating art (or in this case, life imitating a hilarious comedy), Nokia shut down its Kirkland, Washington office in 2009. What followed was a textbook example of how not to do a layoff.

The first problem was the delivery and presentation of the news. Some of the people at our office (myself included), were suspicious of a last minute yet mandatory all hands meeting at an offsite location early in the morning with just a vague description about important strategic changes. The first half of the presentation ended up being a conference call. A high level manager called in and droned on in a deadpan monotone voice about big strategic changes with Nokia with respect to its web services. It was left (intentionally?) vague and dragged on far too long. The second half of the presentation was made by another high level executive, but at least this one was in the same room as us. However, he gave a nearly identical presentation to the previous speaker, and even went so far as to reuse some of the same slides.

Obviously at this point, people were getting annoyed and wanted him to cut to the chase. The speaker ignored one of my coworkers who stood up and said “Excuse me? Excuse me? This is ridiculous!” Finally, he presented us with a slide of all the Nokia office locations in North America. I asked, “Where’s Kirkland?” and the room erupted into laughter. They had fired everybody by showing us a slide of a map. We were no longer on it.

The speaker tried to lighten up the mood with some jokes. “At least you guys don’t have swine flu!” The awkward silence that followed was broken up when one of my coworkers pointed out: “Haha, yeah, because we don’t have medical insurance anymore!”

The whole situation was made more ridiculous by all the recent hires we had just made. One of the new team members had just relocated here from the Vancouver office, merely weeks before this happened! He had sold his house too. Another had recently relocated all the way from Finland. To put it lightly, all the recent hires were a bit annoyed at the situation.

The fact that the high level management could not coordinate with the lower level management and institute a hiring freeze showed a lack of leadership, a lack of basic consideration for employees, and an inability to execute. This was apparent prior to the layoff, when Nokia announced its move into web services and launched the Ovi brand. Nobody in the company really took ownership of Ovi, dictate exactly what it was or what it was supposed to represent, nor did anyone give a clear vision or strategy around it. Not to mention the millions of dollars Nokia spent setting up its Kirkland office, only to flush the money down the toilet less than 6 months after we had moved in to our new location.

The lack of common sense was apparent when they announced we would build a replacement product prototype. Even though the layoff was announced in April, many employees (myself included) would stay until the end of the year, helping ship a new (but related) service. What do you think a bunch of people who are told they won’t have jobs in a few months will do when asked to work on a new product? Well, we spent a lot of the time discussing interview questions, interviewing with other companies, playing poker, and doing the minimum amount of work needed to maintain professional integrity. In stark contrast, prior to the layoff, this same team had worked late on weekdays and came in on weekends in order to ship its last two sprints on time.

One of the things I’ve learned over the years is that its not productive to point out problems without at least offering some solutions. This is something I picked up from the Twango (the first startup company I ever worked for, and the one that Nokia acquired and then dismantled) founders. So here are some simple tips from me on how to correctly lay people off. Do I really think some high level executive is going to read this? No, not really, but I include this in here because I do believe in constructive criticism, and this entry wouldn’t be complete without it.

1. Keep the presentation short and simple. Nobody really cares about a company’s big strategic changes if they aren’t even sure about their future with the company. In a situation such as this, they are more worried about supporting their families and paying their bills. Something such as the following would suffice: “We are sorry, and there’s no easy way to say this, but we have to lay everybody off. Anyone who would like to stay and listen to the reasoning behind this decision may do so, but the rest are free to leave. HR will be following up with individuals shortly”. Don’t try to make any jokes, because the audience isn’t in a good mood.

2. Institute a hiring freeze as soon as the decision to do a layoff is made. In the case of Nokia, they had decided on shutting down the Kirkland office months in advance, so it was pretty inexcusable and inconsiderate that they kept hiring people from all around the world.

3. If you are going to keep some employees around for a few months, don’t delude yourself into thinking that a severance package is going to motivate them to do good work. See point 1. They are thinking about their families and how to best support them. Their main focus will be on finding new jobs, and the last thing on their minds will be helping the company that is going to terminate them in a few months. Keep them around in advisory roles and to do knowledge transfers, but nothing else.

4. Don’t try to squeeze as much as possible work from your employees before cutting them. Some of the more grizzled veterans pointed out that Nokia’s layoff mirrored that of other layoffs: The months preceding the layoff involved working long hours on a death match. So there’s two reasons why this is a bad idea. The first is that death marches are a bad idea. There’s already countless articles on this. Suffice to say, squeezing two to three months worth of work into one month means that corners will be cut, and not enough time will be devoted to design, implementation, and testing. The second is that now you have shipped something that wasn’t given enough time to bake, and now you have no one left to maintain it – you’ve gotten rid of them! The sad state of Ovi Share today is that a lot of its key functionality was cut out in the sprint in order to ship on time. The thinking was, “oh no problem, since we’re doing rapid iterations we’ll just do it in the next sprint!” Well, except no one had communicated to us that there wasn’t going to be a next sprint. What’s funnier is that today Ovi Share has gained millions more members, but the missing functionality has never been added back.

5. Make sure laying off people in your R&D division is the appropriate course of action. Layoffs are a part of life, but they are a short term solution to save some money. However, R&D is the backbone of any long term strategy. Without it, your products will become irrelevant, much like Nokia’s mobile phones today. I’d like to think our team was Kirkland was strong; we had lots of veterans with years of experience. As evidence of this, everyone found employment before or immediately after their termination date, despite the economy.

This botched layoff, in addition to being funny, is symptomatic of bigger problems within Nokia. I’m not surprised to find that today, Nokia’s stock has plummeted down to 8 dollars a share. While it still does have a dominant market share of the smart phone market in Europe, its hard to imagine how much longer this advantage of theirs will last (as today’s smart phones become tomorrow’s low end phones). With that said, I did enjoy my time at Nokia, and hope they can find the effective leadership required to turn things around. Any company that has had such a long and successful history, and the logistical ability to coordinate manufacturing and shipping millions of phones on a global scale is one that should be able to turn itself around.