力扣君的「企业零距离」小课堂又开课了。我们致力于深入企业内部,与他们的 HR、工程师,乃至合伙人进行对话,为大家展开一幅真实的企业画卷。本期邀请到的嘉宾——Shopee」,你也可以亲切地称呼为“虾厂”
“2015年,在写下第一行代码之前,我们就决定:未来我们想要变得很大、也要成为长青的企业和团队。”
而他们所在的领域,也是互联网中最迷人、应用最广泛的行业之一:电商。大数据平台、分布式系统、高并发场景……对于程序员来说这是充满挑战和成长的旅程。
能帮助你深入了解 Shopee 的业务理解,大数据工程师的技术解读和职场心得,HR 分享的虾厂二三事,还有好礼相送🎁 的脑洞讨论话题,赶紧下滑查看吧👇
走进那个虾厂
作为一个 2015 年上线的平台,Shopee 是怎样在短短几年内迅速成为了超过 350 亿美元 GMV的东南亚电商新星?有请 Shopee 新加坡研发中心负责人 Lei Lei 为我们揭秘。
Q:Shopee 今日取得的成绩,您觉得主要依靠的是什么?
我觉得我们最大的竞争力是我们面对现实的务实心态,以及从此引发的高度逻辑、尊重事实、认真思考、努力工作的一系列行为,而我们的价值观——用户至上、顺势应变、分秒必争、全力以赴、保持谦虚——也正是务实的具体体现
面对现实常常意味着面对困难、做难的事,也常常意味着认识到自己的失误或者错误,而做出调整,这些说起来容易但做起来并不容易,而正是做这些不容易的事情,让我们变得更好,从而给用户带来更多价值
面对高度多元化的市场,我们的深入思考以及技术本身,成为了一个很好的支点,让我们可以有效地构架技术平台和业务平台,来高效地支撑业务的成长。
Q:您认为 Shopee 有哪些引以为傲的技术?
我们做了一件很困难但很有意义的事:构建了自己的技术平台。
从裸金属服务器开始向上的层层技术栈,我们会充分地掌握每一层,也会优先选用开源方案。但随着业务的发展,在我们的体量下,往往现成的方案并不如人意,于是我们会发展已有的开源方案,或者从头构建我们自己的方案。
例如我们自研的服务发现、互联、治理框架 Spex,在我们从小团队转型到大团队的过程中起到了至关重要的作用:做过技术的都知道,服务架构应该随着团队架构发展,越来越大的团队,带来的是越来越多的服务,而服务之间的发现、连接、治理是一个重要的话题,于是我们在团队尚小的时候就开始研发 Spex,学习了很多业界已有的方案,但都没有很轻量级的,于是最后决定自己写,现在 Spex 已经是电商平台团队日常工作不可缺少的一个框架。
同样的,还有例如自研的弹性缓存集群 Cache Cloud,已经在线上支持数千亿的 KV 记录,以及数亿级别的 QPS我们自己的 LEAP(Linux Elastic Application Platform)弹性计算平台,也支撑了数十万级别的服务实例的弹性调度。
还有我们自己的日志平台,每天几百 TB 的日志量,承担了小小年纪不该承担的重量 😁 而我们近期发展出来的 Application Infra 团队,更是承担了为整个公司打下未来基础的重要职责。
但这些都谈不上引以为傲,在我的记忆里,我们从来不用”引以为傲“这个词,在我的眼里,只有不足,没有完美,只有能变得更好的地方,没有可以停下的脚步。比起有着几十年历史的更大的行业巨头来,我们只有区区五六岁的年龄,我们还有很多很多需要学习和进步的地方,这些都是我们长期在努力的。
Q:电商系统的业务需求复杂,您觉得程序员需要具备怎样的技术能力?
我们的开发人员(包括程序员、架构师、技术管理者等)都需要具备的是对技术本身的执着、充分的一手经验、以及对问题本质的提取和思考。通过真实的一手经历或者学习,构建自己的认知体系,对于一个专业人士是至关重要的。
当然,这些的背后,是产品经理团队的务实精神。在我们这里,拍脑袋提需求的事情是不会出现的,所有的产品需求都会有着相应的业务思考过程的记录。同样的,所有自发的技术需求,也会有同样的思考。
这样的工作方式,为工程师们创造了一个可以发挥专业能力的极佳的工作环境,我们可以关注在技术本身上,做出最好的判断和行动。
另外,大家可能认为,随着技术的成熟,算法在软件工程里变得越来越不重要,但在大规模系统里,却恰恰相反。无论是分布式一致性、还是系统性能、还是每个组件的业务逻辑,算法无不贯穿在开发工作的始终,并且算法的优劣会被大规模系统无限放大,带来重要的影响(无论好的还是坏的)。进一步的,在机器学习的领域里,算法和数据更是完整代表了整个体系。
电商里的大数据
众所周知,大数据可以说是电商中的一个核心技术板块。我们邀请到了 Shopee
大数据团队的 Luo,为扣友们分享他的心得体会。
Q:从您的工作经验来看,大数据在电商业务中起到了怎样的作用?
从最本质上来看,电商业务解决的是买和卖的问题。但在现在这个时代下,整个业务各个参与者的行为链条非常得复杂,且几乎每一个行为都需要用数据来作为决策的依据。
我们经常听到的一个词“数据驱动”,实际上就是这个意思。比如从卖家的角度,他们需要知道自己的店铺被浏览的情况,自己的商品被人关注和购买的情况,对自己店铺和商品感兴趣的人群的一些特点等等这些数据,以帮助他们更好的做定价,采购和营销。又比如从平台的角度,需要密切地关注各个国家、各种品类、每次大促等的实时成交额和订单数量等,分析师们需要通过数据分析来决定营销策略和广告策略,平台也需要通过搜索和推荐帮助买家更快更准确的找到自己中意的商品和店铺,等等。
这些例子都只是在电商业务中不同角色需要关注的不同数据指标的九牛一毛。而所有的这些都依赖准确及时的数据,因此对这些海量数据进行有效处理的技术就变得格外关键。这也让大数据在电商业务中起到了至关重要的作用。
Q:Shopee 在自己的大数据实践中应用了哪些热点技术,做了哪些应用上的创新?效果如何?
Shopee 的业务有其自身的特点,对大数据的使用和构建也有其特别之处。过去几年随着业务的快速发展,也对后台整个大数据体系提出了非常高的要求。
就目前的实践经验而言,我们的大数据系统是构架在目前整个全球大数据业界工业标准的开源大数据系统的基础上的,这其中包括分布式存储系统、分布式计算系统、OLAP 系统,实时流计算系统,KV 存储系统等等,这些技术通过十多年的发展,在一些特定的领域,针对一些特定的技术方向和规模,都已经有了比较成熟的积累。而且这些技术都是孵化于开源社区,遵循开源协议,不仅有来自全球的贡献者在不断基于各自的使用经验和技术背景一起进行迭代和开发,而且还不用担心会因为产权和商业上的一些条款带来无法预料的代价和风险的问题,这是我们选择这些技术的一个很重要的原因。
同时还有另一个原因是,目前全球大数据技术的人才市场上,几乎所有的人才都是由这套技术体系培养起来的,参与这些技术研究和开发的技术人才全球通用,这也为人才的培养和招聘解决了很大的问题。
Shopee 基于开源的大数据体系构建起来自己的大数据内部生态和系统,不仅很好地支撑了由于业务飞速发展带来的数据量急剧增长和数据处理需求,同时也结合自身的业务特点和在实战中遇到的问题对既有的技术进行了多方面的改进和优化,包括对系统稳定性的加固、性能的提升、新功能的开发、安全上的加强,以及成本的降低。
我们选择这些技术方案的同时,也积极参与了开源社区的贡献,和全球的大数据开发者一起让这些大数据技术不断向前发展。目前大数据团队有若干位开源社区的 PMC 成员和 committer 成员,目前大数据团队也鼓励工程师积极参与开源社区的技术讨论、设计、开发和贡献。
Q:您个人有什么职场提升的经验和建议可以给扣友们分享一下?
从我个人的角度来看,其实工程师的持续学习和提升大概有两个方面。
一个是技术方面的,有很多有心的年轻工程师们,通过熟读资料和文档,自己做一些小规模的实践,甚至钻研一些系统的源代码,其实是能够取得不错的收获的。这个对学习者本人的要求就是认真和坚持。
但如果想要再往前一步,积累海量规模环境下的实战经验,就很难了。大数据这个领域的经验积累到一定程度就会有高门槛,原因是大数据的技术跟规模有着直接的关系,要积累这方面的经验,仅仅通过已有的资料和文档,甚至钻研源码,也只能达到一个了解的程度,最重要的实战经验依赖于一个超大规模的大数据系统环境和相应的业务支撑,这种机会就少之又少了。只有业务规模达到一个非常大量级的机构和公司才能有这样的机会,而互联网公司由于其规模效应和特点,很自然的成为这种环境的孵化温床。所以对于一些工程师,尤其是在大数据这个领域的工程师而言,除了努力地学习和掌握这些技术外,去有规模的互联网环境下积累实战经验是一个不错的选择。你们会遇到很多的问题,很多的挑战,无数的困难需要自己去摸索并从中积累经验。
另外的一方面就是心智上的历练。职场不是象牙塔,没有人会哄着我们学习,劝着我们进步。在职场我们必须要创造价值,才有存在的空间。职场也是一个江湖,有江湖就会有沉浮,每个人都不可能只走顺风路,都一定会碰到逆境。比如碰到无法解决的技术难题,自己做项目被停止,组织架构上的调整,公司业务调整带来的变化等等,都是几乎一定会碰到的。走顺风路的时候很难感觉到累,但在逆境中思考和行动,才是工程师们不断跨越自己的办法。到了一定的阶段,心智上的历练给人带来的赋能,甚至会超过技术上的积累。
对于职业规划,不敢说建议,只从我个人的经历来说。在不断埋头积累自己的技能的同时,不要忘了抬头看路,至少需要有一个稍微长期一点的目标(比如3年以后自己要成长成什么样子,掌握哪些技术,实践过哪些工作等),并为这个目标制定一个可以持续坚持的执行路径,并且长期坚持,一定时间以后就会发现,坚持的这件事和这个过程中你的思考和调整,甚至比最终目标是否实现更加重要。这只是我个人的一些亲身感悟,希望对一些人有帮助。
虾厂的近距离揭秘
Q:Shopee 的总部是在新加坡,那么国内的团队,尤其是技术部门是怎样设置的?
我们在国内有跨境业务团队和产品研发中心,跨境业务团队主要负责面向中国商家做招募入驻和运营管理,目前在深圳,上海,香港都有办公室。产品研发中心在深圳,未来也会搭建更多的 office。Shopee 中国产品研发中心有多条产品线,业务涵盖电商,供应链,O2O,金融等方向,同时也有基础平台,大数据,AI算法,搜索推荐等团队。
Q:Shopee 需要怎样的工程师?面试需要经历哪些环节?
Shopee 的工程师一直致力于为用户提供更好的服务,我们所处的市场是一个快速发展,不断扩张的市场,这就要求我们的工程师能够迅速响应变化,全力以赴,高标准完成工作。与此同时,保持谦虚的态度,永远有进步的空间。
招聘主要会有专业面试、部门负责人面试、HR 面试等环节。专业面试环节主要考察候选人的技术能力,部门负责人主要考察候选人的综合能力,HR 环节则主要考察候选人的软性能力。
Q:Shopee 可以给员工提供怎样的环境和成长?
我们致力于为员工提供“简单 快乐 在一起”的工作氛围。在员工成长方面,我们相信 Shopee 员工持续学习的价值与重要性,从刚加入时的业务部门培训、公司级入职培训,到个人发展阶段需要的专业能力培训、职业素养培训,再到职场进阶阶段需要的领导力培训,在员工成长的每个阶段,Shopee 都会竭力提供帮助。
除此之外,Shopee 还向力扣君透露了各种精彩有趣的内部活动,一大堆美图即将来袭,准备好了吗?
内推来了
别忘了,现在报名参与力扣杯即有机会获得包括 Shopee 在内的 名企内推机会。更有万元人才奖励与力扣纪念周边等丰厚奖品等你来拿~ 
报名倒计时最后 3 天,点击图片,即刻报名!
本期话题
Q1:电商行业的大数据可以做到哪些事?
Q2你会想要加入电商行业或是成为一个大数据工程师吗?
点击留言参与我们的话题讨论,分享你的看法吧。
留言获赞的前三名将会获得由 Shopee 提供的「定制帆布袋」x1
留言点赞统计截至 4 月 8 日 18:00,届时会在本篇推文留言处置顶公布获奖名单和领奖方式。
继续阅读
阅读原文