Go reinvent the wheel
Wed Nov 19 2025
By B. Hassan
Introduction
If you’ve spent more than 15 minutes in the tech industry, you’ve probably heard the wise old proverb:
“Don’t reinvent the wheel.”
This usually implies that you shouldn’t waste time solving problems that already have solutions, and that you should instead focus on more novel ideas.
This seems logical. Software engineers like to work on the new and exciting things, and many find it pointless to compete with already established solutions. However, reality is more nuanced, and reinventing the wheel can offer a lot of overlooked benefits.
Deeper understanding
Firstly and most obviously, reinventing the wheel is the single best way to learn something. Reading documentation, RFCs, and other people’s code certainly has their benefits, but diving in and implementing something yourself is the best way to get a deeper understanding of something.
You can read the documentation all day, but if you don’t use the library/framework and dive in, then your knowledge remains shallow. It’s even better if you contribute to the the project and become a part of its development. The same goes for algorithms. You can read about and algorithm all day, but to truly understand an algorithm, you have to implement, try, and test it yourself.
For example, I read about the HyperLogLog data structure/algorithm and though it was really cool. Estimating the cardinality of a large dataset within 2% accuracy in a constant time and an efficient memory complexity, and it can be distributed across devices and merged later, what’s not to like about it! But I still had gaps in my understanding until I implemented it myself. I even wrote my own Murmur Hasher implementation. Even though it is not the most popular implementation out there, it is one of the fastest, and one of the projects I’m most proud of.
There is a reason why employers doesn’t look at how much documentation you have read, they only look at what you have built. Having built something at production shows your abilities much better than asking questions most people just memorize to pass the interview.
People usually ask, “what is the best way to get a job in software development?”. If you want to carve a career for yourself in the software development space, one of the best ways to start is by reinventing the wheel. Pick something you enjoy and want to understand deeply and reinvent the wheel. This also has the added benefit that whenever you get stuck, you can look at other solutions and see how other people solved it
Win, win, win
Reinventing the wheel is almost always a win.
If the wheel is easy to reinvent, you’ll learn something quickly and maybe build a solid project for your portfolio. If the wheel is hard to reinvent, you’ll gain a deeper appreciation for how difficult and sophisticated the existing solutions actually are.
Some of the most valuable products in tech history were a reinvention of the wheel. Google, for example, started as a reinvention of the wheel. Yahoo already has a solid and popular search engine, but Google realized that the status-quo can be improved. They realized that backlinks can be a valuable factor when ranking pages, and the rest is history.
Apple also reinvented the wheel with the iPhone. Mobile phones and touchscreens weren’t new, but Apple realized they could ditch the physical keyboard in favor of a full touch interface. One small improvement in an already established wheel created one of the most valuable products ever.
And we can’t talk about reinventing the wheel without mentioning the grand daddy of reinventing the wheel, the legendary programmer Linus Torvalds. Linus realized that operating system licenses are expensive, and so he decided to reinvent the wheel and create his own hobby operating system. Eventually it became Linux, arguably the most important piece of software ever written. Not just that, he also had a license dispute with BitKeeper, and so he decided to reinvent the wheel and write his own versioning system, eventually creating Git.
Even if your attempt at reinventing the wheel flops, you will get a much deeper appreciation for the tools you use. For example, before moving this blog to Astro, I built it using my custom static-site-generator built using Rust and Solidjs. I had a lot of fun building it, diving deep into how static-site-generators work under the hood. But I eventually realized that hosting Rust on the cloud is either challenging or expensive. I also realized how much SPAs can negatively impact SEO and load times.
Even though that project didn’t pan out, it wasn’t a complete failure. I got a very deep understanding of Solidjs and Axum. I also had a deeper appreciation for the work Astro does, and a much better understanding of why the industry is moving towards running Js on the server (even if I don’t always agree with it, I now understand the other point of view much better).
Similarly, I rolled my own authentication for the API of this site using JWTs. Software engineers often warn against rolling your own auth, and that’s usually good advice. But I really enjoy cryptography and security. I understand the algorithms, read the RFCs, and know how to secure applications properly. Despite being time consuming, rolling my own auth was a great success, still being used in production to this day.
The great framework war
Even reinventing a frontend framework, which is usually known as something stupid to reinvent, can be a win.
First, we had Angular, which stagnated due to lack of innovation. Then came React and reinvented the wheel with some improvements, and it surpassed Angular’s popularity
Even less popular frontend frameworks were not a waste. Svelte, for example, popularized the use of a compiler for a more efficient reactivity and (arguably) better syntax. Solidjs popularized signals, which are now used everywhere. Livewire, even though very simple in essence, popularized HTML over the wire which inspired a lot of modern SSR frameworks like Ruby on Rails and Phoenix (Elixir).
And despite the lesser popularity of Solidjs, Svelte, Elixir, and Ruby on Rails compared to something like React, their creators (Ryan Carniato, Rich Harris, José Valim, and DHH) had nothing to lose. In fact, they became some of the most respected developers in the ecosystem and most of them work full-time on their framework.
Fun matters
Lastly and most importantly, reinventing the wheel is a lot of fun. People get too carried away by the outcome that they forget to enjoy the little moments. They think they have to win every battle, which is simply not true.
I like to think of software development as investing. The stock market is very unpredictable, and not every investment you do will succeed. Similarly, not every project you build will succeed. But by building enough projects, you will get the necessary knowledge and maybe even a stroke of luck, and sooner or later, the win will come. And just like the stock market which sooner or later increases in value, the more you build and invest in your learning, the more you will increase in value over time.
Life is very chaotic, and we can’t always predict the future, but we can control our outlook about life. If your outlook is always about winning and reaching the destination, then you will overlook the small and enjoyable moments in your journey.
Breaking a huge project into smaller pieces and solving each piece is incredibly enjoyable. Few feelings compare to finally fixing a bug that’s plagued you for hours and watching your code run correctly. You can cherish these small moments and enjoy the journey, or you can stress yourself chasing the outcome.
Conclusion
Reinventing the wheel isn’t for everyone. Life gets busy, and many people simply don’t have the time. But for beginners who constantly ask what projects they should build, reinventing the wheel can be a fantastic place to start. It may give you the push you need to accelerate your career.
Even if you are a senior programmer, rebuilding the things you rely on can be valuable. You will either get a better understanding and appreciation of what you use on a daily basis, or you may be the next Linus Torvalds.
If you think there is an improvement to be had by reinventing the wheel, don’t let others talk you out of it. Just try and see what happens. Especially in the age of AI, it has never been easier to test your ideas and create a MVP.