Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
158553 stories
·
33 followers

Giving and taking credit in big tech companies

1 Share

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.

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.

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.

Taking credit

The first lesson many new engineers learn is that you have to take credit for your work. 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 punished for it: to your manager, it will look like you’re simply doing nothing at all.

Even when your manager is watching your work, credit is largely uncorrelated with how well you did. That’s because, unlike at school, you are the subject-matter expert on your own work. Software systems are so complicated that only the people who work on them can hope to understand them, and even that understanding is always imperfect. If even experts can’t reliably estimate 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.

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 very badly, since this is a good opportunity to actively sabotage the engineers who might threaten you.

Experienced engineers know how to take the credit themselves. 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 build trust with their management chain. Worrying about this stuff is the beginning of playing politics.

Giving credit

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 “brag doc”. In particular, they love to talk about the parts they did by themselves, 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 you can often accumulate credit best by giving it away.

To see why, consider how credit flows up 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 play1. 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 there is a large group of people behind the scenes who will quietly and informally judge the value of your work.

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 group projects.

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.

Blame

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, competent engineers can assign blame pretty much wherever they want.

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.

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.

Conclusion

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).

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.

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 automatically2 blamed for complex problems, because nobody is incentivized to defend them.


  1. This is a classic example of an illegible-but-essential part of a software company. I wrote about this general phenomenon in Seeing like a software company.

  2. 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.

Read the whole story
alvinashcraft
23 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Run DeepSeek V4 Flash locally or in the cloud (US-hosted)

1 Share
DeepSeek V4 Flash is now available locally and in LM Studio Bionic, hosted on US-based servers with Zero Data Retention by default.
Read the whole story
alvinashcraft
45 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Android Weekly Issue #738

1 Share
Articles & Tutorials
Sponsored
We reach out to more than 80k Android developers around the world, every week, through our email newsletter and social media channels. Advertise your Android development related service or product!
alt
Jaewoong Eum explains how HotSwan 2.0 hot reloads Compose Multiplatform apps on Android and desktop simultaneously.
Gabor Berenyi examines three KMP architectural seams for platform interfaces, hardware sensors, and shared Compose UI.
Gabor Berenyi explains why on-device AI routing needs type-enforced policies, not passable modes, in a KMP chess app.
Yassine Beldi contrasts KMP's native compilation model with React Native's JS bridge, using a battery-level code example.
KMP Bits walks through wiring Paging 3 into commonMain for Compose Multiplatform, including load state and refresh gotchas.
Andrei Shikov and Jonathan Starup explain how R8 optimizes AtomicFieldUpdater calls, speeding up Kotlin coroutines up to 2x.
Joe Birch walks through implementing a Firebase sign-up API call in a KMP authentication repository using Ktor.
John O'Reilly demonstrates adding a Koog AI assistant with structured output to a Compose Multiplatform app.
Daniel Bertoldi walks through diagnosing a Compose Multiplatform memory leak using heap dumps and Eclipse MAT.
Libraries & Code
A Gradle plugin that enforces explicit dependency direction between architectural layers in multi-project builds.
A Kotlin library that awaits multiple Deferreds into typed tuples of 2 to 36 elements.
News
Google celebrates five years of Jetpack Compose, recapping its origins, adoption growth, and shift to Compose-first UI development.
alt
JetBrains open-sources KotlinLLM, a research prototype letting Kotlin/JVM code delegate runtime logic to LLM-generated code.
JetBrains sponsors a Kotlin Multiplatform award at RevenueCat's Shipaton 2026 hackathon, offering a $30,000 prize pool.
Google Play expands its Age Signals API globally, letting parents share children's age ranges for tailored in-app safety.
Videos & Podcasts
Simon Vergauwen demonstrates opinionated patterns and trade-offs for building services with Ktor.
alt
Sam Gammon demonstrates building a Kotlin command-line tool with Elide, packaged as a Native Image container.
Philipp Lackner shares behavioral interview tips for landing your next Android developer role.
Yuri Geronimus shows how Kotlin's type system prevents costly reliability failures in payment systems.
Android Developers celebrates Jetpack Compose's 5th anniversary, looking back at its journey from prototype to industry standard.
Philipp Lackner explains why he's moved away from Compose Multiplatform for making Kotlin Multiplatform apps feel native.
Sinan Kozak demonstrates phased Compose rendering to eliminate frozen frames in feature-rich UIs.
Android Developers shares the origin story of Jetpack Compose, from unbundling the UI toolkit to adopting Kotlin's declarative approach.
Aurimas Liutikas walks through diagnosing race conditions and flaky, non-deterministic build and tooling failures.
Gabriele Pappalardo explains how hot-reload was brought to Kotlin/Native on iOS without a custom VM.
Salomon Brys shows how Jetpack Compose can render presentations, social images, and printable PDFs beyond app screens.
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

This game made $350,000 in 24 hours by following the PERFECT plan, Godot beats Unity!

1 Share

Hello and Welcome, I’m your Code Monkey!

August is here! Feels like only yesterday 2026 started and now it's already on the back half, are you on track for your 2026 goals? For me, last year I decided that this year was going to be the year I would finally publish Total World Liberation... and... yeah... it's hard to stick to deadlines when there's so many projects competing for the same 24 hours heh.

One of my goals for this month is to livestream more, I've long wanted to have a sort of schedule, something like twice per week, and this month that's going to be a focus of mine. It's a nice format to discuss various topics, I did one on Thursday where we talked about "Did AI Slop ruin Next Fest?" and "Is the Incremental/Simulator genre oversaturated?" and also did a bunch of Steam page reviews from viewers, it was fun. I'll also be cutting those livestreams into standalone videos for my second channel Code Monkey Decompiled.

  • Game Dev: Perfectly Executed Plan ; Godot overtakes Unity

  • Fun: Paralives Ugly babies



Game Dev

Following the perfect plan made $350,000 in 24 hours!

I love seeing indies succeed, and here we have a post from a developer that succeeded massively earning $361,657 in gross revenue in just 24 hours, and importantly how they achieved that by following the PERFECT indie game plan.

This really is basically the advice that I (and other pro devs) give being followed 100%! The game is Sir, We Have an Orc Problem which is an Incremental Tower Defense game with a massive scale.

The whole article is excellent and I really recommend you read it, but here are my main super important takeaways on everything they did right:

  • Tech Exploration into Game: Experimented with technology, then realized they could make a game out of it.

  • Solid 80%, unique 20%: Started from a solid base, another game that was an incremental tower defense game, and they added a 20% twist by using the previous technology which allowed them to boost the unit count by 100x.

  • Validated their Idea: They made some shorts/reels/TikToks to test the idea even without any visuals, and instantly found success with 100k views per video and people begging them for a Steam page. This was a VERY STRONG signal that they should pursue this idea.

  • Public Steam page: As soon as they published a Steam page they instantly got 1000 wishlists, this was another signal they had something extremely strong on their hands.

  • Daily social media posts: They kept posting every day to keep up momentum. 50-150 wishlists per day, that's a huge amount!

  • Open Playtest to solidify the gameplay: They did a playtest and since they validated the idea they had a ton of players right away, over 200 concurrents (which is huge). Since it was an open playtest some content creators picked it up and made 100k+ views videos, boosting wishlists further.

  • Published Demo a month before Next Fest: Continued momentum from playtest with a demo, already very solid thanks to the playtest and got even more players and even MORE wishlists.

  • Joined Next Fest: Went into Next Fest with an insane amount of wishlists and a really polished demo, got great results, 18k wishlists added.

  • Published 1 month after Next Fest: Launched the game on the perfect timing after Next Fest, and thanks to all how the entire plan was executed perfectly they found MASSIVE success! Making $350k in one day likely means $1-2mil first month and likely $10mil lifetime.

So yup this really is a MASTERCLASS in "How to Find Success on Steam in 2026." I definitely recommend you follow this path. Of course just following the path won't guarantee this level of insane success (this game is an outlier) but following this path of idea selection, idea validation, playtest, demo, next fest, etc; will greatly increase your odds of success.

Also a super important note at the end of the post, this is NOT the developers first game! Like I always advise you, make more games! Most developer's success are not their first game, so don't quit after you first one! Make 2-3-4 games (like I covered in this video) which will give you experience and greatly increase your odds of success!

I LOVE this story! Really I was amazed at how much they did well, they really perfectly followed the blueprint for success on Steam in 2026. Validate your ideas, start from a solid base and twist 20%, do an open playtest, then a demo (before next fest) then next fest and finally launch. This really is a textbook example of the perfect plan in 2026.


Affiliate

Low Poly Bundle 98% OFF, FREE Template

Do you enjoy Low Poly assets? There’s an excellent humble bundle with Cars, Planes, Environments, Characters, and just about anything you need to make any game, and it’s 98% OFF!

Get it HERE!

The Publisher of the Week this time is Candy Smith, publisher with a lot of casual mobile assets.

Get the FREE Spot the Differences: Game Toolkit which is a complete mini-game of spot the differences, could be a fun mini-game within your main game.

Get it HERE and use coupon CANDYSMITH2026 at checkout to get it for FREE!


Game Dev

Godot finally overtakes Unity!

The GMTK Game Jam is the biggest Jam of the year, over 10k games were made in just a few days!

This year the theme was "Count Down", and by looking at the jam page it seems that (as usual) people interpreted that theme in so many unique ways. The results are out, except for Mark's Favorites which will be coming out when his video is done.

One interesting stat from this game jam is how this was the very first time that Godot overtook Unity! In total Godot was used in 47% of games (4910) while Unity was used in 34% of games (3602). This is a trend that has been pretty constant over the past few years, and now finally Godot has taken over.

Does this mean anything? I'm always of the belief that more competition is just flat out good for all developers. We all win when Unity has to compete with Godot or Unreal, so I see this as a very positive thing for Unity devs. I hope Godot keeps growing and basically keeps Unity on its toes.

I covered this topic in a recent Livestream and I was asked if I was switching to Godot (just like I'm always asked when I mention it at all) and my answer is no, I'm not quitting Unity for Godot even if Godot is definitely improving year by year.

For me the choice of engine is a simple one: Can I build every game I can imagine in my engine of choice? If the answer is yes (which right now with Unity is yes) then I will just keep using the engine I'm already using. If one day I come across some game idea that I really want to build but simply cannot build in my current engine, that's what will get me to move over to something else. Similar to how I only quit Flash when I wanted to make PC games and Flash was not capable of doing that.

I love seeing the Jam recap video every year, seeing Mark's picks (with his signature awesome editing style that always makes me jealous) and seeing all the creativity on display is always impressive. I'm guessing he's currently working on this years video, I'm looking forward to it!



Fun

Ugly babies no more!

I'm a huge fan of stylized artstyles, personally I prefer it over something hyper realistic, usually I think it looks better.

But it can sometimes look quite off, as was the case of babies in the game Paralives. Players though they looked very weird and was actually off-putting in a game where it's meant to be cozy and chill.

So as a result they redesigned them and made them look more human. This is a great reminder of how sometimes as a developer you might be blind to something. One part of your game might look awesome to you, but very weird to your players to the point where it puts them off the game.

I laugh when I think about these game devs receiving feedback reports saying "babies are ugly!" that's definitely not something you usually see in a feedback form lol




Get Rewards by Sending the Game Dev Report to a friend!

(please don’t try to cheat the system with temp emails, it won’t work, just makes it annoying for me to validate)

Thanks for reading!

Code Monkey

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Winamp is making another comeback – this time with Deezer

1 Share
For computer users and music lovers of a certain ages, Winamp is an iconic piece of software. Now this piece of music software history is making another comeback, this time as a music streaming subscription service powered by Deezer. But before you dash off to see how it compares to Spotify and Apple Music, you should be aware that there is a bit of a wait to endure. The new Winamp Player is not expected to launch until the first half of next year. Announcing the new deal, Deezer says: “Scheduled for release in H1, 2027, the new Winamp Player… [Continue Reading]
Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete

#573 - 2nd August 2026

1 Share

Highlights this week include:

Finally, I was renewed as a Microsoft MVP for the 11th year. This time around for the dual categories of Azure and .NET. These two interests come together in the Rx .NET framework, which was designed ~20 years ago for a cloud native future. We've just released v7.0 and my colleague and fellow MVP Ian Griffiths has just published a ~25 minute talk - Rx.NET v7.0 Released - and it could save you 95MB! - Rx.NET 7.0 reduces application deployment size by up to 95 MB through separated UI framework support in dedicated NuGet packages for .NET 8+, fixes breaking changes, and maintains binary compatibility.

Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories