Developer Career Mistakes
Podcast: Play in new window | Download (55.7MB) | Embed
Subscribe: Apple Podcasts | Spotify | Email | RSS | More
We’ve all been there. Some decisions we make eventually come back to bite us. The worst of these are the decisions that we didn’t even know we were making, or that were made for naive reasons. Sometimes you do things with the best of intentions that end up harming your career, reducing the options you have available, or even trap you in a dead end job.
A word of warning. Both of us have done some of these at one point or another and suffered the consequences. We’re not immune either. When you have your head down and are trying to be productive at work, especially in a fast-paced environment, it’s easy to make (and worse, continue making) mistakes that hurt your career over the long term.
When we say “mistake”, we don’t mean an intentional, stupid, destructive action that you take that hurts you. As an adult you probably know the crap you shouldn’t be doing and are mature enough not to do it. Rather, we mean things that you do that cause you to paint yourself into a corner in your career, often for the best of reasons. Subtle mistakes are like rain coming in through a hole in the roof – by the time you notice the damage it’s extensive and hard to recover from. We aim to help you avoid these types of career mistakes in this episode.
We can damage the quality of our careers even with the best of intentions. In fact, that’s the primary way that it’s done. There are a lot of sneaky things that you probably haven’t thought about that can hurt your career (and your income), and there are probably even some that we haven’t thought of. However, this list should give an idea of the kind of situations that can really hurt you – hopefully that will help you avoid these problems in your own career.
Staying somewhere with no prospect of promotion (unless you are an owner.)
Dead end jobs are everywhere. If you can’t get more responsibility and more interesting work, it’s time to move on. Some people will stay in a dead end job for a decade or more, simply because they are comfortable. If you aren’t learning, especially in tech, you’re sliding backwards.
If you’ve been somewhere for a long time, you have a heck of an adjustment when you go elsewhere. This can mean that you have a hard time getting (and keeping) a new job. It’s very easy to get set in your ways when you don’t move around and it’s really easy to get behind. This is more than just getting behind in tech – this limits your opportunities to learn new things in general.
Staying somewhere that refuses to use reasonably new technology.
Speaking of technology, unless you intend to retire very soon, it’s a bad idea to stay somewhere that doesn’t use reasonably new technology. While there is certainly a place for being good at old technology, there is also an opportunity cost. You should probably only work on (exclusively) older technology at a premium price. Remember, when (not if) you change jobs, you’ll either have to retool or it will take while to get a new job.
While it can cost money and time to keep up with the technology as a company, it costs developers a lot of money for them not to do so. This behavior tends to extend to things like training, processes, and workload as well. While there are some times that your company might defer an update to more recent technology, there is rarely a reason for doing so over a period of five years or more that doesn’t make the work come at a premium. Most of the time, being woefully behind in technology is a choice and the employer is putting the cost of that choice on their development team.
Becoming a toxic team member (or joining up with them).
Even the best shops have problems in their codebase. We won’t talk about the worst shops. Nevertheless, there is a weird team dynamic that often developers where several developers get together to complain about the codebase. This can be helpful if the next action is to fix the problems, but if it turns into a continual whining session, it’s best to get well away from it.
Being in a group like this is bad for your career (and your job) for several reasons. Management tends to hear about these groups. The sort of people who sit around and complain all the time are exactly the sort who will sell you out to save themselves. These groups also trend towards being thoroughly disempowering, always talking about how things are wrong and will never change. When you get to a future job, who would you rather have recommending you, the successful people, or the people who sat around whinging all day? Unsuccessful people tend to find more of the same jobs next time.
Not having an emergency fund.
If you are one missed paycheck or small emergency away from being broke, you’re already broke and you are easily controlled. If you are asked to do something illegal/unethical, do you have the funds to be able to make it without a job on short notice? If you can’t do that, you are much easier to convince and you have less ability to push back on management.
This also means that if you should suddenly lose your job, you could easily end up having to get a less than optimal job in the meantime. This can mean a job that doesn’t pay enough, in an environment you hate with people you don’t like, far from home with an awful commute and no prospects of things getting better. Such jobs can easily paint you further into a corner, or make you look like a job-hopper when you leave them.
Leaping before you have a place to land.
Leaving a terrible job is a relief. However, doing so without significant planning and at least some leads on another job is a very bad idea. When you are out of work, you’re burning cash by the minute. This can cause you to make poor decisions as you watch the money run out. It also can cause a lot of interpersonal stress in your home (assuming you don’t live alone) for you to leave a job with no idea what you’ll do next. It’s not worth it unless your current job is extremely bad.
This also makes negotiations for next job harder. Say you want better pay, more vacation, and the like…. it’s easier to negotiate for these when the potential employer knows that you already have a job. Further, some companies will drag out the interview process if they know you are desperate. The thought process is that they can win negotiations more easily this way. Jumping without a place to land is a shocking experience and can make you more likely to stay at the next place longer than you should. This can hurt you as well.
Trying to be too much of a generalist.
While generalists can easily find another job, it’s also easy to find a generalist for any given job. Early in your career, you may be a bit of a generalist, but you should expect to tighten up on your definition of the kind of job you want. The thing about generalists is that they do well when the economy is booming, but don’t do as well when it isn’t.
You need to be able to stand out from other similar developers, and you want to stand out for the kind of jobs that make you happy. While this doesn’t necessarily mean specializing in a particular type of business (although it probably should over time), what it does mean is that you should focus on handling certain types of problems. It’s probably better to specialize in a particular industry through – it makes your marketing easier. If you don’t specialize, you’re competing with everyone else you know, who is similarly not specialized.
Using your personal time for work, without compensation.
When you see major issues in the codebase at work, you may be tempted to try and fix it on your own time, simply because you enjoy the work. While you might be willing to do it for free, using your time like this is essentially throwing it away. If the work you do is for your current job, it’s unlikely that you are going to be able to ethically show it to a future employer.
You are better off spending your spare time making your own things, including things that have nothing to do with tech. Bear in mind that if you work for free, you are training other people to not see your time and effort as valuable. Further, you are training *yourself* not to see your time as valuable and that’s a bad habit. You’d be surprised how many job opportunities show up through channels that have nothing to do with work.
Starting out by showing how fast you can work.
While it’s good to make a good impression on your first month or two of a new job, be careful not to hit the gas too hard. You are often at your peak of performance at a new job. People are cutting you slack, you haven’t made enemies yet, no one has a reason to interrupt you, and you are excited. All these things fade over time, and you are better off setting a sustainable and decent starting pace than setting one that you can’t keep up with.
Showing everything you are capable of allows and encourages people to plan to your maximum capacity. The problem is, that your maximum capacity isn’t sustainable. You are one family problem, bad week, or long term health problem away from a serious drop in performance. You’ll be held more accountable for a drop in performance to the level of everyone else than you would be had you just been at everyone else’s level. You’ll also make frenemies among your coworkers doing this if you aren’t careful. Don’t make yourself the hero of the show.
Being unable to quantify the value you create.
If you don’t have a good idea of the value you create, the overage will be captured by someone else. Information asymmetry makes negotiation (both for your current job and any new job) harder to do effectively. Most people will err on the side of caution in regards to the value they provide. Companies rely on people doing this. If you were paid for every bit of value you provided, there wouldn’t be a company. Nevertheless, there is often a ton of wiggle room.
Additionally, knowing the value you provide will often help you see trouble coming a mile away. Let’s say that you realize you provide $200,000 worth of value and you are paid $100,000. You don’t usually know this without understanding your company’s business model. Understanding the business model helps you argue for things that make the company more money, rather than focusing narrowly on tech. It’s easier to get raises this way. You can also notice broken business models in the way.
Not understanding how your boss is evaluated.
If you are only making yourself look good, it’s much harder to get promoted. If your actions and reliability help your manager look good their manager, it makes it easier for them to get promoted. Likely the best seat in the house for you is their old chair, so helping them get promoted can help you.
Additionally, understanding how the manager is being evaluated helps you understand how you are truly being evaluated. A lot of times, your manager evaluates you based on how your performance makes them look. Make them look good and it’s a lot easier to ask for raises, and a lot of headaches. Make them look bad, but meet what you thought your performance expectations were, and you’ll often be disappointed. Do this really well, and that boss may hire you at the next place they work.
The Healthy Programmer: Get Fit, Feel Better, and Keep Coding
Chapter 5 is titled “Preventing Headaches and Eye Strain”. Honestly we could to an entire show on just this topic as it’s been an issue for both Will and myself in the past. Kutner introduces us to a common cause of headaches in programmers called Computer Vision Syndrome (CVS). The first section, called “Unit Testing Your Vision” talks about getting annual vision tests then goes into testing your environment to see if it is set up to cause vision and headache issues. He has you set up your normal work environment then asks a series of questions explaining the reasoning behind each one. In the next section he discusses how headaches come from a thing called middle-sightedness or focussing for too long in the mid range of vision, where computer screens naturally sit. While as developers we can’t exactly avoid looking at a computer monitor he does suggest several things to help reduce or avoid CVS. These include blinking often and taking breaks from the screen. The following section talks about headache triggers including things like caffiene, MSG, and aspartame. For each one he discusses the evidence behind why it causes headaches. In the last section before the retrospective he talks about treating headaches. This includes using relaxation techniques, lying down in a dark room, and over-the-counter medications. He also lists out some circumstances where you would want to seek professional help. One of the big take-aways from this chapter is that monitors should be 20 to 40 inches from your eyes and they should not be brighter than the room.
Tricks of the Trade
Most markets are small, even if your city is huge. Word gets around quickly about bad behavior. I have a list of people I’ll never work with. Even though I’ve never worked with them personally, I’ve known multiple people who have. Word of mouth is completely impossible to stop once it gets around.
This includes on social media. While social media flamewars can be fun (or cathartic, depending on your mood), be careful about where they spill out. I have talked to a number of hiring managers. Some of the first things they check out are places like twitter, public facebook profiles, etc. At the least, have the sense to keep your fights to yourself. Remember that people don’t remember what you said, what you did, or how you carried yourself. They remember how you made them feel. A little bit of soft skills helps a ton.
Remote Work Book
Beej is working on setting up his audio recording environment with his new microphone.