As developers, we put a lot of merit on our own technical abilities. When we chase client work or go for that new job, we obsess over emphasizing our technical skills.
"I know how to build a scalable architecture!"
"I've used React, Redux, Vue JS, Express, C++, Java, etc!"
But what if I told you...
Your skills don't matter as much as you think.
Having interviewed several developers, as well as having heard feedback from client projects I've won, trust me, skills are rarely the key deciding factor!
So if skills aren't the most important thing, what does matter?
This is going to piss people off, but it's the truth. You are working with people, not robots, and people have the right to want to work with someone they can genuinely talk to each day.
When a client or interviewer asks what you like to do on your free time, it's not a test question. Don't tell me "I stay up to date with tech trends". If you like binging a certain Netflix series, share that! It's often a great talking point.
This isn't the 90s. You need to be able to effectively communicate on a team, and this doesn't mean being able to explain your code to people. This is about taking the initiative to ask questions, contributing your own thoughts to conversations, and using your expertise to bring up potential issues that only you can foresee a developer.
Many developers claim to have this, but few do. Business oriented thinking is the ability to put your developer intuitions aside and put business priorities first. Did you want to use a Framework X but Framework Y would get the job done faster? Go with Framework Y. Does that fancy animation in your header contribute any business value? No? Then drop it.
If you're going for a junior or mid developer position, you will probably do fine without this skill, but once you start aiming for higher positions, this gets increasingly more important.
For freelance developers seeking clients, this is everything. Get good at it, because this will get you where you want to be beyond your technical skills.
Every happy client I've had and job I've gotten was due to this. Being smart and talented are fantastic traits, but it won't necessarily get you as far as you might have thought. On the other hand, showing genuine interest in the client or company, the problems they are trying to solve, as well as showing the passion you have for your own work, those are the things that get you hired.
Not surprisingly, these methods often come down to, "would I like working this guy / gal"?
Does that sound unfair to you? Then you're thinking about it wrong. We live in a world full of people, and people are social creatures whether you like it or not. The sooner you recognize that, the faster you will find success (and dare I say happiness).