An introduction to the Go Language using a test driven approach