I'm Co-Founder & CTO of BlockAvenue. , connect with me, or subscribe.

What every software engineer should know: your career is a business

Your career is a business and you should manage it like one. There is a lot to being a great software engineer and therein lies the problem: a focus on the technical (which is important, clearly) but a neglect of business, communication, and management skills needed to be your own career advisor. Without these skills many great, passionate engineers find themselves at a disadvantage working for too little pay or enjoyment. Here are some tips to set you in the right direction managing your career effectively.

Business 101: Supply & Demand

You have something to offer. There is some demand out here for it. In working, you exchange your time and effort for money and other goodies. The more demand there is the more you get and vice versa.

The above is a basic supply and demand graph. Price tracks the demand line. If supply increases above demand prices drop. When the reverse happens price goes up. Like a good stock portfolio, your value (or price) over time should be increasing:

So what’s your value? What do you have to offer? Here are a few examples:

  • Technical expertise: You just know it better and deeper. Someone has a question about JavaScript hoisting? You the man.
  • Domain knowledge: You really get your business and it’s nuances.
  • Dependability: People know when they give you something it well get done. Really done. If you run into a weird bug you don’t give up; you pound on it until a solution is found.
  • Culture: You make the environment around you better. People like coming to work a little ┬ámore when they work with you.
  • Leadership: You can get people going in the same direction and get things done that require team effort.
  • Creativity and insight: You understand what is really going on and can find novel solutions to the problems at hand.
  • Communication: You work well with designers, project managers, clients, etc and can resolve conflict without freaking out.

I’m sure you could come up with others. The critical point here is that a marketable skill set often extends way beyond the purely technical. Many recent graduates feel scammed by their Computer Science programs in being ill prepared for the “real world”.

Know Your Market(s)

First things first: what is your market?

Your first market is simply where you work. The world that is your coworkers and clients / customers is a market all its own with a specific slant of supply and demand. What are the unmet needs? How can you increase your demand by improving existing skills or getting new ones? Can you get ahead of the curve by acquiring skills soon to be in demand? In some cases you can even create (artificial) demand by introducing a new technology or service. Act like an owner and you’ll discover a number of opportunities to increase your value.

The wider market is harder to define. It could be in a specific technology (Rails or Java), a specific industry (healthcare, finance, retail), a certain kind of company culture (startups) or an odd niche (such a project manager specializing in bailing out projects in trouble: I actually know one of these). Within this market how do you stack up? Who are the leaders? What skills are most in demand?

Identifying and really understanding your markets can take a lot of thought and investigation but is well worth the effort. Once you’ve done this you can begin to strategically change your position. This means improving your current set of skills or changing your position altogether by picking up a new set.

Don’t Be a T-Rex: Awesome and Extinct

Being a “dinosaur” has little to do with age except the longer you work the more opportunity you have to let this happen. Being “dinosaured” is the result of being left with skills that have no demand in the market. For instance, focusing your skills on a niche may be a good idea as it could make you more specialized. If that market grows you could be a leader. However, if that market evaporates you may find yourself with something to sell and no buyers. Welcome to dinosaur-hood.

Talking Turkey

Talking money is rarely fun for engineers. It just feels dirty. Or selfish. I have one thing to say to this: get over it.

You may love what you do, the people you work with and your company (and that’s awesome). You may even work for a company that really takes care of you. But don’t forget for a second this is a business relationship; I assure you the business hasn’t.

This isn’t to say you shouldn’t love where you are (because I do and that’s always been important to me) or that there are company owners who are good people and try to do right by their people (because I know a few). The business has a bottom line and so should you. They write you a check (and provide benefits, vacation, etc) and get something in return. What that “something” is and how much it’s worth to them is the important bit.

By advocating “talking turkey” I don’t mean negotiation skills (although that’s important). I’m emphasizing being more conscious of your bottom line. Your company isn’t doing you a favor by paying you and you owe them nothing. You have a responsibility to yourself (and others that depend on you) to maximize your value.

Do you think about your career as a business? How do you manage your market value?