đź‘‹ Hey, everyone, thanks for reading this issue. For everyone who joined recently: this is my highly subjective newsletter about all things surrounding software development/engineering management/CTO daily life.
Here are some updates from my life over the last two weeks:
* Got my first customer on seojuice.io. Total 45 users in trial with 1295 unique pages indexed and 1075 links generated.
* Did a resume roast on two fantastic engineers, who needed some help to stand out, but had very good experiences overall.
* Started being active on Twitter, it's kinda fun to discuss with random people different things.
* In the process of selling all my stuff and preparing to go travelling.
As always, I hope you enjoy this article. Share it with your friends, here's a link. Speak out, share your opinion with me.
As someone who’s been in the tech industry for more than 15 years, I’ve come to recognize a fundamental truth about being a software dev: the key to failure is trying to please everybody. Most of the engineers that I’ve met are risk-averse and tend to be agreeable rather than firm in their beliefs. This is good if your goal is to climb the ladder by being the yes-man to your managers.
But this is not really sustainable for long-term success and won’t make you a great developer, it will just make you a tool.
The fear of polarization is pervasive. It stems from a natural desire to be liked by everyone. This fear, however, leads many to settle for mediocrity. It allows you to avoid any form of criticism — you sacrifice uniqueness and your ability to stand out by being average. If you have no opinions, you can be whatever people expect you to be, except great.
To be great, you need to be polarizing. Just by being a developer who thinks that functional programming language is superior, you’re already polarizing all of those who think object-oriented programming is the way to go.
You will fail without polarization:
- You will fail if you develop a product that tries to appeal to too many users.
- You will fail as a software engineer if you don’t accumulate opinions of the years that make you exceptional.
- You will fail as a leader if you allow your culture to be everything at once without opinionated rules that embrace the culture that you need.
By default, being great means that there are people who consider you great. But we should not forget that it equally means there will be people who consider you wrong.
Being great means being controversial. Everyone who has ever been great was controversial. Even if we take such people as Linus Torvalds, Steve Wozniak, or Steve Jobs, there are people who will feverishly defend them and those who will feverishly deny them.
Being polarizing can alienate some, but it also has the power to engage others deeply. This is where the 1,000 true fans concept comes in — those who love you for what you do and are passionate advocates of yours. These fans are polarized, loving followers who will support your product/books/concepts/views through its ups and downs because it resonates deeply with them. They will recommend you as the expert to their friends because your views match theirs.
There are billions of people on the earth, you won’t meet most of them, but you can be vocal enough that you gather 1’000 true fans around yourself that will carry you through life — references, mentorships, gigs, expertise. You don’t need the billions of people in your life, you need the ones who resonate with you the most. And you find those who resonate by being polarizing.
Many of you, especially those new to the field, might fear stating your opinions openly. For example, I think Javascript is the worst language, period. Some of you will think, “ah, not again, Vadim knows nothing about programming, it’s the most popular language on the web”. I will also tell you that I think we should hold software developers accountable for downtime. And bam, some of you immediately closed the article.
You’re afraid of turning away all the people who think otherwise.
Yet, this is a natural part of becoming someone of value. Being polarizing is not only inevitable but also beneficial. As you become more senior, you form opinions and beliefs. Rigid ways of working that make you, and only you, efficient. For example, some developers scream, “SCRUM is the only way to develop software,” and others scream, “WATERFALL is the only way to go.” There’s a massive discussion between these groups, and neither group has come to any conclusion. However, those who discuss are already in the minority and are not afraid of voicing their opinion.
However, the alternative — people who don’t have any opinions, who no one dislikes but also no one loves — leads only to obscurity. You attract those who share your values and vision by daring to express strong, clear opinions.
Remember that your goal isn't to be someone everyone likes but someone that the right people love. It's about being “that guy, for that thing” — a highly specialized expert rather than just another developer in the crowd.
Examples
Let's look at some examples within our developer community. Consider the developers behind tools like Vim and Emacs. These text editors have passionate followings because they offer distinct, highly different experiences. They were built with specific opinions of their authors that went against the standard tooling. Their users often swear by them, defending their choice. This isn't because these tools are good, per se, but because they serve their specific, comparably small user base exceptionally well.
Another example is Linux. It stands out because it isn't for everyone. It targets users who want deep control over their computing environments. Linux has survived and thrived by polarizing the tech world into those who want customization at the expense of ease and those who prefer a more controlled, straightforward experience offered by Windows/Mac.
The key takeaway is simple: it’s better to be indispensable to a few than just another option for many. When you polarize, you stand out. You become memorable. That’s far more valuable than indifference. Aim to be the go-to person for your particular expertise or product niche. This doesn’t mean ignoring constructive criticism or shunning potential growth into broader markets, but it does mean starting with a robust and opinionated foundation.
Dealing with criticism
Every time you share something openly — you’re going to have some percentage of people who resonate with what you say, but also some people who bring criticism and backlash. This can be tough, especially when you've poured your heart into a project/idea/vision/concept or whatever. However, handling criticism well can be one of the skills that you cultivate as a software developer.
Here’s how you can do it without compromising your values.
Firstly, learn to differentiate between noise and constructive criticism. Noise can be ignored — it’s often just people venting their own frustrations and biases. Some will be angry just to be angry, especially if you go to places like Reddit or Hacker News. There are a lot of smart people there, but there are also a lot of angry people.
Constructive criticism, however, is gold. When you receive negative feedback, take a step back and assess it objectively. Ask yourself: Is there a recurring theme in the feedback? Are the issues pointed out ones that you’ve maybe overlooked? I’m not talking about changing your views at the first sign of resistance but about being responsive to genuine concerns.
Each piece of feedback that you get is a chance to refine and iterate on your ideas. Remember, the most beloved developers often dared to bring their opinions into the world, faced criticism head-on, and evolved because of it. Vim survives 30 years later, even though to this day, people don’t know how to exit it. The most viewed question on Stackoverflow is about how to exit Vim. Interesting, right?
Make bold decisions consciously. Brace yourself for backlash, but also prepare to be supported by those who share your vision. Over time, you will grow accustomed to it and learn to differentiate hate comments from authentic discussions.
Here’s a TL;DR for those that are eager to stand out:
- State your opinion, and be authentic with what you hate and love.
- Respond to criticism and refine your ideas based on genuine feedback.
- Accept the backlash and ignore the hate.
- Celebrate with those with whom your ideas resonate with.
- GOTO 1
Here's what I suggest: Embrace differing opinions. When someone challenges your idea, it's an opportunity to defend it, refine it, or even rethink it — not to dilute it.
Let’s not be the developers who faded into the background because we were too afraid to say that Javascript is bad.
I encourage you to be bold, curious, and, above all, vocal. The world needs your unique perspective, so never hesitate to express it. Even if people in the comments will tell you otherwise.
So, what do you think?
Cheers,
Vadim
Subscribe to Just Another CTO
Subscribe to the newsletter and unlock access to member-only content.