Everybody loves reinventing wheels.
Lots of people here are geniuses; just ask them.
And are so much smarter than everyone else. I might not be smart, but I sure am used to being on change control boards.
Here is an engineering decision making algorithm. It's not mine: just common in engineering professions.
- Are you going to SELL the (X) ?
Is (X) part of your core business ?
Because we do software, we have the option of
Can you find an open source (X) that does the job ?
If its open source, you never need to upgrade just because the vendor tells you to.
Use an open source library that is good enough. ( remember, worse is better)
If there isn't one, write the code. Budget to have to maintain it forever. After all, it's unique. But that's okay, because you're a genius.
This algorithm does suggest never using anything that isn't open source. Not bias, it is merely an exercise in engineering configuration management. Can you spell engineering configuration management ? Our next phrase will be professional liability. A sentence using that word: Aren't we lucky that software developers have no professional indemnity.
If the customer is not interested in long term support ( less than a couple of years or so) then grab whatever vendor provided crud you can, take their money.
(Then in two years take it again.)
Learn by doing. Try doing engineering. Coding is scratching an itch. Don't scratch yourself in public.