- 
Installation: 1- Explain how Go path works? 2- What are the benefits of Go Module (reference its commands)?
 - 
Concurrency: 1- Explain Concurrency & when to use it? 2- How would you allow communication between goroutines in Go? 3- How would you manage their access to resources?
 
- why do you use Go (my answer was as simple as "why i shouldn't", and some extra points Grimacing face)
 - which libraries I use for development (almost always using the std library
 - error handling
 - testing (testing techniques, benchmark testing)
 - logging (whether using in app logging or sending logs to external service)
 - concurrency patterns.
 - monitoring (this is tend to be generic not specific to go)
 - internal services communications (REST, gRPC, and/or Event Bus).
 - MicroServices Architectures (this tend to be a generic not specific to go), which one I use the most?
 - in case of using net/http. how to handle http methods, path parameters?
 
- 
Buffered vs Unbuffered channels
 - 
What is a go routine
 - 
Fix a Deadlock in a code snippet
 - 
Implement a map allowing concurrent access
 - 
Compare emojis represented using runes and strings (I don’t recall this very well)
 - 
How would you implement rate limiting
 - 
Why are go routines so cheap when compared to normal threads?
 - 
What’s is the difference between concurrency and parallelism?
 - 
How Go’s garbage collection works?
 
The one interesting thing I can think of is that I was once asked about how to use channels as a work control mechanism (like for/select, or separately the quitChan pattern)
- 
What is the difference between goroutine and os thread?
 - 
How Go GC works?
 - 
What is goroutines
 - 
How goroutines works
 - 
What is channel and how it works
 - 
What is the hardest about Go in your opinion
 - 
Difference between Dep and GoMod
 - 
Why does an empty interface can be used for all types ?
 - 
Why is go’s memory footprint considerably less than Java’s ?
 - 
Best practises when dealing with goroutines ?
 - 
Go’s GC.