How to Excel as a Software Engineer and Crush your Competition
Make no mistake — the software engineering field is a lot like Game of Thrones, only the arguments are more boring and there’s slightly less nepotism. If you follow these nine simple tips, however, you will annihilate your competition and make software engineer 70 in no time.
Tip #1: Collaboration is your enemy, and so is everyone else
No matter what other people may tell you, it is important to always keep in mind that your teammates want you to fail. They hired you because they want to make fun of you, they offer to help you because they want to feed you misinformation, and they make small talk with you because they want to determine what your greatest weaknesses are. In all likelihood, all of your teammates gossip about you the moment you leave the room.
Do not play their game. Treat them with hostility, decline almost all of their offers to hang out, and when you do talk to them feed them blatant lies. This will throw them off the scent. In the one or two times a year you hang out with them, the important thing to remember is that gossip is your friend, especially if it involves made-up stories about scandals and/or cocaine. If possible, also try to have heated arguments about religion, politics, or both. My favorite topic is foreign policy in the Middle East, as it is an easy platform for offending people politically and religiously.
Tip #2: Blame everything on your sysadmins
Okay, it doesn’t have to be your sysadmins. If you can’t blame your sysadmins, blame your development environment. If you are a software engineer working with a hardware team, blame your hardware team. If you have already expended these three sources, then you’re going to have to get a little more creative.
Is one of your engineers too important and busy propping up your company’s infrastructure to know or care who you are? Great. Blame that person’s software. Are you using code that’s more than six months old? Great. Call it legacy, and make repeated jabs at how the person who developed it can’t develop new code because he doesn’t know where to insert the punch card. Has your tech lead asked you to work very closely with another person who has your same experience level? Great. You are an FPS soldier, and you have just spotted your first kill.
Make it really clear to everyone, your partner included, that you are the alpha. Here are some easy ways to achieve this:
- During meetings, don’t bring a notebook. Tell your partner to bring a notebook, then repeatedly ask him/her to write down everything that everyone else says
- Whenever your partner speaks up and asks anything, say “Remember when I told you that?” Do this even if you definitely didn’t
- Take credit for your partner’s accomplishments and blame your partner for all collective failures. A great technique for doing this is by putting //TODO [Insert partner’s name here ]: FIX THIS LATER whenever you write code you are not proud of
Tip #3: Peer Reviews are a Weapon
I heard that some companies don’t do this anymore, which I find very unfortunate. Peer reviews are very fun to write, and what’s nice about them is that you can actually use them as a weapon even when they are “positive.”
Example negative review:
[Insert name here] is a fake, incompetent jerk who possesses only the most basic understanding of…well…BASICS. He will create unnecessary pointers for no reason other than to delete them twice, he legitimately does not know what a data structure is, and he logs “hello world” as a fatal error. Everything he writes is a clustertruck that only an individual capable of stooping to [insert name here]’s level of idiocy could possibly comprehend, which is why most of my teammates love him
Example neutral review:
From his confidence and the way he talks, you’d think that he would know how to code. He does not. At all. The crazy thing is that I am not even being mean. Objectively, he just does not know how to code. I am physically incapable of giving you a longer review of his coding ability than that, because there is no ability present
Example positive review:
[Insert name here] is an incredible, highly competent software engineer who, if given the opportunity, would certainly leave this company at a moment’s notice. She even told me this. She is currently interviewing at Google and Amazon, and we are all very impressed. Personally, I am pushing for Google so that she can promptly push my resume along
Tip #4: Argue with everyone. About everything. Always.
“Chaos isn’t a pit…chaos is a ladder. Many who try to climb it fail and never get to try again. The fall breaks them. And some are given a chance to climb, but they refuse. They cling to the realm or the gods or love. Illusions. Only the ladder is real. The climb is all there is.”
— Elon Musk
Jump into conversations, even if you don’t know anything about what the other people are talking about, and simply disagree. I will give you a brief example:
Other person: That system doesn’t work
You: Yes it does
Other person: No it doesn’t. We ran a test this morning and-
You: Yes it does [if arguing is ineffective, just repeat the same thing but say it louder]. It’s worked for weeks and weeks and weeks
The more arguments you start, the more you will foment unrest. The more unrest you foment, the more you will create a rift in the delicate fabric that holds a company together.
When everyone else goes down, you can climb upwards. The higher you climb, the more necessary it will become to continue to do so by throwing wrenches at your teammates’ respective career paths.
At this point in the game, it becomes important to use deceit. It doesn’t really matter what the deceit is about. Just use lots of deceit. Hell, be deceitful about what you had for breakfast.
Tip #5: Emails are a weapon
This isn’t a long one…just go over everyone’s head, and whenever you say something edgy make sure you reply all.
Tip #6: Separate the forest from the trees
When you get your new code base, I find that it helps to start with the main thread, chart out the most typical examples of how things work, and take note of any potential areas that could be problematic, if stressed by intense pressure or even a malicious person.
All of the strategies above work great on people as well.
Tip #7: Make it really obvious that you are going to quit
There is nothing a manager respects more than an unhappy employee who will quit at a moment’s notice. If you do plan to make a move, which is ideally sooner than later, do not be discreet about it. The more word gets out, the cooler you look.
In the event that your manager finds out, he/she will be intimidated and give you an immediate raise, followed by a promotion.
Managers also love hearing that other sites do things better than them. If you are originally from another site, be sure your manager knows that this one is worse. Do not offer helpful, constructive criticism on how this site can improve with the other site as an example; just criticize it endlessly, specifically to the people at the inferior site.
Tip #8: Seek Vengeance
Instead of trying to find ways to better yourself, keep a list of all of those who have wronged you and plot revenge on each of them. Put this list on display. If you have a whiteboard, make one column for each person on your Revenge List, and one column for how you will take each of these people down.
Use a permanent marker.
Tip #9: Everything revolves around you
Last but not least, always remember one thing: You are the most important person at your company, and your company exists for the sole purpose of benefiting you.
If you are unhappy with a company, then obviously it is your company’s fault. If your tech lead refuses to give you what you want, then your tech lead is an idiot. If you still don’t know what it is you want, then your company is lame for not having given it to you yet.
Good luck. You are definitely going to need it.
Other helpful resources: