If you were to take a look at my resume, you’d probably wonder why anybody would hire me… In the past three years I’ve had 4 jobs. Luckily for me, every job I left, I left for a good reason, and I could explain those reasons to the satisfaction of the next employer. But I’m not writing this to talk bad about previous employers, but rather to share a little of the knowledge I’ve gathered along the way (and supplement that with other people’s of course). Of course, this is all mostly relevant to development jobs, but I’m sure other people could take from this what they will.

Reasons My Jobs Sucked

There’s a lot of nit-picky things I could say here, but I won’t, I’d rather stick to the broad topics…

Ego in Management

Now, I know we’ve all got ego, especially developers, and we all put up with it to a certain extent. However, there’s a big difference between the “I’m always right” and the “I’m most always right” attitude from management. So, what do I mean by this? Well, you don’t become a part of management for lack of experience or knowledge (in general at least), but you don’t ever stop learning either. A good manager knows that they should listen to their developers, because those young punks will eventually come up with a better idea than they might have. A bad manager resents those better ideas, is overly defensive and assertive, and usually ends up taking all the credit for everything done. What’s worse, I’ve even had a president of a company put me in “time-out” for two weeks, simply for having good ideas (there’s a longer story here of course, but that’s the gist of it). I literally sat around for two weeks without a task.

Dishonesty in Management

This is a bit of a gray area because at some point, as a manager, you’re going to be privy to information that you can’t share with the rest of the company as much as you want to… and you’ll probably have to lie to help keep the secret. I certainly know the difference between that situation, and just flat-out insulting dishonesty. Nothing destroys credibility like lying and being caught (for example, don’t tell you development department that it is safe from down-sizing only to have said down-sizing happen a week later). Maybe you don’t care about your credibility… that’s fine, but I can assure you that your employees won’t give a damn about the job they’re doing for you.

Indifference of Management

This is a bit of a tough area, because you really need to be careful and be objective about what indifference management might be showing. Just because somebody’s doing something against your recommendations doesn’t meant they’re being indifferent, they might know something you don’t. Remember that thing about ego? It works both ways.

So, what exactly do I mean by indifference then? Let me do a little set-up… Imagine you were hired as an “expert”, that is, somebody who is supplementing a missing area of knowledge and expertise within the organization. It would stand to reason that the recommendations you made would come from your experience and past successes, and are made because you know they have the best chance of helping the company succeed.

Now that the premise is understood, imagine that you’ve been working on a project with a company for a long time, and its already experiencing success. Imagine that a lot of the reason that this success has come to pass is, in large part, due to the recommendations that you’ve made. Now, imagine that management starts thinking about some new ideas, a lot of which you know won’t work, or will cause security issues, or whatever bad that usually out-weighs the good. You would probably explain why these are bad ideas from an objective point of view, and (if you’re good) offer an alternative.

So, where does indifference come into all this? Well, in the situation I just described, the indifference is when bad decisions start being made, against all recommendations, especially from the people that you hired to help prevent you from making these decisions. I know I could have bundled this up with ego, but sometimes indifference towards recommendations is done without ego. And a lot of times, it really isn’t even any kind of trespass or negligence, it’s just the way the situation is perceived. But it’s this perception that’s the killer. If you, as a developer, have busted your ass to build something, and you watch it slowly fall apart as your forced to implement what you know are damaging and, well, dumb ideas that you’ve given all the reasons against doing so, you will quickly become disheartened. And when you raise these concerns, and they’re met with indifference… well, I’ve made my point.

Reasons My Jobs Didn’t Suck

So enough negativity, what has been good about my jobs? A lot actually, I just wish all this had been at the same place. And, perhaps it will finally be that way at my new gig, but only time will tell that one.

All The Tools I Needed Were Given

This is written about EVERYWHERE, so I’m going to be very brief. When I got the hardware I wanted (within reason of course), the software I wanted, and a reasonable workspace, I was very happy, and very productive as a result. The nicest thing I ever got was the green light to order all the servers and rack equipment I wanted for a project because we didn’t want to deal with scaling issues for a long time… I got a lot of fun toys, and learned a LOT from all that.

My Bosses and Supervisors Were Mentoring

I’ve had a few bosses and supervisors that actually wanted to help me learn, rather than keep me from becoming better because they perceive that kind of thing as a threat to their job security. Best thing I ever heard about good vs. bad managers:

“A good manager will train you to be able to replace them, a bad manager will only do what he must to protect his job”

… or something like that. At any rate, you get the picture I’m sure. One of my bosses was so good that I ended up following him to another company and getting hired with the same title as him. Perfect example, methinks.

My Ideas Were Implemented or Corrected

Another simple thing that made me exceedingly happy. When I had a good idea, we implemented it. When I had a bad idea, I was told what was bad about it, rather than it just being dismissed, or worse, being called stupid.

I Could Take Some Time For Myself

One of the nicest things about a good job is that you can take 5 minutes here or there to read articles and other tidbits from around the net without having to worry that your boss is going to walk by and assume you’re slacking off. There’s nothing more annoying than having to constantly peek over your shoulder to make sure you don’t get in trouble for reading about some new javascript library, or anything else that might actually make you more of an asset to the company.

I Was Surrounded by Peers

Nothing sucks more than being the only anything at a company. The only developer, the only IT guy, you get the point. In the world of startups, you sometimes get put in these positions, but what makes them cool is that when it finally comes time to hire another, in my case, developer, they actually find somebody as good or better than you. Nothing is more frustrating than being told that you’re finally going to get some help, and they’ve found an excellent junior programmer or intern.

Not that I have anything against new programmers… I was one once too, but as many seasoned programming vets will tell you, a start-up is probably not the best place to have your first development gig… unless you do it like my buddies Kevin and Dusty (go figure, they’re developers). Read their article to see what a good internship is like.

Wrapping it All Up

So, this has been more or less a long rant, but I’d like to think that I’ve approached it differently than the whole disgruntled developer unhappy ’cause he can’t get a gig at Google so he bitches about every job ever constantly… and I certainly hope I haven’t taken the whole rails community approach of “why you’ll never be as cool as us” (yeah, I said it, most of ‘em are pretentious asses). Anyway, I think it’s important to take a long, subjective look at your career and try to identify what was crappy, and what was pretty cool… which is what I did… yay me!

Here’s some interesting reading: