路由技术面试

2021-03-12 09:38:42

面试官不禁注意到她的名字Nephele.it Sounds希腊语。但他没有问,不想用有前途的候选人来摆脱错误的脚。他之后提出了一个心理票据来查找名称。

“我认为自己是一个全堆栈的工程师。在发动机室里有一些需要固定的东西,或者你需要我在桥上,我会在那里。”

他很高兴听到。如果任何事情,他们都需要灵活的人,他不仅仅在筒仓工作。

尽管她已经提交了一个强有力的应用程序,但他希望她在采访中做一些编码。在所有人中,他想确保她是一个很好的团队球员,有人依靠你需要所有的手在甲板上。在他们的隐身模式启动时,他们不需要关闭。

但他也是一个非常非常体贴的人,并知道许多人害怕白板采访。以前的工作,他被贬低了让某人反转二元树。当他打电话时,他想确定,他想确定将任何人再次放在那样。

所以他改变了策略。他预先选中了经典的练习,并事先告诉候选人,她可以带她自己的笔记本电脑来解决一个简单的编码问题,并且她可以使用任何技术来解决它。

“当然,”她热切地说:“因为赫尔马斯斯曼没有轮子是什么?”

她的脸恢复了它的热情。他放出了一只勉强的声音叹息,松了一口气,他躲避那里的子弹,并制作了另一个心理介绍,招聘女性很难;他应该更谨慎地踩踏。

她没有立即回应,思考这个问题,显然不知道他在谈论的内容。在令人患有年龄的感觉中,她回答说,非常仔细地选择她的话语,“与哈布里斯有关吗?因为不幸的是,这不是我的专业领域。“

“不,完全没有,”他说,假装知道她的意思。“fizzbuzz是一个简单的练习。基于孩子的游戏。”

“目标是打印这些数字,但如果该数字被三个,打印嘶嘶声可分开,而且如果该数字已被五个,则打印嗡嗡声。”

面试官感觉到这不会井井头。她的凭证甚至是真的吗?在他能进一步忍受这个之前,她说起来。

“如果数量已被十五次分开,则有两种可能的选择。其中一个是首选?”

“听起来很简单,这只是一个解析歧义的方式。”

他不知道她刚才所说的。她声称已经研究过电脑科学,但也许这只是她的未成年人,她实际上是在数学中主修。公司不需要思想家,他们需要蛀虫。事实上,他们需要仔细检查制作问题但是,在这家公司,工程师为真人建立了真正的产品。

在这一点上,他非常肯定尼尔基不会是一种文化融合。但他不想粗鲁,所以他决定继续采访。

“我相信你告诉我,我可以使用任何技术来解决这个问题吗?”

现在他彻底困惑,不知道该说些什么。这并没有经常发生。他总是知道该说些什么。他永远不会在灌木丛中击败,总是说出了什么,无论后果都要说什么。

“这是真的,但与之有关的事情 - ”

他无法完成他的判决。他的候选人就像他困惑一样热情。

他的困惑变成了别的东西。他现在认为他明白她的意思。她再次开玩笑。她只是想在Kubernetes中部署她的FizzBu​​zz实施。

“缩放非常重要!我们还将我们的代码集装在一起并在我们的Kubernetes Cluster.we're云本地部署它!” 他忽略了她的言论和继续:“通常,我们在Go中实施我们的后端。你也选择去解决这个问题?” “我已经告诉你:我要使用yaml。 没有代码,如果你愿意。“ 他回到了困惑,大声思考,试图处理她刚才所说的。 “但你怎么样 - 我的意思是,你需要一些逻辑,所以 - 你甚至怎么样 - ” 他的思想过程似乎并不留下深刻的印象。如果她对他感到难过,她就开始解释她的选择。 “你看,我是一个强大的信徒,原则是最小的力量。”

他点点头。他不确定他是否掌握了她的说法。他们会派遣某人有能力面谈她,但到目前为止,他的面部表情否则另有说明。

“你描述的问题 - 你相信你叫它fizzBu​​zz? - 基于自然数的模块化算术。“

“它是自动机构理论的基本结果,即任何基地B的任何数字k的分配性是常规语言。可以通过正则表达式识别出来。很有意义,坚持那些,而不是达到更高的乔姆斯基等级。“

面试官感到拖回他的电脑科学课程,在那里,一位邋screfy教授试图告诉他们旅游机器或其他东西。他感觉他的青春回到他的叛逆性。

“这一切都很好,但是谁将检查反对输入的正则表达式吗?您需要以某种方式编码。”

“你看,Kubernetes入口控制器可以进行正则表达式匹配和替代。我们只需要表达三个,五,十五岁作为正则表达的分配性。”

面试官还没有结束。inephele推断出他打算跟随他的一小部分,很奇怪,看看这将如何结果。

“所以,你将在笔记本电脑上发射kubernetes集群吗?”,他先知修辞。

Nephele正在流动,轻微吓倒她的采访者。他不敢打扰她。但是并不重要。她知道她不得不通过它来谈论他。她毕竟正在运行一艘紧的船只。

依然旋转一些本地节点,听到她的13英寸笔记本电脑,她打开了VS代码并开始键入。

“由于我们需要某种HTTP服务器,我将旋转一个HttpBin映像。”

apiersion:apps / v1种类:部署元数据:名称:httpbin标签:httpbin标签:replicas:replicas:matchlabels:httpbin模板:metadata:标签:应用程序:httpbin规范:容器: - 名称:httpbin图片:kennethreitz / httpbin端口: - ContainerPort:80 --- apiersion:V1类型:服务元数据:名称:httpbin规范:选择器:应用程序:httpbin端口: - 协议:TCP端口:80 TargetPort:80

“不是......作弊吗?”他不情愿地说。“你答应没有写任何代码,但现在你正在拉到别人的别人。”

她的采访者在重新恢复局势中的徒劳的尝试并没有排除尼尔基的热情。

“现在为无聊的部分,我需要一个标准的入口控制器。我喜欢使用nginx.is如果我从他们的网站复制配置,它会很好吗?”

这对他来说很好。她可能会被问到他的统一孩子,这将对他一点。

就好像她为她的整个生命等待这个机会..在这个面试室的命运汇聚的命运线程,面试官在其中心,通过他自己的选择。

“我的计划是定义四个可被三个分隔的组合的入口规则,并将其划分为五个。该模式必须可以通过RE2可以理解,只能实现限制的正则表达式。我们可以直接使用nginx的较短表达式,但唉,没有运气。“

“让我们从简单的情况开始,当数字不被三到五分被分开时。”

yaml流向她的手指,好像空白和冒号是她的母语。

apiersion:networking.k8s.io/v1beta1种类:Ingress元数据:名称:fizzbuzz-none注释:nginx.ingress.io/rewrite-target:/ get?response = $ 1 nginx.ingress.kubernetes.io/use-regex :"真实"规范:规则: - http:paths: - 路径:" /(。+);后端:ServiceName:HttpBin ServicePort:80

“我们将此请求直接转发到HTTPBin,将数字作为查询参数。”

“继续前进,让我们定义剩下的入口规则。五个五分之一是相当容易表达作为正则表达。你只需检查最后一位数字。”

apiersion:networking.k8s.io/v1beta1种类:Ingress元数据:名称:fizzbuzz-5注释:nginx.ingress.io/rewrite-target:/ get?response = buzz nginx.ingress.kubernetes.io/use -regex :"真实"规范:规则: - http:paths: - 路径:" /.* [05] $ "后端:ServiceName:HttpBin ServicePort:80

“我定义它们的顺序并不重要,所以我会按照下面写下.Remember,nginx使用减少长度消除多个匹配的歧义。”

“三个可分性是一个更复杂的。我们首先需要考虑每个残留模数恰好一个状态的状态机。通过将残留物乘以基座10来容易地计算转换功能,然后添加当前数字,然后加上计算再次残留物。这不会产生最小的自动机,但它有效。“

其中一个日子,她真的必须为那个脚本写一个脚本。它经常出现。

“最后我们可以使用标准施工来将自动机转换为正则表达式.Luckily,结果保证不会扰乱RE2。”

“在我弄清楚表达时给我一瞬间,你吗?我刚刚需要执行Brzozozowski的算法。”

“我要喝咖啡;你还想要一个吗?“他礼貌地问道。但她没有听到他。她已经完全陷入了解决方程式系统的看法,没有等待他的许可。

他离开了房间,喝咖啡,一些新鲜的空气。他试图了解在采访室中目前展开的事件的同时啜饮一口气。他返回了这一点。

当她的面试官穿过门口时,Nephele抬起头来。“我已经完成了,我们现在可以部署。”

apiersion:networking.k8s.io/v1beta1种类:Ingress元数据:名称:fizzbuzz-15 annotations:nginx.ingress.io/rewrite-target:/ get?response = fizzbuzz nginx.ingress.kubernetes.io/use-regex :"真实"规范:规则: - http:paths: - 路径:" /([0369] | [147] [0369] *([147] [0369] * [0369] *)*([147] [0369] * [147] | [258] | [258] [0369] * [258] | [258] [0369] *([258] [0369] * [147] *)*([258] [0369] * [258] | [147])*(0 | [147] [0369] *( [0369] *([258] [0369] * [258] [0369] * [258] [0369] * 5 )$"后端:servicename:httpbin serviceport:80 --- apiversion:networking.k8s.io/v1beta1种类:Ingress元数据:名称:fizzbuzz-3注释:nginx.ingress.kubernetes.io/rewrite-target:/ get?responst = fizz nginx.ingress.kubernetes.io/use-regex:"真实"规范:规则: - http:paths: - 路径:" /([0369] | [147] [0369] * [258] |(([258] | [0369] * [147])([0369] | [258] [0369] * [147] *([147] | [258] [0369] * [258])))+ $"后端:ServiceName:HttpBin ServicePort:80

他看到了一个数字的海洋。他失去了所有定位的海洋。他认识到弦嘶嘶声和比如地平线上的灯塔。它会很快。

$ curl http:// localhost / 3 | JQ .args.Response" Fizz" $ Curl http:// localhost / 5 | JQ .Args.Response" Buzz" $ curl http:// localhost / 6 | JQ .Args.Response" Fizz" $ Curl http:// localhost / 15 | JQ .args.Response" FizzBu​​zz"

她窃笑了。网络规模的Fizzbuzz群集的讽刺并没有在她的面试官上丢失。 “我承认代码现在不太处理错误。你要我继续前进吗?我也可以使用掌控模板来删除一些复制。” “不,这是必要的; 我想我已经见过了。今天进入谢谢。我们会联系。“ 感谢Aphyyr让我“窃取”这篇文章的标题.Check出来的令人惊叹的系列。感谢Marcus Bointon,Ross A. Baker和Hillel Wayne为改进提供批评和建议。没有采访者受到伤害 写作过程。