https://thehosk.medium.com/developers-should-avoid-being-the-sucker-whilst-creating-software-c1170d72ddd9