{"componentChunkName":"component---src-templates-blog-post-js","path":"/playing-politics/","result":{"data":{"site":{"siteMetadata":{"title":"sean goedecke"}},"markdownRemark":{"id":"4aa3f12b-4fb6-577c-99eb-fe27bf55a549","excerpt":"Software engineers are often told to “start playing politics”, but most engineers have no idea what that means. Their reference point for “playing politics…","html":"<p>Software engineers are <a href=\"https://old.reddit.com/r/ExperiencedDevs/comments/1urg0tk/whats_the_best_advice_youve_received_from_a/owfi7dq/\">often told</a> to “start playing politics”, but most engineers have no idea what that means.</p>\n<p>Their reference point for “playing politics” comes from fiction like Game of Thrones. Are they supposed to raise an army and depose the CEO, or poison each other at team lunch? Should they book Zoom calls with each other and plot schemes? All of that is obviously ridiculous. In terms of Game of Thrones, software engineers are not lords and ladies. We’re the soldiers and workers of the realm. So you should think about “playing politics” in the way a castle guard would, not one of the major players.</p>\n<p>The castle guard are not going around poisoning people or forming coalitions between the great powers. They are largely keeping their heads down. But in order to do that, they have to stay aware of the political currents, or they’re liable to do something catastrophically stupid: for instance, making an enemy of a powerful courtier, or arresting somebody who’s on an important mission for the king.</p>\n<p>Given that, the basic principles of playing politics are something like this:</p>\n<ul>\n<li>Be aware of who’s powerful and who’s not</li>\n<li>At all costs, avoid making powerful enemies</li>\n<li>Help powerful people as best you can</li>\n<li>Make sure they know you’re helping them (without annoying them)</li>\n</ul>\n<h3>Be aware of who’s powerful and who’s not</h3>\n<p>As a software engineer in a large company, <strong>you will not be a powerful person</strong>. Powerful people are typically in senior management: VPs, directors, and so on<sup id=\"fnref-1\"><a href=\"#fn-1\" class=\"footnote-ref\">1</a></sup>. However, not everyone in senior management is powerful. Some are killers who have the active support of the CEO, while others are confused incompetents.</p>\n<p>How do you know which is which? If someone is clearly ferociously competent, they’re always going to have <em>some</em> power, since upper management tend not to ignore useful tools. But you can’t rely on competence as your only guide. Some managers are powerful for other reasons: they’re friends with the CEO, or they have strong relationships with other groups like legal or sales, or they’re simply willing to do whatever upper management wants done.</p>\n<p>One signal is who’s leading the important projects. Read your CEO or CTO’s internal updates and pay attention to the projects that are called out by name. Organizations tend to give key tasks to trusted lieutenants. If a manager is leading an area that’s never under <a href=\"/the-spotlight/\">the spotlight</a>, they probably don’t have enough clout.</p>\n<p>Another signal is hiring. Is a manager’s team growing or shrinking? Particularly <a href=\"/good-times-are-over/\">post-ZIRP</a>, headcount is a rare and precious resource. A manager who’s able to get it is likely a powerful manager, or at least is reporting to a powerful director or VP (which often amounts to the same thing).</p>\n<h3>At all costs, avoid making powerful enemies</h3>\n<p>First, you should try not to make any enemies at all. Most software engineers who get “playing politics” wrong do it by needlessly alienating people: by being rude, unhelpful, abrasive, making non-technical people feel stupid, and so on. This post isn’t really about that. I’m assuming that you can figure out how to be a generically pleasant person on your own.</p>\n<p>However, <strong>competent software engineers will make some enemies</strong>. If you’re out there making projects happen, some people aren’t going to like the way you do it, and won’t be a fan of any compromise you offer. I wrote about this in <a href=\"/big-tech-needs-big-egos/\"><em>Big tech engineers need big egos</em></a>: the only way to avoid making enemies is to change nothing, but that’s incompatible with doing the job.</p>\n<p>Given that, be selective about <em>which</em> enemies you make. If you’re making a technical decision that’s either going to require work from team A or team B, and neither team wants to do it, you should try to pick the team with the least political cover. If you need a powerful VP’s team to do something they won’t like, try to be maximally respectful about it: get that team’s core engineers on-side if you can, or book a meeting with the powerful manager and explain the situation, or (better yet) ask the powerful manager sponsoring your project to go and talk to the other VP for you. (If you don’t have a powerful manager like this, consider abandoning your project).</p>\n<p><strong>Give way to powerful managers when at all possible.</strong> Every so often you really do have to stand your ground — if the system will truly collapse otherwise, or a major customer will have an incident, or if the technical decision really is entirely bone-headed — but almost all cases are not like this. The best advice I’ve ever gotten about playing politics came from a manager I worked with long ago<sup id=\"fnref-2\"><a href=\"#fn-2\" class=\"footnote-ref\">2</a></sup>:</p>\n<blockquote>\n<p>This is not the hill you want to die on.</p>\n</blockquote>\n<p>When I’m about to pick a fight or say something argumentative, and I’m not 100% convinced it’s necessary, I ask myself: is this the hill I want to die on? And it never is.</p>\n<p>The three rules about disagreeing with powerful people are:</p>\n<ul>\n<li>Make sure you do it in private</li>\n<li>Be polite</li>\n<li>When they overrule you, stop arguing immediately</li>\n</ul>\n<p>Disagreeing in private rarely hurts, if you follow these rules. In fact, it can help. If you can manage to disagree with a manager, get overruled, and then follow their plan without complaining, that can be the best way to gain a powerful friend. But if they think you’re going to keep griping about it, or worse still, complain to the rest of the team and foment some kind of rebellion, there’s no quicker way to make a powerful enemy.</p>\n<p>If you have powerful enemies at a company (for instance, the CTO or an influential VP doesn’t like you), <strong>quit</strong>. It’s really that bad. I have never seen this situation turn itself around, except in the very rare case where the CTO or VP is already looking for greener pastures and jumps ship. You cannot recover the situation: they have no incentive to give you the chance to change their mind, and they have almost unlimited ability to screw you on promotions, raises and layoffs.</p>\n<p>That’s why this piece of advice is second in the list. If you aren’t helpful or if your contributions are invisible, you can work on that and fix it. But if you’ve made powerful enemies, you’re done for.</p>\n<h3>Help powerful people as best you can</h3>\n<p>Just as it’s fatal to make powerful enemies, it’s very useful to make powerful friends. How can you do this? Remember you’re a palace guard, not a great lord: you make friends <strong>by doing your job</strong>. However, you can choose to do your job a little more proactively and diligently when you’re doing it for someone with political clout.</p>\n<p>One obvious application of this principle is that <strong>you should answer Slack messages from powerful people immediately</strong>. If you see an ordinary Slack question pop up while you’re doing some task, it’s okay to get to it when you get to it. In fact, it’s ideal <em>not</em> to respond to all questions immediately, so you don’t set unreasonable expectations (and so you don’t seem like you’re sitting around doing nothing). But when a VP comes in with a question, don’t make them wait: answer the question immediately. If the question requires research, send a “let me look into that right now” message, then do the research. This is the easiest way to get a reputation for being helpful<sup id=\"fnref-3\"><a href=\"#fn-3\" class=\"footnote-ref\">3</a></sup>.</p>\n<p>Another way to do this is to <strong>lean in on important projects</strong>. Suppose you do ten projects in a year. Eight of them are normal, low-priority projects, and two of them are high-profile (say, finishing some big feature before your company’s yearly conference). It’s a mistake to allocate your effort equally to all ten. I wrote about this at length in <a href=\"/doing-nothing-at-work/\"><em>Doing nothing at work</em></a>: you should be operating at 80% capacity (or less), so you can then ramp up to 120% when it really matters.</p>\n<p><strong>Pay attention to the narrative that powerful people are trying to push.</strong> Here are some potential narratives:</p>\n<ul>\n<li>We’ve had a lot of turnover and reorgs lately, but we’re all starting to pull together as a team now</li>\n<li>Isn’t it great how focused we all are on reliability work after last month’s incident?</li>\n<li>The conference this week is the most important thing, so we’re all being very careful not to break anything</li>\n<li>We’re an AI-forward team that’s looking for the best ways we can leverage LLMs into our team processes</li>\n<li>Although this project had a rocky start, we’re now all aligned on the way forward</li>\n</ul>\n<p>You don’t necessarily have to jump in and start cheerleading, but you should at least not do anything that you know is going to make the narrative look weak. For example, on that last point, it’s foolish to openly argue that the project really was fine all along. Bring it up privately, not publicly, or you risk ruining some clever piece of propaganda that the manager in question is trying to push on the rest of the organization<sup id=\"fnref-4\"><a href=\"#fn-4\" class=\"footnote-ref\">4</a></sup>.</p>\n<p>Finally, an underrated way to help powerful people is to offer them social support and information. Slack messages and planning emails might seem unimportant to you, but powerful people often live in that environment: their primary tool is writing messages like these, just like your primary tool is writing code. Reading and responding (in a supportive way) to these messages is something that most engineers don’t bother to do, but it goes a long way.</p>\n<p>Likewise, dropping a senior manager a line now and then (say, a heads-up that a particular project landed successfully, or that you got good metrics about some feature) is surprisingly helpful. Senior managers live in an information-poor environment: for them to learn something about a team’s work, that information has to bubble up through several layers of interpretation and summary. In my experience, they’re appreciative of being drip-fed the occasional piece of information, so long as you keep it brief and relatively rare.</p>\n<h3>Make sure they know you’re helping them</h3>\n<p>If you’re directly responding to a VP’s Slack messages or DMing them information, they know you’re the one doing it. But if you’re just doing your job and working hard on projects they care about, they might not notice. <strong>Being invisible is probably the most common way engineers fail at playing politics.</strong></p>\n<p>Fortunately the fix is simple: tell people what you’re doing. If you fix an important bug for a launch, write a message in that launch’s Slack channel saying “hey, I just fixed this bug”. What if you don’t like bragging? Get over it. You have to be comfortable publicly telling people what you’ve done. You should also keep a <a href=\"https://jvns.ca/blog/brag-documents/\">brag document</a> so you can repeat all of this at review time.</p>\n<p>Another, subtler way to do this is to gain the trust and respect of the powerful engineers in your area. Senior managers will always have a few trusted engineers they rely on to assess technical questions. They will ask those engineers what they think about you, and will broadly trust those answers. The good news is that if you’re competent and useful, those engineers will already value you, so you don’t have to do anything special: just be good at your job.</p>\n<h3>Technical power</h3>\n<p>Is playing politics all about sucking up to senior managers? Basically, yeah. A less cynical way to <a href=\"/shareholder-value/\">describe it</a> would be “aligning with the values of the company”. If you think your company is doing good things, you should want to do that anyway! In any case, what that comes down to is figuring out what the people in charge want, giving it to them, and making sure they see you doing it. However, there’s still some scope to get what <em>you</em> want out of the deal.</p>\n<p>I said earlier that software engineers do not wield organizational power. However, that doesn’t mean you’re powerless. Technical ability is a source of real power, if a delicate and unreliable one. The movers and shakers in tech companies are utterly dependent on technical people to implement their vision and to give them clear answers about the system.</p>\n<p>There are many subtle ways you can leverage this. One I wrote about in <a href=\"/how-to-influence-politics/\"><em>How I influence tech company politics as a staff software engineer</em></a> is to wait until important people at the company want to do something (say, improve reliability), then offer them a technical plan that does it your way. Another one is to become so useful that you’re actively in demand to lead projects, and then run the project how you want.</p>\n<p>You probably won’t be able to change the company’s grand strategy. But how that strategy is <em>implemented</em> has a lot of specific technical detail, and you can put yourself in a position to decide on those details.</p>\n<h3>Conclusion</h3>\n<p>Playing politics isn’t about plotting and scheming, and it isn’t just about being a <a href=\"https://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People\">friendly, likeable person</a> (although that helps). It’s about figuring out how your company actually operates: who makes the decisions, who gets consulted, what behavior gets rewarded, and so on. The most basic way to do that is to <strong>figure out who is powerful, get out of their way, and (if you can) help them get what they want</strong>.</p>\n<div class=\"footnotes\">\n<hr>\n<ol>\n<li id=\"fn-1\">\n<p>Obviously the exact titles depend on your company. One person I’m deliberately leaving out is your own manager. In general don’t think your relationship with your own manager counts as “playing politics”: that’s just you getting along with another human being. An exception to that is if you report directly to a powerful director or VP.</p>\n<a href=\"#fnref-1\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-2\">\n<p>Ironically, this manager struggled to take his own advice.</p>\n<a href=\"#fnref-2\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-3\">\n<p>Note that you actually have to be able to answer their question accurately in order to do this. If you’re not competent enough to be useful to powerful people, you will struggle to befriend them.</p>\n<a href=\"#fnref-3\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-4\">\n<p>For instance, maybe the CEO is convinced that the project was in bad shape because of something he heard, and the manager in question knows it’s easier to sell “yes, but we turned it around” than “no, you misunderstood, everything was always fine”. If you complicate that process, you risk the CEO thinking that the project is still bad and cancelling it.</p>\n<a href=\"#fnref-4\" class=\"footnote-backref\">↩</a>\n</li>\n</ol>\n</div>","frontmatter":{"title":"What does \"playing politics\" mean for software engineers?","description":null,"date":"July 14, 2026","tags":["tech companies","good engineers"]}}},"pageContext":{"slug":"/playing-politics/","previous":{"slug":"/in-defense-of-not-understanding-your-codebase/","title":"In defense of not understanding your codebase"},"next":null,"preview":{"slug":"/ai-makes-weak-engineers-less-harmful/","title":"AI makes weak engineers less harmful","snippetHtml":"<p>Like other kinds of puzzle-solving, software engineering ability is strongly heavy-tailed. The strongest engineers produce way more useful output than the average, and the weakest engineers often are actively net-negative: instead of moving projects along, they create problems that their colleagues have to spend time solving. That’s why many tech companies try to <a href=\"https://www.levels.fyi/companies/jane-street/salaries\">build</a> a small, ludicrously well-paid team instead of a large team of more average engineers, and why so far this seems to be a winning strategy.<br /><a href=\"/ai-makes-weak-engineers-less-harmful/\">Continue reading...</a></p>"}}},"staticQueryHashes":["1146911855","3764592887"]}