阅读 3077

互联网技术人在快速发展团队的独当一面之道——Shopee半年记

李成熙,Shopee金融前端团队Leader。2014年度毕业加入腾讯AlloyTeam,先后负责过QQ群、花样直播、腾讯文档等项目。2018年加入腾讯云云开发团队。2019年加入Shopee金融前端团队任一线前端Leader。专注于性能优化、工程化和小程序服务。微博 | 知乎 | Github

原文链接

一毕业,我就进入鹅厂。在鹅厂经历了最顶峰的日子,也见证了鹅厂发展变慢,寻求变革。在这里有很多光环,大厂,技术牛,工资好。在外面参加各种场合的活动,作为小兵的我也时常被人捧上天。工作第3年的时候,我就开始陷入沉思。究竟这些光环,这些牛B,是鹅厂带给我的,还是我自己实实在在挣来的呢?如果我哪天离开了这里,没有这个大厂的光环,我的技术还能那么牛吗?我推动的事情还能这么顺利吗?招人还那么容易吗?

我是危机感比较强的人,希望可以挑战一下自己,跟随着一个快速发展的团队,不断打磨自己作为一个软件研发人员的工程能力和生存能力。正好19年5月份碰巧拿到一家腾讯系公司 Shopee 的 offer,有机会可以带团队。Shopee的规模没有鹅厂这么大,虽然全球也有几千人,但在深圳刚加入的时候只有几百人,但发展很迅猛,机会和挑战并存。总括来说,Shopee就是规模相对较小,但发展相当迅猛的公司,非常适合现阶段的自己,于是便希望去尝试挑战一下。

等别人喂还是喂别人?

在大厂里,一切的流程,工具,系统,都已经有前人搭建好,你只需要做一口听话的螺丝钉,安心执行,等被人喂即可。但在小一点的平台,各方面都未完善,并没有人告诉你该怎么做,需要自己一步一个脚印把路给踩出来。

记得刚到 Shopee 的时候,需要将业务发布到CDN上。但当时一问之下,由于金融业务需要有特殊的合规要求,一直没有将业务发布到已有的CDN服务供应商上,而只能将业务发布到公司自己搭建的IDC上,成本比较高。在这个问题上,似乎并没有人可以帮到我,我只有选择作为喂别人的人,将这整个合规的流程给打通。搜索资料,拿出理据,说服老板,这三步很重要。

首先要搜索到市面上主要的CDN厂商的功能、性能以及合规的信息,然后在公司内网,想尽办法了解公司当前以及未来规划的架构策略,无意中发意其中一家符合要求的服务商,有一些海外的业务在试用了,我便把这些信息进行汇总后,誊写一份邮件,争取到老板的支持,把整个流程打通,为后续业务的顺利上线和更多业务接入降低成本铺好路。其实上面提到的这三步,在大公司里也适用,我们开展一个项目,达成一个目标,也需要拿出说服人的理据,来说服老板和同侪的支持。但由于大公司一切都很完善,很容易会养成惯性,自己翘起双手,什么也不管,虽然会慢点,但最后也会有人解决好前面的路障,让你可以坐享其成。但小平台不一样,可能有生存的压力,有盈利的压力,有发布新产品的压力,这个问题不解决,你们团队就可能面临丢饭碗的困境,因此选择喂饱你的战友,你的项目,养成这种意识,才能在不同环境之下都可以生存。

如果合作能解决的问题不要自己单打独斗*

大平台经得起内部赛马,但小平台经不起过多的折腾。以前在鹅厂经常听老板说ROI,也就是所谓的投入产出比。但你会看到其实一起合力更实力,但旧东家还是很喜欢搞赛马——外部投了虎牙和斗鱼,内部一样还有企鹅电竞和NOW直播。大厂钱多人多,经得起消耗,但小一点的平台则不然,合力往往是解决问题的最好方式。

开发几个月后,业务就即将上线了,但对业务的监控还是没有很好的方案。这是每一个项目的技术带头人,都需要的决策,是自己搭一个,还是用别人的?经过询问之后,部门内部是有一套已经在用的Sentry,当时就答应下来,要马上接入。还有一套简单的性能上报平台,但功能还不是太完善,并且正在规划下一个版本的设计,接口可能完全不兼容,看起来不太符合当时的接入条件。在做产品上报的时候,我发现公司的数据平台,其实可以一定程度上充当这个上报的角色,经过简单的开发支持后,不仅可以将性能数据上报,经过打探,还可以做一些实时数据上报的事情。

于是我便决定下来,将我的需求整理成文档,然后花了两三周的时候,耐心地解释这个事情对业务的重要性(能让业务通过不断优化,提升性能,给用户更好地体验;有实时监控PV也可以大体监测业务是否掉量),以及对于数据平台的价值(除了上报产品数据外,还可以兼顾技术的数据,减少内部竞争者)。最终通过寻找共赢点,成功游说到数据平台对我们进行支持。这次的合作,看起来我只是一个推动者,但整个合作是由我发起,流程由我推动打通,看似是数据平台的能力在喂我,但其实是我跟数据平台打通了流程和开拓了能力和服务场景后,一起去喂其他的业务,也是对上一节讲解的呼应。

能力一专多长更适应业务的快速多元发展

大平台钱多人多,最喜欢就是某一个领域专精的工程师,所以对某一方面非常专业,即可在大公司混上口饭上。但这样会导致知识面较窄,丧失广泛深习的能力。万一自己熟悉的技术落伍了,公司业绩不好,很容易被淘汰。比如目前鹅厂有些部门,前端再进行细分,就是将HTML和CSS单独列为重构。这样确实可以让重构的工程师专注于做体验,他们往往比同时写JS,HTML和CSS写的页面效果更好更精细。

但对于发展迅猛的业务来说,花60%的精力做到80分,可能比花90%的精力做到90分更符合ROI。并且业务多元快速发展,但人手不够,技术储备不够,便可能要求员工在切换业务的时候,也需要快速适应另一个技术栈,因此一专多长在小一点的平台里,显得难能可贵。可能并不是所有小厂都是这样要求的,但我对组内的兄弟的培养,都是这样的要求。譬如你可能写 React Native 是大神中的大神,但 React Native 需要挥快速更新的优势和分包,就需要研发一个热更新的服务,那对Node.js也需要有一些的了解,才可以研发出热更新的服务,而研发热更新的服务,就需要了解CDN技术,K8S技术,才可以将Node.js服务部署好,将React Native的Bundle存放好。在大厂里,这个流程每一小块都可以由一个人自己承担,但在我的项目组,只是由2个兄弟独力承担。他们虽然辛苦,但成长的速度远远要比在大厂快,并且由于将自己培养成一专多长的人才,经过一段时间的磨练,相信每个人都能初步具备当技术leader所需要的技术深度和广度。

小结

来Shopee半年了,以上是我总结出来比较一些不成熟的经验,有了这些经验,在小厂生存下来不成问题,亦能跟业务一起成长,在大厂也能独当一面。是的,现在团队缺人,如果想尝试挑战自己,让自己更加独当一面,更具备国际化的视野,这里非常适合你。华人的企业跟真正站在国际的舞台,东南亚是一定要拿下的一个战场。在Shopee能够让你获得具备在国际舞台上跟欧美巨头一战的机会。即使你未必跟Shopee一起战到最后,但在这里收获的经验,一定能让你的职场路走得更远。

如果有兴趣加入我们Shopee金融前端团队,可以将简历发送至 chengxi.li@shopee.com

职位介绍

工作地址:深圳

岗位职责:

1、参与面向东南亚等地区的支付、信贷等金融产品的前端开发和交互实现,以及相关管理系统的实现;

2、负责对产品功能和性能不断优化,持续提升用户体验;

3、完善效率工具建设,提升研发效能;探索前沿技术,选择合适的新技术并运用到实际项目中。

岗位要求:

1、大学本科及以上学历,2年以上前端开发经验;

2、精通前端基础技能,熟练掌握ES Next、HTML5、CSS3新特性;

3、深入理解浏览器工作原理,熟悉各种性能优化手段;

4、熟悉主流MVVM框架和类库,了解业界最佳实践;熟悉React Native等新型混合应用框架并有实际使用经验者优先;

5、具备良好的编程能力,对常见算法有一定的了解;

6、熟悉服务端技术和至少一门后台语言, 有大型 Node.js项目开发经验者优先;

7、对PWA/WebAssembly/跨端统一方案等新技术有强烈兴趣并且有一定理解者优先。

Shopee的生活

BG定期的新人培训
[BG定期的新人培训]

工位很大
[工位很大,横着竖着都能放下一张午休床]

初次跟team member聚餐
[初次跟team member聚餐,被上来的盆栽惊呆了]

team member自发地在讨论问题
[team member自发地在讨论问题]