Jacques Mattheij

technology, coding and business

I Am a Programmer

Admitting that may be career suicide, or possibly it will cost me dearly because ‘software engineers’ are raking in the big bucks these days, but the fact of the matter is that I’m a programmer. It’s what I do best and it is the job title that I associate with most because it feels as though the biggest chunk of me will always be most likely to blurt that out when people ask me what my job is. That I like to program definitely helps.

So instead of choosing some fancy title for what it is that I do because that might possibly make me a bit more money I chose to embrace it, and I have yet to regret that decision. A job title might make a little bit of difference but it’s not going to be a huge factor and it is important to keep that in mind. A/B testing your job title is focusing on the wrong part of the problem, think of it as premature optimization.

In practice, like every other programmer, I do a lot more than programming, I also advise people on the state of their business, help them navigate difficult times and help them to recover from disasters (and occasionally I get to apply this knowledge to myself ;) ). I solve problems. Being a programmer allows me to do all that and more, and unlike any other profession that I know being a programmer gives you a very interesting and extremely varied life and brings you in touch with countless other professions and fields of knowledge. Where else would you find yourself touching on finance, biology, optics, hydraulics, electronics and lots of other unrelated fields in a single job.

Software is everywhere.

Programmers are guys and girls that can take real-world problems, that can analyze those problems and that use that analysis to come up with a way to improve the world, usually in an incremental but sometimes in a revolutionary manner by solving those problems (hopefully) once and for all.

We’re middle-men (and women), glorified translators, and we’re in the unbelievably fortunate position that programming computers is still much too hard for the average user of those computers, so we translate wishes and domain knowledge into a mental representation of machinery that performs some useful task, and then we implement that machinery using some arcane trickery called ‘coding’. And we get to charge relatively big bucks for that. If there is one additional skill that would help any ambitious person in this field it is to learn how to communicate clearly and simply. To stay away from difficult to understand words where simple ones will do, to reduce the use of jargon and to reduce barriers to understanding.

We’ve somehow landed smack in the middle of the cross-roads of every technology revolution past, present and probably quite a few of those still to come (until some programmer not concerned with our collective job security comes up with an AI, but I’m not holding my breath for that one).

Programmers don’t ‘unemploy’ people, instead they tend to cause lots of jobs to be created, including our own. They allow the same number of people to do vastly more work, and typically they tend to improve not only the standard of life for themselves and their immediate dependents, but also for large numbers of other people. They make tools and they empower others by making those tools accessible.

Besides programmer, possibly ‘janitor’ or ‘plumber’ are even more accurate titles for what it is that a typical programmer normally does. Let’s face it, gluing bits and pieces of library modules written by others together isn’t even really programming, it’s more like plumbing together sources, pumps, pipes and sinks. Only we use data instead of sludge as the medium.

Refactoring code has lots more in common with being a janitor than being a programmer. As a ground rule, as long as you are calling other peoples modules you’re not yet programming, but that doesn’t mean that what you do can’t be meaningful or useful.

In the end, what you call yourself is not all that important, and any company that attaches a great deal of value to what you call yourself is probably not worth working for.

What matters more is probably what other people call you. And I’m not thinking about job titles here, more along the line of ‘the guy/gal that solved our problem’, ‘the guy/gal that saved us lots of money’ and so on. Job titles probably never perfectly fit the person anyway, they will always be an approximation, a convenient handle. Whether you use the word programmer to describe yourself or not has very little to do with what your bank statement tells you at the end of every month. That should be a reflection of the appreciation others have of what you’ve done for them, not what your formal title is.

Sure, if you’re locked into ‘bigco’ or maybe you’ve done some consulting and your perspective of the job market is one that has been somewhat limited you might get the idea that programmers are valued by others the same way that people will look at plumbers and janitors.

In my experience however that is not the case. The big value is not in your title, but in your reputation and in your capabilities, and likely no single word will describe your reputation and your capabilities. Programmer is therefore as good as any. If you strive to increase your skills and to improve your reputation your job title will matter even less, and your pay will increase regardless of that title, if you remember to update your rates. Good programmers can make as much or more as good lawyers or doctors.

Calling yourself ‘janitor’, ‘plumber’, ‘programmer’, ‘systems analyst’, ‘software engineer’, ‘software architect’ and so on likely will not make much difference in how much you are going to earn if it is for a company that attaches value to titles instead of to the value (or the savings) generated by your creations.

Because they will use the title as a part of the compensation.

You’ll make ‘x’ +- some fudge factor to keep you happy, no matter what the title they’ll give you and you will be supposed to feel happy about being called ‘x’ (but they pay will still be whatever it was before). Oh, you saved us 500K this year, here is 20% of that is not going to happen. The shareholders will pocket the difference. ‘X’ for whatever job title you’ve got will rarely exceed 250K credits (euros, dollars) annually. So we’re talking about a matter of degree here, and a relatively small one at that.

In a large company you’ll never be given a fair slice of the value you’ve created (of course there are exceptions to this, but they’re fairly rare), no matter what your title. That only happens in companies that are small enough that everybody still knows everybody else by name, and where there are more (pre-ipo) shareholders than there are employees. As soon as it gets to the point that the management no longer knows the rest of the company by name you are working for a big company.

And in such places (and unfortunately also in quite a few smaller ones) the market value of what a person doing your work is charging is what will determine your pay, typically in combination with your age and not much else, and changing your title will be a minor adjustment in your compensation compared to the value created or the amount saved.

A change in rank, title or responsibilities without a significant change in pay is as good as useless, that’s just a sweetener to keep you in line. But it’s very well possible to keep the same rank and title and have your pay increased dramatically.

What you need to do for that is to move to a company that values its employees as more than cogs in a machine and interchangeable units to be plugged in to people shaped slots. You will need to trade job security for some risk because smaller companies are typically more fragile.

Those places do exist. The reason why it will be hard to be employed in such a place is not because they are rare but because turnover in such places is very very low. One thing will likely stand out: such places will place a bonus on creativity and will nurture it rather than beat it into the ground, demands placed on employees will typically be higher and the managers there will be secure enough that they will hire people smarter than they are. As a result you’ll find that the people working there are typically quite a bit happier than those working in your average cubicle farm. The employees in such places are share or stakeholders, and sometimes they are co-founders as well.

Job titles and ranks are good for office politics junkies and big corporations. Places where such things matter are best avoided like the plague. Because they tend to undervalue the contributions of those that make a real effort to benefit the company. Typically such places will be full of people playing the same old silly games, all grounded in insecurity.

Attendance, obedience and being a smooth player in the office politics games will be valued over creativity, productivity and a contribution to the bottom line. The managers will be hiring people that are less smart than they are instead of the other way around.

You’ll see a lot of ‘I’m a senior developer, you’re just a junior developer, therefore I’m better than you’ and variations on that theme. Titles matter more than skills. People will be unwilling to tell each other how much they make. Seniority will be a very important factor. Employee turnover and burn-outs are huge in such places, in contrast with the ones where you do want to work. Employees tend to have as much loyalty to their employers as they’re being given, it’s a two way street. An employer that pays a fair wage and a fair slice of the net profits in bonuses to all its employees (rather than just to the sales department, as is usual in a random big company) is not going to have to worry too much about who has which title.

What you call yourself or what other people call you is utterly irrelevant.

I’d be more than happy to be called ‘janitor’, if the pay is right. And that’s the crux of it, if you are going to go for maximizing your take rather than maximizing your happiness, remember that the best money is made doing the dirtiest jobs, mostly because nobody else wants to touch them.

If you want to make lots of money doing simple coding, affix the word ‘COBOL’ to your current title of ‘programmer’ and watch the money roll in.

Job satisfaction will likely be at a low point for a while, but as they say every man has his price.

Job security, job satisfaction, good pay. Pick any two.

Another angle to this whole discussion is that pay (as a combination of salary and any bonuses) isn’t everything.

If job satisfaction really matters to you (and it does to me!), you don’t need to worry at all about what people call you. Programmer works just fine for lots of places. Those will typically be the places that are not run by administrators but by other technologists. Such places exist, they’re likely not going to be insurance companies or other places where programmers work in large numbers on mind-numbingly boring projects, they’ll be 5 to 50 people shops that work on slightly more technical rather than administrative stuff. These companies typically don’t rake in the billions, but they may be solid earners from one or more product lines.

So the pay may be a little lower, but in the end even if pay is important what is more important is that there is a balance between what you’re being paid and what you feel the job is giving back to you. Having a job is a two way street and being called ‘senior software engineer’ at some large bureaucratic company for a fairly high level of compensation doing maintenance work on a giant database application that was built by 100’s and in some cases even 1000’s of people that came before you may still not be worth the same to you as being a ‘janitor’ for less pay at a technology driven company.

If you think that 90% of all software is written to power ‘the enterprise’ or ‘the web’ then you have a very limited view of the incredibly varied world of software. Sure, there are lots of people working on enterprise software and building websites, but there are also vast legions of people working on much more technical software in specialist fields like CAD, bio-informatics, gaming, engineering, embedded systems, process control and literally 1000’s of other fields. And in my opinion that’s where the more interesting work is being done. It is harder nowadays to find a field that does not have a software component somewhere than one that does. Almost none of that software is going to be facing ‘the user’, most of it is invisible but there are virtual oceans full of it.

It is probably best to strive for a balance between job satisfaction and pay, and not to worry too much about the titles. Worry about whether or not your work brings you pride, whether it is interesting, and whether it brings a smile to your face when you think about it, or when you tell others about it. About whether or not what you do is meaningful and whether it affects peoples lives in a positive way. If you do feel that your title is a major factor in how much you earn or are appreciated you may want to ask yourself if you’re working in the right place and on the right stuff to begin with.

Pay is important, but above a certain level you’ll find that job satisfaction is literally priceless.

I am a programmer. And I’m proud of that.