1. Never ever, ever shit talk your coworkers - if you have something to say to someone, say it to their face, or don't say it at all.
2. Do NOT contribute to the grapevine, only take from it - be a good listener and you will hear all the gossip, news and complaints.
3. Be social - take time to go out to coffee, drinks, lunch with any and every one you can. This goes double for people in other departments. Accountants are a wellspring of useful information and having them as friends is only to your benefit.
4. Know the difference between what is a priority (everything) and what is important. The latter is what makes your team/boss look good. All boats rise with the tide.
5. Don't be afraid to question a decision that you think is terrible BUT make it a question, and have facts and data to back it up...
6. Your only as good as your last success. Your own failures can be successes, if you screw something up OWN it and FIX IT.
7. Watch out for people who put politics before their own job. If you HAVE to interact with these types of people getting everything in writing is to your benefit. If your given verbal instructions then follow up with an email that documents the item/issue/instruction - Lines like "I'll get started right away on XXX as soon as ... be creative, theres always a bottleneck, or roadblock you can call out or as for a link to.
Be valuable to your team. Make everyone's life a little easier.
Try to sneak into an irreplaceable position, where you can ask for whatever salary you want. Tech is full of these opportunities. As a junior, you are often given unsexy, boring stuff that nobody wants to handle. That's a good place to get lots of leverage.
Be friends with everyone, especially other departments further away. Social ties are a mesh, and the more mutual friends you have with, say, a boss, the higher everyone's opinion of you. If three of someone's friends like you, chances are they'll think well of you too.
Learn to listen well. Listening is something that needs to be learned. This is the easiest way to make friends. It also unlocks most leverage. You'll learn surprising things. Like a subordinate might care more about being in the same department as a cute intern rather than being promoted and getting more pay.
My core rule when dealing with politics is just to know yourself and know your counterparts. Everything else is easy once you do.
How do I get leverage out of "unsexy, boring stuff"? Here are some scenarios that I'd like advice on:
- In an analytics role, the junior is assigned the data cleaning work. It's boring, it requires a lot of dirty, ungeneralizable work. And they don't get to do the modeling work and delivering insights that appear more impressive.
- A junior SWE is assigned to maintain some in-house software. They squash bugs, but don't get to design new products or present on new launches.
"Everyone agrees" that data cleaning / maintenance is important, but there's hardly visible credit for this kind of work. What's the best way to gain leverage here?
> [data cleaning is] boring, it requires a lot of dirty, ungeneralizable work.
How sure are you that it really is ungeneralizable? Just because it appears that way at first glance doesn't mean you won't find opportunities for automation once you understand the domain and the typical dirt in the data better than anyone else (note: 'dirt' can often be modelled).
And well, once you're the developer and maintainer of the data-cleaning system that has become the company's competitive advantage...
Similarly, bug-squashing is often an opportunity to really understand some important but unglamorous system (eg. payments, or authentication), as managers will notice that bugs in system X are fixed much faster and more thoroughly when assigned to jr. developer Y, and this often leads to becoming the go-to person for implementing new features in that system.
Older systems tend to have a lot of business logic built into them. Use the time you spend going through them to learn the business domain. Learning to understand why you write code is just as valuable as know how to write it.
Tackle boring or unsexy tasks with the same creativity you would bring to other tasks. Share your approach with team members. They may have similar problems and may appreciate your solutions.
Leverage the data pal.
You are inside a company, access every day. Explore the limits of your access, how far can you get. What data can you access? Can you use that data to get some leverage?
Surely, based on the data you are cleaning you can speculate what it is being used for. Can you shoot some questions about it to seniors and offer them some advise to improve?
Also if you can't leave, you don't have much leverage. So make sure your "irreplaceable" skills are thought for elsewhere. eg. don't become expert in some in-house tools, unless it's what your company is directly selling.
That is a danger, but you can still get substantial raises.
You can expand your territory. Like you can go from being the only guy who knows how to modify the installer, to being the person in charge of builds, CI, backups. Then heading a small department on this.
The question worth asking is - how do you excel... at life...
That is the only career question worth asking.
You've placed constraints on it, such as 'new programmer', 'play by the rules', 'earn raises'.
How do you know excelling at life means playing by the rules? How do you know more money means a better life? How do you know you don't want to switch companies?
You don't. The way to find out is to just live your life, and not lose sight of what matters - excelling, at life, by rules YOU set. And they won't be the same rules, they'll change as you grow.
How do you set rules by the way? By following your gut, heart, and intuition, and sometimes what other people say. You so far have it backwards, where what others have said has left no space for following your own instincts, hence the question you're asking.
The biggest regret you can have - is living out somebody else's ideas and life, even if you 'excel'.
A good manager will make it so that you don't have to worry about politics. They will be able to inform you what projects are widely agreed to be impactful. Then you can focus on performing well technically on those projects and get promoted.
Your manager should be able to helpfully answer direct questions like, "What do I have to do to get promoted?" If your manager doesn't have a good answer, and you care about getting promoted, you should find a new manager.
Once you become more experienced at the company, you may not need your manager's help at this as much. You'll develop connections within the company and be able to gather widespread support for your projects directly.
Office politics change a lot depending on the company.
In general, do not work on what you think it is important. Work on what the management think it is important. If you don't understand why do they think something it is important, ask them.
It is okay to disagree with them, but try to frame it as a proposal and see how much they follow along with your idea. If they don't like it, then do not pursue that project. The job of upper-management is to set priorities.
You can't totally ignore politics. Those who don't do politics will still have politics done to them.
But don't try to "win" via politics. First, it's not your skill set, and it is other peoples' skill set. If you go head to head in politics with them, they'll wipe the floor with you.
Second, who do you want to be? A developer? Or a politician? I absolutely do not want to be a politician.
So do as little politics as possible. And when you do it, do it for defensive purposes - to keep yourself from being the victim of politics.
At my old company the key to advancing was: suck at you job, make big failing projects addressing the wrong issues and lead to bigger longer projects addressing the same issue until you get an entire department assigned to you adressig that issue. Also piss off the people in other departments work against the best intention of the company get in fights with department heads and experts and steal the work and ideas of others.
Not surprisingly a lot of talent fled that company, me included.
You'll have to build reputation, which takes time.
Be there for your team and your boss, so you can expect the same in return.
Be blunt and don't sugar coat it with everyone, so as your time/reputation grows inside the company, people will know about you... essentially you would want your reputation to precedes you... this will help you avoid a lot of politics and BS...
Hey OP, thanks for asking this question. I read Ask HN regularly and I thought reading some of these responses was beneficial. Now I just need to figure out how to internalize the behaviors. :-)
1. Think Big. I have seen many people who aimed higher from the beginning and did manage their way up (e.g., becoming a VP in just ten years, that too in a large company).
2. People skills is a must for the above. You should be thinking of people or organizational challenges all the time, or you'll miss the mindset to rise significantly up.
3. Many people complain about their team leads, managers or senior leaders. This usually happens because these senior are working at a higher level of responsibility and ambiguity than you are. You should rather be thinking what would you have done if you were in their position. Understand the challenges they have, by directly asking if needed. This will not only help develop your relationship with them, but also position you to develop the skills needed faster, without yet being in the position of responsibility that they are in!
4. There is a lot of entropy in any team/organization, and unfortunately also a lot of people who are increasing it. Be the one who reduces the risks and brings order to the chaos, whose judgment can be trusted. Keep in mind for this that the real challenges are often not on technology side (in other words, if you think technology challenges are more critical, you are perhaps missing the big picture).
5. Try to become irreplaceable for the team/company in your project and beyond. In my experience, this will not come in your way as [6] suggests. You must however not get limited to the tools and technologies specific to the company, or else your market value will suffer within a few years.
6. Never say (or even feel) anything bad about anyone ever, keeping Hanlon's razor in mind [1]. But then, how do you deal with the stupidity? Well, <b>their stupidity is your opportunity</b>. (I created this out of Jeff Bezos' famous quote, "Your margin is my opportunity." [4])
7. Do not let yourself be masked from political issues around. A good manager would aim to mask you [5], but that can curb your growth since you won't develop the skills needed to master and survive corporate politics while being masked.
8. There are books available today that teach you corporate politics [2-3], showing how easy it is for anyone to do it, and how difficult it is to counter. Reading these books should be a required reading for anyone aiming to go significantly high. And trust me, it's better to learn this from books or from other people's experience than learning this stuff the hard way. (The latter would be painful for one, and second, you may never actually learn.) I have read [2] and felt that I should have read it earlier.
9. Ask questions whenever you do not understand something or if your own thoughts do not align with the decisions being made. Of course, be polite in this (e.g., "I was wondering if option X also has been considered" instead of "why are we not going for option X"). People around would be happy to explain to you while also developing trust in you, and often would take the suggestion if it will actually reduce their mental burden. The sooner the better in asking questions.
1. Never ever, ever shit talk your coworkers - if you have something to say to someone, say it to their face, or don't say it at all.
2. Do NOT contribute to the grapevine, only take from it - be a good listener and you will hear all the gossip, news and complaints.
3. Be social - take time to go out to coffee, drinks, lunch with any and every one you can. This goes double for people in other departments. Accountants are a wellspring of useful information and having them as friends is only to your benefit.
4. Know the difference between what is a priority (everything) and what is important. The latter is what makes your team/boss look good. All boats rise with the tide.
5. Don't be afraid to question a decision that you think is terrible BUT make it a question, and have facts and data to back it up...
6. Your only as good as your last success. Your own failures can be successes, if you screw something up OWN it and FIX IT.
7. Watch out for people who put politics before their own job. If you HAVE to interact with these types of people getting everything in writing is to your benefit. If your given verbal instructions then follow up with an email that documents the item/issue/instruction - Lines like "I'll get started right away on XXX as soon as ... be creative, theres always a bottleneck, or roadblock you can call out or as for a link to.