No company is a monolith

Dear new developer,

When I was a new developer, or actually new to the business world, I thought that companies acted rationally.

They don’t.

I remember when an old timer at my first job talked about empire builders. Basically, his perspective was that above a certain level, there’s not much interest in actually doing things at many companies. Instead, people in power want to accumulate more power–more budget, more headcount, more influence. And this causes turf wars.

I have seen this happen with my own eyes. At one point in the mid 2000s I was hired as a contractor at a big company. Showed up bright eyed and bushy tailed ready to do work. Nothing to do. Asked my contracting company what to do–“bill 40 hours”. Asked my manager what to do–couldn’t get ahold of him. Asked employees what to do–no one wanted to give me any tasks (I never found out why). I believe the manager was just maintaining his budgets and headcount. I spent a lot of time browsing the internet.

I have never felt more useless in my life.

So the point is that there are factions in a company above a certain size (below a certain size, there are still factions, but they are more united because they are trying to make sure the company continues to exist, and there’s fewer places for bad apples who are not interested in the company mission to hide).

What does this mean for you? When you don’t have a job, realize that there are different people and departments that might hire you. Just because you were rejected from one position doesn’t mean you’ll be rejected from another.

If you have a job, it’s a good idea for you to gain an understanding of the various factions and players. Lots of times this can be accomplished by asking questions at company social events and drawing your conclusions. You can then determine which faction you want to be part of (a rising one seems to me to be the best).

I have no patience for this kind of stuff. I’d rather find a great boss and work hard to make him or her look great. That’s probably why I’ve spent most of my life at small companies.

But, the point is, if you’re working in a larger organization (more than say, 60 people) you”re going to want to be aware of the internal politics.



Understand the business

Dear new developer,

Your code is written to further some end. It could be for academia, government, or, more likely, for business purposes. In all the cases, having a greater understanding of these overarching purposes will allow you to make smarter decisions and write better systems. However, just like in software development, business uses a lot of jargon.

It’s worth spending some time decoding that jargon. You may not understand every part of it (just like you probably don’t understand every piece of the system you are working on) but even a little can help. It can help you sift through possible solutions and connect with non technical staff.

For a very high level overview of how business and financial decisions are made, I can’t recommend the MBA Mondays series enough. From one of them:

If cash flow is positive for all periods, then you are done with cash. If it is negative, do one more thing. Divide your cash balance by the average monthly burn rate and figure out how many months of cash you have left. If you are burning cash, you need to know this number by heart as well. It is the length of your runway. For all you entrepreneurs out there, the three cash related numbers you need to be on top of are current cash balance, cash burn rate, and months of runway.

You can definitely find other sources for this information (I enjoyed The Personal MBA as well). These general purpose business books will give you a handle to have discussions with other people in the business. Have those discussions–at gatherings, in the hallway, at lunch. Take these opportunities to ask questions–people love to talk about themselves.

You don’t need to be an expert in the business your employer is in, but being even slightly familiar with it will give you a better understanding of how your technical decisions affect expenses and revenues.