A friend of mine is exploring some career options that are coming up, and that friend wants my advice. At first I thought, "Advice from me? You know how many jobs I've had?" Hold that thought.
Before launching into the advice part, it did seem a little strange when I thought a bit about what my career path has looked like. Then I thought about how it isn't that unusual for the kind of work that I do. Some family and friends don't understand even when I explain it. The fact is that I've changed jobs a lot because it's par for the course. We have this really strange thing going on where software people are like a commodity, and yet they're expensive to hire. Business doesn't commit to long-term development or hiring of software people, which is frustrating to me because that would solve a lot of the problems of quality and professional development. But whatever, it is what it is. In some markets, even 18 months in the same gig is unusual.
So with that said, the unexpected benefit of the many jobs I've had is that I've been exposed to an insanely wide range of company sizes, cultures and personalities. I've seen many things. With that experience, there are several general points I can make about work.
It's probably hard for people to really buy into this, but as silly as it sounds, money doesn't make you happy. The first time I ever did a contract gig, it paid $52 per hour. I took the gig on the strength of that number alone, and I hated it.
I'm not saying that money isn't important. It most certainly is, provided it's for what I call the important financial goals, like savings, retirement, modest living arrangements, feeding your kids, etc. It's good to have goals. I would even add buying experiences in that category (read: travel). If your motivation for more money is just to buy stuff, like a nicer car, or more house than you can afford, that's stupid. It's not worth a job you hate.
If there's one thing that makes you a better human being over time, it's growth. You can call it experience, practice, whatever, the point is that you're getting better at life and work as time passes. Personal growth will happen almost everywhere, whether it's a good place or bad place. A bad situation can still help you grow, though probably not as much as a positive situation.
Professional growth is trickier. Some places will claim to "invest" in you, but look at what that investment is. If the result of the investment is you being broadly better at life and work, that's good. If it's designed to constrain you with non-transferable compliance just to the way they do things, that's not ideal.
If you know you're better than the work you're doing, move on. If you feel like your own morals and ethics are at odds with the work, move on.
I learned this lesson after spending about a year and a half at a job that was never going to go anywhere, run by people of questionable ethics. When they finally started to feel the squeeze financially, they laid me off. Frankly they did me a favor. Some time after that, I worked for no less than three companies that asked me to lie to clients in some way. (What is it about agencies?) I didn't stick around in those situations. Compromising to that level is selling your soul.
I didn't get to where I am because I'm awesome. Granted, I had something to do with it, but it was the people around me that ultimately made the biggest difference. Surrounding yourself with brilliant people is a sure way to improve your job satisfaction. It's also a huge factor in your professional development. Some occupations are more trade like than others, but the apprentice-mentor relationship makes a difference.
I got lucky when I landed at a startup full of brilliant people, but as I was interviewing at the time, it was almost immediately obvious that the people I would work with were better than those at other gigs. When the company started to fall apart two and a half years later, it wasn't because of the brilliant people, and I hated that I wouldn't work with them every day.
There are a lot of people who will accept very long commutes. I say that's a bad idea. If your commute is a half-hour one way, that's about ten days per year you spend in your car. Much more than that, and I think it's not worth it. Try to work closer if you can, or move closer to the job. Both are hard to control if you change jobs a lot.
I happen to think we're in a place now where telecommuting is becoming a more realistic option, if an employer is open to it. Don't be afraid to explore that route. There are pros and cons, and it might not be for you, but it's worth a shot.
This one is a more recent revelation for me. Prior to the Baby Boomers, people could land a job and potentially work there their entire life. My grandfather worked the same job for as long as I could remember, right up until his retirement. In the days of skilled trades, that was an excellent model. Today, technology and the change associated with it make that hard. If a company tends to isolate itself and not look around, mix in new blood, or otherwise keep a pulse on what's going out in the world, it risks stagnation. If the company is stagnant, so are you.
I would describe this as the one phenomenon that hurts software and IT folks more than anything. For example, several friends left Microsoft recently, each after working there a decade. Their first impression in new jobs? They had to unlearn so much of what they knew. They worked in somewhat insular roles that perpetuated a process that was not optimal, and the rest of the world moved on to better things. If you find yourself in that kind of bubble, it's worth getting out.