There are ideas floating around that make it appealing to do just that. For example, the commons library might be considered &quot;battle-tested,&quot; and who really knows what could happen with your own custom byte-buffer-to-string function? Maybe you missed something? Maybe there is some &quot;best practice&quot; that you didn&#x27;t follow? Maybe the commons library is optimized? And writing your own thing doesn&#x27;t add business value. Developer time is more expensive than dependencies. And so on.<p>Me, I very often prefer to write things myself, in a way that can get labelled as NIH. My inclination is based on bad experiences with trying to debug external libraries. Sometimes I look at open source library code and find staggering complexity that I have no need for. Yes, maybe the library is great, but if its combinatorial size is 10,000 times the functionality that we need, then depending on its correctness becomes scary to me. And when I need to customize it, due to some requirements alteration, I will find it difficult and tedious.<p>Black-box type libraries for isolated complicated tasks like codecs and crypto I will happily use.<p>Otherwise, I&#x27;m a fan of the &quot;design patterns&quot; approach to reuse, which is all about learning from others, but without creating reusable formal abstractions in library form. So if you teach me how to write an URL router, I can then use your insights without depending on your code base, and I can adapt the idea so it fits my application perfectly.