Being Geek: The Software Developer's Career Handbook by Michael Lopp

Your job is not just what you’re doing; it should be preparing you for what you want to do.

It’s OK to quit a job with people you like because there are a lot of people to like out there.

This is why my management strategy is to assume those closest to the problem can make the best decisions. That’s how I scale.

It’s easy to forget with micromanagers and visionaries cluttering your day with their agenda, but as the owner of the code, it’s your job to care — daily.

There’s a simple rule designed to grab your attention: “If you’re not growing, you’re dying.”

You’re coasting. Sure, it’s comfortable, but while you’re sitting there in your mediocrity, your industry is aggressively attempting to make you irrelevant. It’s not personal; it’s a function of all of those other bright people who aren’t scared of failure, who have surrounded themselves with catalytic personalities, and who thrive on understanding.

Perhaps a healthier way to think of it is that your manager is responsible for your job, but you’re the manager of your career. The primary goal of both jobs is to identify and act on opportunity inside of the company that is going to challenge you, force you to learn, and push you to the edge of discomfort.

A good manager creates opportunity, but it’s your responsibility to take it.

If technical direction is your ability, and growth is the refinement and shaping of that ability, then delivery is the reputation you construct around that ability, and the rule is also simple: “Do what you say you’re going to do.”

Any task, big or small, that has landed on your plate and you failed to complete is eroding your reputation.

When the boss is signing you up for failure, your move isn’t laying down the no; your move is to tell the truth. Hey, I have no idea how to be successful here. I care about being successful, and so should you. Help.

You need to be maniacal about your reputation.

A reputation is a community-based opinion that you don’t control. It takes years of work to develop and a single missed key responsibility to destroy.

Growth is actively watching my career and making sure that today is not a dull repetition of yesterday.

The act of creation makes knowledge yours. It grows your mental arsenal — giving you a new experience to reflect upon forever.

Nothing taints common sense more than being pissed off.

You are the business, and the one consistent metric business is measured by is growth.

If you’re asking for help all the time, my question is: what value are you adding? If you’re never asking for help, it statistically means you’re screwing up unnecessarily by ignoring the experience of those around you who’ve probably already efficiently solved this particular problem.

You manage up for two reasons: to communicate and to ask for help.

Part of your job is to catch the things your boss and your team miss, and part of your job is to ask for help with the things you miss.

The most important part of managing up isn’t that you’ve chosen to manage up; it’s that you insist on help.

An excuse is an abdication of responsibility. There are no healthy excuses.

Life in a big or small company is an information game where you are judged by the amount, accuracy, and timeliness of your information.