https://levelup.gitconnected.com/10-essential-principles-every-lead-software-developer-should-master-9840d794e509