腾讯面试,最终定级T11+leader岗位。最终我还是拒绝了,因为整体考虑,腾讯在深圳,回上海的可能太低了。好像上海腾讯只有广告领域,然后估计也没有T11的坑位可以回来。
腾讯的总体面试流程是:
一面:应该是自己的直属leader来面试的。我这次比较奇怪,一面应该就是t12以上的了。
二面:面委会,由其他事业群专业的面试组成的一个面试委员会,我的面试委员会有两位成员,这两个人会分别进行一次面试,然后整合意见给出评价。
HR面:腾讯很奇怪,hr面是两位hr一起进行面试的,但是主要是其中一位面试官来提问。BAT三家,HR面都非常非常非常的完整。其他的公司好像HR面相对简单一些。
事业群GM面:我不知道这个GM是什么意思,HR面说已经给我定级完毕了,后面还和GM聊聊就行,但是我因为已经拿了很多offer了。后面就终止了流程。
一面
一面内容总体分三个部分:项目面,架构面,资损防控。
一面因为是你的入职之后的直属leader面试,所以会非常考察比较落地一方面的内容,腾讯的一面持续了一个半小时。是我所有面试里面最长的。(除了这个,其他的都是一个小时)。
首先还是正常的项目介绍,我这里还是介绍了结算中心和个人资金项目,主要腾讯和支付宝太熟悉了。所以很多的东西聊起来就特别方便,比如直付通这种业务产品名词,他们都知道。所以我发现面试如果是相关领域的,那么就很顺利。
第二部分就是架构设计,在架构设计里面我简单介绍了一下我自己的架构方法论,面试官表示非常认可,但是微信的架构很烂,没办法和支付宝比(哈哈哈)。所以他重点问了我架构延续和团队同学培养方面,就是怎么保证自己的架构方案可以持续的演进下去和怎么进行架构宣讲和协调,让团队的所有同学能够理解架构的概念。
在这部分内容面试的时候,当时我因为发生了一些事情,所以我改变了我的一个说法,我主要讲了一个比价虚的内容。就是“信念感”。
我说,我觉得架构师,还是要有一定情怀的,是追求设计的,追求技术的。我们自己内心真正的明白是在解决问题,真正的把我们当下的系统变的更好,然后再结合我自己说的“明灯”方法。来达到架构协同的目的。
关于明灯,可以看我的架构师系列文章。这个是讲架构延续的内容。
接下来就是一直在聊资损防控的内容了。腾讯是所有公司里面最重视资损防控的了。在这个问题上我们聊了整整50分钟。虽然后面的所有公司都有问,但是腾讯还重点关注了怎么落地,然后怎么防止在业务研发迭代的过程中打破架构设计,怎么防控一些unknow-unknow的业务问题。
资损防控整体回答
我把资损防控手段总体分成两部分(希望更加有经验的人来介绍一下这块内容)
● 架构设计 ● 资损防控手段
首先如果业务系统出现了资金问题,那也是属于代码bug,只不过是比较严重的bug,会直接导致公司亏钱。既然是属于bug,那么一定可以通过更加合理的架构设计,来尽量规避掉错误发生的情况,发生的严重程度。
架构部分
● 领域边界要符合业务发展需要
在业务发展过程中,比如金额计算这个最简单的功能,可能就分属于各个领域在计算,比如一个电商系统。
商品系统肯定会计算一个显示金额,但是交易系统也一定会计算订单金额,等用户支付的时候,肯定也会最终的计算用户需要支付多少钱(比如扣减优惠券)。
这么多个金额,难免会计算出错。比如你是商户资金结算系统,这个时候给商户多少钱该用什么金额来计算呢?
这里就是,我们会根据当下的业务发展需要,进行我们的业务职责划分,但是架构是发展的,在资金处理上,会重视一些,如果还没有发展到目标状态,那么也仍然是按照目标状态来兼容处理的。
● 架构核心概念不允许打破
我的架构设计,属于金额计算,这个是核心架构概念,这个概念在业务项目中是不允许打破的。这也很考察架构师的能力,因为你设计的核心架构概念和代码,每个业务项目都要更改,那一定不核心。
此外,如果涉及到资金链路的修改,我们在研发流程上也会要求补充资金流说明和防控手段,在测试的时候也会进行乘法测试。而其他业务项目往往是加法测试。
● 架构延续
在资损防控上,架构延续其实发挥着持续的价值。因为我发现,我们写的一些临时的代码,往往当下不会发生什么问题,出问题的都是后人在进行业务迭代的时候“踩坑”了。
所以,如何能让大家尽量少的写这么多坑别人的代码,就是架构延续的命题。
在资损防控上面,我们规定的金额相关的内容,是绝对不允许出现违背平台架构核心的内容的。如果要更改,那么一定是限制好了所有条件,保证只有本次特殊的业务会影响上。保证后人不会用到这“坨”代码。
资损防控手段
总体的资损防控手段,我经常按照事前,事中,事后。来进行划分 然后方法上有,资金平衡校验,旁路信息校验,核对。
● 事前
各个系统会使用另外的一套代码,计算本次业务处理的所有金额是否正确,这个叫资金平衡。每个系统都需要进行自己业务的资金平衡校验,平台型的系统会对下游所有业务系统的返回金额进行总控资金平衡校验。
旁路分支,因为资金平衡的问题,主要是视角不全的问题,所以我们在实践过程中,会把各个系统的金额信息进行上送,然后在旁路分支进行一笔业务中的所有金额信息校对。
研发流程,也属于事前,包括系分评审和测分评审里面的资金安全防控的内容。
● 事中
我们把止血前,都叫做事中阶段,所以这里对于资金防控的处理和应急就很重要了。包括发现手段。
整个核对:证账实 * tm,th,t1 * 上下游核对,单系统核对,全链路核对
预案能力,可以针对某个业务进行及时止血
● 事后 事后主要是针对错误恢复和故障复盘机制。
面委会
腾讯的面委会,其他内容和别的公司差不多,考察的都一样。其实面试久了就觉得自己能力的真实水平在哪里了。
不过腾讯有很大的不一样,在阿里我们经常考察视野的广度,能看到多少内容,思考的是否全面。
但是腾讯会有更加落地的内容,怎么进行决策,怎么进行判断优先级,最重要的是什么。
两个面试官都问到了相关的问题,我印象十分深刻。
如果给你一个全新的领域,全新的团队,突然让你支持数十万TPS,你认为最重的事情是什么。
在资损防控里面,如果只让你做一个事情,你要做哪个事情。
首先,这个很明显是在考察一个trade off的能力。我们如何进行优先级判断,我们判断的依据是什么。
绝大部分的优先级判断,都是根据ROI或者四象限分析来进行的。这里不展开。
此外,我经过复盘和思考,我觉得这个问题还会考察另外两个维度的事情:
所谓方法论的方法论,就是一个全新领域如何快速得出属于自己的方法
能力维度,我认为分三个:洞察力,决策力,执行力。这三个维度来判断和衡量上面的问题
这部分,我还在学习中。
HR面
在BAT三家里面,都非常非常的重视HR面,这个“重视”的意思是,hr面不仅仅是聊聊期望薪资,聊聊个人习惯和品行等内容,hr面会非常成体系成专业的。
我目前还不知道hr会是分哪几个维度,感觉是:主动性,成长潜力,团队协助能力,执行落地能力,抗压能力。这些维度去考虑。比如有很多典型的问题。
你认为你和别人最大的不同是什么,为什么
你平时是如何成长学习的。
家庭和工作是怎么平衡的。
在跨域协作中,你刚才描述的其实很难,你是怎么做的。
你最不能忍受的事情是什么。
我的一些特点,喜欢没事干瞎想,下班固定思考25分钟。喜欢看一些哲学类书籍,并且我比较真诚直接,hr面往往能收获到比较正面的评价。
如果大家hr面有很多问题,可能反而是好事,可以帮助我们自己发现我们自己生活可能是需要改进的,我们可以想想别人说的是否有道理,我们是否可以改变,比如乐观一些?