A few years ago, I built a mechanical keyboard from scratch. I didn’t know it then, but it would become one of my canon events. In hindsight, I can trace a lot of what I’ve achieved since to that single decision. But let’s not get ahead of ourselves.
After weeks of soldering, debugging, and flashing custom firmware, I finally brought the keyboard to work.
It wasn’t just pretty keycaps, it was a split, ortholinear, wireless, tented keyboard with custom keymaps and layered shortcuts. Naturally, people noticed.
It sparked a lot of conversations: ergonomics, design, human-computer interaction... and the one that inspired this article, coding.
"Will making my own keyboard make me a better coder?"
A good friend of mine sat next to me and asked me that question.
He meant it sincerely. And I wanted to give him a real answer.
So I said: No. It won’t.
At the time, I was thinking a lot about a pattern I noticed, specially on new devs. Side quests — those appealing distractions that look like progress but keep you from the main mission.
Learning a shiny new language, reorganizing your setup, building a custom keyboard... all of it feels productive, but it’s not a substitute for writing real code.
That’s why I answered the way I did. And I still stand by it.
The best way to improve as a coder is to write code.
But here’s the twist: building that keyboard did make me a better coder.
Let me explain.
Hard is just “Easy” you haven’t met yet
I could’ve built that keyboard much earlier. But I didn’t — because I was scared.
I didn’t know how to solder. I’d never programmed a microcontroller. And the parts were expensive, especially during the pandemic. I was terrified of messing it all up.
Even after I had everything, I kept stalling. Until one day, I decided to just try.
I heated the iron and started soldering. The joints weren’t pretty, but they held. Then came the firmware — USB protocol, bootloaders, custom layers, and a whole framework I didn’t understand.
At first, it was complete gibberish.
But after enough trial (and mostly error), I got a working v1. It wasn’t perfect, but it worked—and gave me something to build on.
Now, looking back, those two “scary” things — soldering and firmware — were way easier than I had imagined. But I only found that out because I started.
Hard things shrink once you’re up close.
That experience also taught me something crucial: Everything is within reach if you’re willing to read the documentation.
Seriously. If there’s a guide, and you take the time to actually read it, most “impossible” problems turn into manageable steps.
Beyond the keyboard
What I didn’t expect was what came after.
Building that keyboard gave me something I hadn’t felt in a long time: confidence.
Now I was the guy who could design and build custom keyboards — the kind who writes firmware, that obscure, factory-set code most people never touch.
Here I am, taking an off-the-shelf keyboard and hacking it into exactly what I want:
That shift nudged me into territories I used to avoid: bare-metal programming, automation, drivers, even kernel work. Things I once labeled “too hard” started to feel within reach.
Soon enough, I was shipping things in domains I used to fear.
That single project dealt a fatal blow to my imposter syndrome.
A lot of devs fall into the same trap I was in. They stay inside the React + Tailwind safe zone—not because they lack ability, but because they’re scared.
Scared of messing up. Of looking dumb. Of ambiguity.
So they aim low. And they hit.
Then they get anxious because AI is coming for their jobs.
Don’t be the dev who thinks something’s impossible just because it’s not on StackOverflow.
You’re not a goldfish. Slow down and pay attention.
Spend the extra 30 seconds reading what’s in front of you. It’s probably telling you exactly what to do.
Documentation is your best friend. (And if it’s not? Write it better for the next person.)
Be rough around the edges
So what’s the fix?
Let’s talk numbers.
If you improve by just 1% a day, you don’t get 1% better after a year.
You get 37 times better.
(1.01^365 ≈ 37.78)
But if you do the opposite, if you freeze or keep waiting for “perfect”, you don’t just stay the same.
You decay.
(0.99^365 ≈ 0.03 → that’s 97% worse.)
Growth compounds. So does avoidance.
And here’s the kicker: that 1% improvement? It usually looks like struggling.
You have to be willing to be rough around the edges.
To fumble. To feel dumb. To not know what you’re doing—for now.
That’s the cost of entry.
But if you stick with it, something happens:
Things start making sense. The fog clears. The hard stuff softens.
Eventually, you’re high-fiving the thing that once scared you.
And that’s not just for code and keyboards.
That’s for learning guitar. Getting through calculus. Public speaking. Fixing your motorcycle. Starting your first job.
If you can picture yourself on the other side, even just a glimpse, hold on to that.
Because if you don’t see it before you see it... you might never see it.
Now go ahead and start.