Yes, I can write a hashtable implementation in an afternoon, but it's going to have bugs that I'll spend the next year fixing, and still not achieve the performance of the pre-built version.
All that work of finding existing solutions and learning how to use them? That's part of the job.
Find a bug in the dependency? Submit a patch.
Worried about the dependency changing? Lock the version.
Too many external repos to retrieve those dependencies? Use a local cache.
Don't reinvent the wheel.