Hands-On Software Engineering with Golang : Move Beyond Basic Programming to Design and Build Reliable Software with Clean Code