How does the Go runtime process a million I/O-bound requests (e.g., in a proxying/API gateway service)?
SRE / Platform Engineer
What is your favorite programming language and how would you rate yourself in Go on a scale of 1 to 10?
What is the difference between virtual memory (VIRT) and resident memory (RES) in top, and what is shared memory (SHR)?
What factors affect latency in such a request processing system?
Tell me about yourself: what do you like to do, what do you want to do, what are you proud of, and why are you applying?
What is DHCP and how does a device obtain its IP address and DNS server configuration?
How do you find out how many OS threads your Go service is using on Linux?
How do you find a file and search for a substring within it using Linux command line?
What was the goal of rewriting C++ services to Go at [company]? What specific problems were being solved?
What is the essence of goroutines and how do they work?
What happens from the moment you type a URL in a browser to receiving the response? Explain the full process as deeply as possible.
What are standard input/output streams in Linux (stdin, stdout, stderr) and how can you redirect or suppress them?
How do you troubleshoot a running service on a Linux production server? How do you find your process and understand what's happening?
For what types of requests do goroutines provide an advantage over OS threads, and for what types are OS threads equally effective?