谷歌 technical solution engineer 上门

楼主这周去面了google technical solution engineer 的onsite,一共三轮,一面是manager,基本上都是bq,二面是一道 troubleshooting, 三面是考一些 network,linux,database的基础知识

二面的troubleshooting情景:

如果你自己host一个网站,而且你只有一个server, 你在使用第三方的mail server来给客户发送email,有一天客户说它收到了duplicate emails,而且在我自己的server log里面显示,第一条email发送失败,有一个error message: timeout after 30s 第二条email发送成功。问有什么原因造成这样的情况?

由于我对这种问题毫无经验。。我花了好长时间想出一个原因: 可能是我自己server没有收到mail server的ack,但mail server还是把email发送过去了。

然后面试官问有什么解决办法: 我只想到了延长我server的time out时间。。。然后说了 drawbacks比如还是无法保证一定会避免这个情况。然后面试官说有一种方法可以完全避免这个情况,我没答上来。。。当时我脑子发热比较严重。是不是可以使用 tcp_tw_reuse的设置,并且激活tcp_timestamps。根据时间戳的不一样,进行timewait的复用,感觉可行。或者 the answer is make sure your server and the mail server have the same timeout limit.

三面:

  • 刚开始问了几个bq问题

  • 然后写了一道shell script,题目本身不难,就是如何在csv file列出某一column,楼主就直接用了 cut -d',' -f1 , 然后问了一点follow up,但是因为好久没写过shell加上上一轮面试消耗了好多脑力,shell的一些syntax细节我都没意识 到 (跪)

  • 如何test tcp的connection

  • 如何test dns的connection

  • 用udp 还是 tcp去做live video streaming

  • 最后问了一点databse query