{"componentChunkName":"component---src-templates-blog-post-js","path":"/giving-and-taking-credit/","result":{"data":{"site":{"siteMetadata":{"title":"sean goedecke"}},"markdownRemark":{"id":"44006058-f6a2-5c09-86c9-6389bc8586e9","excerpt":"Engineers often complain that visibility should be their manager’s job. In other words, they think engineers should be able to focus on the code, while their…","html":"<p>Engineers often complain that visibility should be their manager’s job. In other words, they think engineers should be able to focus on the code, while their manager figures out who’s doing well and rewards them.</p>\n<p>This attitude is an extension of the “school fantasy”: the idea that your workplace should operate by the same rules as your school or university. After all, you didn’t have to worry about “visibility” during your education. You simply did the assignments and tests you were given, and if you did well you were rewarded with a good grade.</p>\n<p>Many big tech companies encourage this attitude, because it helps them recruit smart graduates. They fashion their workplaces to look and feel like a university, even calling the physical space “campuses”. But it’s still work, not school. If you treat it like school, you are going to have a bad time.</p>\n<h3>Taking credit</h3>\n<p>The first lesson many new engineers learn is that <strong>you have to take credit for your work</strong>. If you silently jump in to help a struggling project and get it back on track, there’s no guarantee of reward. Credit will naturally flow to the project lead, not you. In fact, if this project is outside of your direct team, it’s likely you will be <em>punished</em> for it: to your manager, it will look like you’re simply doing nothing at all.</p>\n<p>Even when your manager is watching your work, credit is largely uncorrelated with how well you did. That’s because, unlike at school, <strong>you are the subject-matter expert on your own work</strong>. Software systems are so complicated that <a href=\"/you-cant-design-software-you-dont-work-on/\">only the people who work on them</a> can hope to understand them, and even that understanding is always <a href=\"/in-defense-of-not-understanding-your-codebase/\">imperfect</a>. If even experts can’t reliably <a href=\"/how-i-estimate-work/\">estimate</a> the difficulty of changes, how is your manager supposed to assess your technical performance? The answer is they aren’t. They’re simply not qualified to assess it.</p>\n<p>Instead, smart managers will find engineers on your team they trust and ask them how you’re doing. On small teams that have worked on a single codebase for a long time, this works okay, because everyone’s familiar enough to judge everyone else’s work. On large teams with a high rate of codebase churn, it goes badly, since they’re just guessing. On teams with a nasty, cutthroat culture, it sometimes goes <em>very</em> badly, since this is a good opportunity to actively sabotage the engineers who might threaten you.</p>\n<p>Experienced engineers know how to <strong>take the credit themselves</strong>. When they do something good, they tell their manager about it. They write internal posts explaining why it was technically difficult and how they solved it (the audience for these is partially those trusted engineers, and partially the managers who will see a long technical post and think “wow!” without reading it). They actively <a href=\"/point-person/\">build trust</a> with their management chain. Worrying about this stuff is the beginning of <a href=\"/playing-politics/\">playing politics</a>.</p>\n<h3>Giving credit</h3>\n<p>There’s a kind of engineer who’s learned how to take credit but hasn’t learned any other lessons yet. They’re proactive about telling people what they’ve done, and they always maintain a <a href=\"https://jvns.ca/blog/brag-documents/\">“brag doc”</a>. In particular, they love to talk about the parts they did <em>by themselves</em>, since those are least vulnerable to other people coming in to claim credit. You can tell they’re jealously guarding whatever credit they’ve managed to accumulate. The lesson this kind of engineer hasn’t learned is that <strong>you can often accumulate credit best by giving it away</strong>.</p>\n<p>To see why, consider how credit flows <em>up</em> inside a tech company. I wrote above that your manager can’t assess the quality of your technical work on their own, but instead has to rely on other engineers they trust. They’ll quietly ask those engineers “hey, was this project really that impressive?“. In fact, often there are multiple layers of this at play<sup id=\"fnref-1\"><a href=\"#fn-1\" class=\"footnote-ref\">1</a></sup>. In big companies, line managers usually don’t decide who gets promoted or who gets a raise: they make recommendations to their manager, who has their own network of trusted engineers (confusingly, sometimes these networks overlap). The point is that <strong>there is a large group of people behind the scenes who will quietly and informally judge the value of your work</strong>. </p>\n<p>Succeeding at a tech company is largely about finding ways to get these people on your side. The easiest way is to share your credit with them — and since you don’t know who exactly is in this group, you should be sharing your credit freely. When you get feedback from other engineers, publicly thank them and mention them in your internal posts about the project. Find opportunities to ask for small favors, so you have an excuse to give other people credit. As best you can, make your individual projects at least partially <em>group</em> projects.</p>\n<p>Sharing credit with others gives them a reason to support you. A shared project you’ve worked on reflects well on everybody: on you, for working well with others, on the people you’ve worked with, for the same reason, and for your manager, for fostering such a great environment of cooperation. Lots of people have good reason to talk that project up, because it’s partly their project too. On the other hand, a project you’ve jealously kept to yourself reflects well on nobody: you come across as antisocial and your peers come across as unhelpful.</p>\n<h3>Blame</h3>\n<p>Blame operates by the same rules as credit. When something goes badly wrong, managers will ask their networks “hey, who screwed up here?” The answer to this question is never simple. Even on a purely technical level, failures always involve an interaction between multiple complex systems, any one of which could conceivably have been built so as to avoid the failure. In other words, <strong>competent engineers can assign blame pretty much wherever they want</strong>.</p>\n<p>Because of this, it’s risky to have a project for which you’re clearly the only one getting credit. When something goes wrong, the network of people who will assign blame will likely be implicated in every part of the system but yours. They will be incentivized to attribute fault to the brand-new thing that they don’t understand and are not responsible for. If instead that network had been involved in your project — if they’d been in a position to share the credit — they’d be less incentivized to blame it.</p>\n<p>Of course, engineers are (mostly) not scheming viziers who make purely self-interested decisions. When asked who to blame, they usually make a good-faith effort to answer honestly. But in an area where there’s no single clear right answer, it’s human nature to be at least a little bit guided by your incentives. Nobody likes to think they’re responsible for a group failure.</p>\n<h3>Conclusion</h3>\n<p>Credit and blame are the currencies of tech companies (and often directly translate to the actual amount of currency you get to take home). For technical roles, managers assign credit and blame based on lots of quiet conversations with their trusted engineers. This can be a rude awakening for very junior engineers who are used to having their work assessed by an expert grader (or less junior engineers who haven’t yet shaken that mindset completely).</p>\n<p>Don’t expect to get credit simply by putting your head down and doing good work. You have to find some way to tell people what you’re doing and why it’s important: internal blog posts, mentioning it in 1:1s with your manager, or anything else you can think of. But don’t take self-promotion too far. It’s a bad idea to try and hoard all the credit for your projects, for two reasons.</p>\n<p>First, sharing credit with other people gives them a reason to talk positively about your project. Credit is not a zero-sum game: if you do it right, you can get other people to build up your credit for you. Second, hoarding credit sets yourself up as a lightning rod for blame. Projects where the credit is concentrated in one or two people are automatically<sup id=\"fnref-2\"><a href=\"#fn-2\" class=\"footnote-ref\">2</a></sup> blamed for complex problems, because nobody is incentivized to defend them.</p>\n<div class=\"footnotes\">\n<hr>\n<ol>\n<li id=\"fn-1\">\n<p>This is a classic example of an illegible-but-essential part of a software company. I wrote about this general phenomenon in <a href=\"/seeing-like-a-software-company/\"><em>Seeing like a software company</em></a>.</p>\n<a href=\"#fnref-1\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-2\">\n<p>Of course, if you do really screw up, you’ll be blamed no matter what. I’m talking here about complex failures where it’s non-trivial to attribute blame to a single source.</p>\n<a href=\"#fnref-2\" class=\"footnote-backref\">↩</a>\n</li>\n</ol>\n</div>","frontmatter":{"title":"Giving and taking credit in big tech companies","description":null,"date":"August 2, 2026","tags":["tech companies"]}}},"pageContext":{"slug":"/giving-and-taking-credit/","previous":{"slug":"/ai-models-need-moral-support/","title":"AI models need moral support to make discoveries"},"next":null,"preview":{"slug":"/playing-politics/","title":"What does \"playing politics\" mean for software engineers?","snippetHtml":"<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><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.<br /><a href=\"/playing-politics/\">Continue reading...</a></p>"}}},"staticQueryHashes":["1146911855","3764592887"]}