vadimkravcenko

Stand Out and Dare to Disagree

16 May 2024 ·4,963 views ·Updated 04 April 2026

2012, Thursday afternoon, sprint review. Twelve smart engineers, three product people, zero decisions. Every proposal dissolved into “yeah, that could work, too.” We left the room with another action-less Jira ticket. That was the moment I realised: trying to keep everyone happy can freeze a team solid.

I’ve slipped into that behaviour myself (well, more than once) because short-term agreeableness does help with performance reviews. Long-term, though, it turns you into background noise. Teams outgrow you, products pass you by, and the only thing that sticks is the reputation for staying quiet.

The instinct to avoid friction is human. Computers are predictable; people aren’t. Add in remote chat threads where tone is a guessing game and it’s easy to default to neutrality. Sometimes that neutrality is even ethical — data governance meetings, for instance, where speaking up can expose sensitive strategy. But when neutrality becomes a reflex rather than a choice, it costs you originality.

✅ Quiet rooms feel safe. They rarely ship the interesting work.

So, yes, I’m arguing for being willing to polarise. Not for the thrill of the argument — the internet has enough flame wars — but because clear opinions backed by experience are how you signal value. Say you believe functional programming beats OOP for concurrency. Half the room may disagree; the other half now knows exactly when to call you.

That clarity only works if the opinion is anchored in evidence. Shouting nonsense doesn’t turn you into Steve Jobs; it turns you into an all-caps comment on Hacker News.

Update 16 May, after a thoughtful Reddit thread:

Polarisation is not a KPI. The point is to cultivate informed stances that naturally diverge from the mainstream. Good leaders don’t hunt controversy; they accumulate experience until disagreement is inevitable.

The goal, in other words, is productive tension — the kind that moves a roadmap forward, not the kind that burns people out.

You can absolutely succeed without ever stirring the pot, but the ceiling is lower. Here’s where lack of conviction bites:

  1. Product scope balloons when you try to satisfy every persona. Features drift, teams fatigue, nobody loves the result.
  2. Developers who never take a side stay in the “nice to have on the project” bucket. Specialists who say, “this database choice will hurt us in two years” end up leading architecture reviews.
  3. Cultures without opinionated defaults feel inclusive at first, then stall. New hires spend weeks guessing what “good” looks like. (I’m not entirely sure this scales beyond small teams, but I’ve watched it stall a small to medium-sized organization.)

That said, some companies thrive on psychological safety and gentle consensus — think research labs where creativity needs room, or healthcare software where uptime matters more than ego. Collaboration can outperform conflict when the problem space rewards patience. Balance matters.

Greatness and controversy aren’t the same thing, but they rhyme. Linus Torvalds is famous for both code and colourful emails; database maintainers who quietly optimise Postgres extensions earn respect through depth rather than headlines. Either way, it’s the clarity of vision that sticks.

Illustration emphasizing individuality in tech, highlighting risks of pleasing everyone while encouraging developers to express strong opinions.

The upside of being specific is engagement. Kevin Kelly called it the “1,000 true fans” theory, and I still like the math. A thousand people who really care about what you do will fund a career, open doors, and argue on your behalf when you’re not in the room.

You won’t meet most of the eight-billion humans alive today. You only need the sliver whose worldview overlaps with yours. The easiest way to find them is to articulate that worldview, even if it repels others.

Example time. Vim and Emacs built tribes by being unapologetically opinionated. Then VS Code came along with a friendlier default, lowered friction, and swallowed market share without a single holy war. Both playbooks worked — one through sharp edges, one through inclusivity. The common thread is deliberate positioning, not bland “whatever you like” tooling.

Linux follows the same pattern: not for everyone, yet indispensable for those who crave control. Photoshop, Blender, Oracle — different domains, same story. Deep customisation builds loyalty even if the surrounding discourse stays polite.

XKCD-style webcomic about software development standards and polarization among developers
Develop the software how YOU see fit, with your unique opinionated view

So aim to be indispensable to a subset rather than tolerable to the crowd. Widen later if it makes strategic sense. (I could be wrong, but widening is easier than carving out focus after the fact.)

Dealing with criticism

Post anything vaguely strong online and you’ll attract both allies and drive-by snark. The skill is learning which is which.

Noise is disposable. It usually reads like: “This is stupid, you’re stupid, the world is stupid.” Useful feedback, on the other hand, repeats across sources and points at something you half-suspected might be weak.

✅ Some opinions age poorly. That’s a feature, not a bug. Let them.

Vim still can’t exit without a cheat sheet, yet it thrives. Why? Maintainers iterate without diluting the core. Same strategy works for personal viewpoints: adjust, don’t blur.

Make bold calls consciously. Accept that a portion of the room will roll their eyes. Over time you’ll spot the difference between bored hecklers and people raising real flags.

Quick loop for standing out:

  1. State the thing you actually believe.
  2. Listen for patterns in the pushback; refine accordingly.
  3. Ignore pure outrage. Life’s short.
  4. Thank the folks who share your wavelength — they’re rare.
  5. Return to 1.

Disagreement isn’t a sport to win. It’s a tool to sharpen ideas. Choose your battles, but don’t default to silence. The field already has enough anonymous devs merging anonymous PRs.

I’ll keep saying JavaScript is my least favourite language until someone shows me a counter-example that changes my mind. Maybe that someone is you. Comments are open.

So, what do you think?


Other Newsletter Issues:

Worried your codebase might be full of AI slop?

I've been reviewing code for 15 years. Let me take a look at yours and tell you honestly what's built to last and what isn't.

Learn about the AI Audit →

No-Bullshit CTO Guide

268 pages of practical advice for CTOs and tech leads. Everything I know about building teams, scaling technology, and being a good technical founder — compiled into a printable PDF.

Get the guide →

14 Comments

  1. Anonymous

    This is gold! Thanks for posting.

    1. Anonymous

      And yes, JavaScript IS the worst programming language.

    2. Anonymous

      Hey Jeff and Vadim, another dev here who despises JavaScript! Glad to be part of the “group”.

    3. Anonymous

      For me it’s Python

  2. Anonymous

    bullshit articles like that are funny…

    you know why?

    people are too meek nowadays they think things like that are something revolutionary..

    while normal humans are comfortable to disagree and have different opinions

    but now..in this modern age with ** sub-** it’s considered an act of greatness to disagree, lol

    1. Vadim (author)

      Oh I’m gonna leave your comment, just remove all the vulgar stuff. A good example of a person filled with hate.

  3. Anonymous

    here is my bold vocal perspective . it seems to me to be “that guy, for that thing” it is sufficient and necessary to be knowledgeable and logical . a mere “opinion” may be a declaration of ignorance . being controversial alone can hardly be a key to success . ask any flat Earther .
    https://mypaltrythoughts.blogspot.com/

    1. Vadim (author)

      Even being a flat earther, they became vocal thay have found their group.

      We’re not part of their circle and we don’t want to be, but they don’t want us to be as well.

      I agree with being knowledgeable and logical, but that’s not always the case, there are many groups that have their own views of the world, we just don’t care about them, and they don’t care about us.

  4. Anonymous

    Yes, agreed. Definitely want opinionated people who can share and discuss their ideas over folks who go-along-to-get-along. The key is to be able to civilly discuss the merits, and not get bothered if passions flare. Let the merits fly and the best idea wins!

  5. Anonymous

    Managers *need* opinionated developers. They put up with them. But what they *reward^ is developers who put their heads down and turn out a reliable so-many-lines of code a month forever with no interaction required. The perfect employee would live in a box. The manager would slide an assignment under the door in January, and the finished article would appear in a slot in the door on schedule in June. When layoff time comes, the ones who don’t get laid off are the easy-to-manage ones.

    As a high-performance, opinionated developer, I came up with the nifty designs, I got the patents, I got the critical roles. But I also get laid off every time there was a business downturn. Having opinions is career-limiting.

  6. Anonymous

    Thanks for your writing and sharing.

    This is refreshing, and it’s a gentle reminder to stand out, especially for people like me who suffer from Imposter syndrome.

    And Btw, I like your non-ordinary looking WP theme 🙂

  7. Anonymous

    > The intention should always be to foster a discussion, not to create unnecessary controversy.

    Discussion isn’t an end. The point should be to develop understanding. That probably involves discussion but discussion itself is pointless unless it leads to an understanding.

    I use vi, I have some passing interest in emacs, not because I think emacs will be better or that vi is superior. They are both just tools, I imagine that if I were to spend the time learning the emacs way I would learn a new strategy.

    1. Vadim (author)

      You are right yes, but discussion leads to understanding and to some conclusion in the end.

  8. Anonymous

    Well-articulated article.

    After 15 years of experience, I’ve found that having a detailed “brag document” (as described by Julia Evans) is incredibly useful for showcasing your value during discussions.

    Without such a document, communicating with non-technical managers can be challenging. In these situations, the “yes-man” approach often wins, typically from less experienced software engineers who don’t want to or don’t bother to learn the nuances and details of technology. Because of that, they often don’t have any strong opinions.

Cancel