1. Project structure and package based design was the hardest to wrap my head around
2. My stubborn-est mistake is not closing that net.conn. As a side note, I had vast problems(mistakes) jumping to concurrency right from the start. Had huge memory leaks and data races, simply because I was guess-coding. The godoc and gospec are so straightforward that I didn't have any excuse, other that not going through it.
3 Well nil pointer dereference of course. All those facepalms