Tubi 故事|解决了核心问题,团队才有机会发展壮大

2024-02-01 00:04

本文主要是介绍Tubi 故事|解决了核心问题,团队才有机会发展壮大,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在之前的 Tubi 故事中,我们回顾了中国团队从四人到百余人精英队伍迅速扩张的黄金原则,以及在小众技术语言领域吸引高端人才的秘诀。然而,招聘策略再出奇,团队快速发展的前提都是这支团队对于公司是不是可靠且重要,继而才会有招聘的需求,团队才有可能壮大。接下来,我们将分享 Tubi 中国团队如何一步步建立起在 Tubi 整体业务中的技术影响力,中国团队成员又是如何保持与团队共同进步,创造了团队和个人的成功。


对于任何一个公司而言,在外地设立研发中心或分部就像一个小型的创业实验,需要考虑许多因素。比如,Tubi 在 2016 年创立中国团队时就特别关注 —— 能否迅速招募到中国最顶尖的工程师团队,能否快速有效地实现中美团队之间的高效协作,以及中国的政策和环境是否能提供充足的支持等。

在谈到创建这支与总部有着天然的地理文化差异的中国团队时,Tubi CTO Marios 说:“在 Tubi,我们经常进行一些实验,我们决定将创建中国团队也视作一个实验,看看会有什么结果。

尽管在创建中国团队时,我们面临着这一实验的诸多不确定性,但有一点我们十分明确,那就是我们希望在中国招聘资深工程师,打造一个和 Tubi 美国工程师团队同样优秀的精英队伍,而不是一个外包团队。我们从一开始就明确,这些人将与美国团队一起工作,而不是在中国和美国分别进行各自的项目,这将有助于增进团队之间的协作,更好地发挥整个团队的潜力。”

解决那些最核心的问题

在创建中国团队这一关键实验中,陈天面对的是空前的压力和强烈的动力。他回忆说:“当时,Tubi 还处于早期创业的关键阶段,我们还在为公司的生存与发展奋斗。在这种情况下,每一个项目都充满了紧迫性,都必须全力以赴以创造显著的收益。”

对于 2016 年刚刚创建的中国团队 来说,向 Tubi 展示中国团队能够带来显著价值是极为迫切和关键的任务。只有大家齐心协力,才能确保这一探索性实验的成功;一旦成功,不仅能够扩大中国团队的规模,还能为 Tubi 带来更多的收益。同时,只有高效利用资源并获得最佳的投资回报,通过一项项实际成果,才能让美国团队深信设立中国团队的价值和收益远超跨时区和地域的沟通成本;只有这样,中美团队之间的信任才能逐渐建立,从而使未来的沟通和协作更加顺畅和高效。这不仅是一项挑战,也是一个机会,可以促进两地团队的协同合作,共同推动 Tubi 的发展和成功。

当中国团队有了第一批员工后,这支由四人组成的工程师团队立即投入到了紧张的工作中。

陈天回忆中国团队最初负责的工程项目时说:“大约在 2017 年,我清楚地记得当时 Tubi 的 Ad Break Finder 效果欠佳。我与 Yingyu 深入探讨了我们在开发 Ad Breaker Finder 时遇到的挑战。经过讨论,他开始构思一种新方法:创建 Tubi 影片的精灵图(sprite image)。这样,内容团队的同事们就能更高效地确定广告插入的确切位置了。以前,我们必须手动拖动视频进度条才能查看特定时间点的场景内容,Yingyu 的这一思路显著提高了工作效率,为我们的项目带来了重大的改进。

当时,Chun 负责我们的 CMSUI 项目。可以说,原先的 CMSUI 系统是没有任何架构、是一个想到哪做到哪的系统,整体性能不尽人意,数据查询也相当缓慢。面对这种情况,我产生了开发全新版本 CMSUI 的想法。就在那时,Algolia 发布了一个相对稳定的版本;我对它进行了初步探索,并制作了一个简易的演示版本,展示了 Algolia 在处理复杂查询方面的高效率。考虑到 Tubi 当时的内容库规模,我意识到搭建一套这样的 CMSUI 系统是经济可行的。之后,Chun 接手了这个工作,用 Algolia + React 技术栈重写了整个 CMSUI 系统。我们目前使用的 CMSUI 系统就是基于 Chun 当初的蓝图,逐步增加了更多功能的结果。”

这些年,中国团队做出了许多类似的重要贡献。欢迎订阅 Tubi 技术博客,了解 Tubi 技术动态!

酒香也怕巷子深

作为一支与总部存在地理距离、在语言和文化方面存在差异并且较为内敛的团队,Tubi 中国团队还需要有意识地建立并扩大在 Tubi 的技术影响力。

陈天回忆起中国团队刚创建之时说:“我记得除了 Yingyu,其他团队成员的英语表达和理解能力在当时都稍有欠缺,在与美国同事的交流中存在一些困难。不过,这并不是一个大问题,我们通过文档等书面方式进行沟通,通过画图使彼此能理解一些技术方面的想法。这样一来,中国团队也有了足够的机会在工程项目上施展才能、做出贡献。”

他还指出,中国团队在沟通方式和风格上与美国同事也存在一些差异。例如,有的中国团队成员之前没有在外企工作过,他们与人沟通时习惯使用“XX 总”这样的称呼;这样的沟通方式不仅与 Tubi 的扁平化文化不相符,而且可能会无意识地放低他们的位置。此外,中国团队成员往往较为内敛,即使他们对别人的想法有所异议,也不会直接驳回,而是会在现场保持默许,之后再找合适的场景和方式进行沟通。

为了提升中国团队在 Tubi 的技术影响力,并进一步加强与总部的信任,陈天带领中国团队的同事们采取了一系列行动,突破上述挑战。陈天分享说:“我从一开始就向中国团队成员灌输‘平等’的理念,让大家明白自己与 CEO、CTO 之间是平等的,他们可以直接表达自己的想法。在灌输理念的同时,我也以身作则,引导团队在称呼上统一,对等的定位得以回归,平等沟通的基础也就建立起来了。” 这种在称呼上的改变对于原本较为内敛的中国工程师来说,无疑是一种鼓舞,让大家更有勇气和意愿去沟通工作上的挑战,并展现他们在项目上的成就。

此外,中国早期团队也会不定期邀请 CEO 参加 China Team Meeting,建立起了与 CEO 直接面对面的沟通渠道,特别是在公司取得重要突破时,CEO 亲自到场分享重要消息,并回答大家关心的问题。陈天回忆说:“我们还邀请过 Tubi 当时的 Co-Founder 来与团队分享公司的发展历史和盈利模式,让大家更清楚地了解各系统之间的关系,也更有意识地参与到 Tubi 的整个商业运作中。” 这种信息透明、基于信任的团队文化从那时开始延续至今,Tubi CEO 每年都会来一次北京与同事们面对面交流,每个季度还会通过视频会议解答中国团队关于业务发展的疑问。


Tubi 中国团队一直在发展壮大,与这支团队能持续在 Tubi 业务发展中发挥重要的作用、解决最核心的问题密不可分。期间,Tubi 中国团队也形成了一支强大的本地管理队伍,这不仅是因为团队规模扩大的需要,更是 Tubi 对中国团队这一实验结果的肯定与信心。

CTO Marios 表示:“我认为中国团队这一实验取得了一定效果,并且具有很大的潜力。在未来几年,我们会继续寻找最匹配的人才。关于中美团队之间的合作,我们会确保所有的工程项目不局限于特定地区,中美团队将继续共同承担相同的功能和业务。”

精彩预告

欲知中国团队本地管理队伍如何形成、以及他们产生了什么样的重要影响,欢迎关注【比图科技】公众号,下回听 Tubi 中国团队的同事们讲一讲!

Tubi 有更多

  • Tubi 工程师文化
  • 他们加入 Tubi 时也考虑过这些问题
  • 探秘 Tubi 北京新办公室
  • 这是一家有图书馆的公司
  •  一个观看量超四万的系列视频是怎么来的

Tubi 正在热招

Tubi Data Team 目前正在寻找一位大数据平台开发 Lead,他 / 她将领导数据开发团队,创建高质量、可扩展的流数据管道,与所有用户建立联系;将在开放创新的环境中与机器学习团队、产品经理、DevOps 团队和数据科学家合作,推动用户增长;对系统架构设计全面负责,解决性能、可扩展性、可重用性和灵活性等问题;并倡导工程最佳实践,培养与保持团队内的工程师文化;负责技术招聘和指导团队成员的职业发展,建立一支高效的开发团队。

欢迎加入!

这篇关于Tubi 故事|解决了核心问题,团队才有机会发展壮大的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/665483

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

springboot报错Invalid bound statement (not found)的解决

《springboot报错Invalidboundstatement(notfound)的解决》本文主要介绍了springboot报错Invalidboundstatement(not... 目录一. 问题描述二.解决问题三. 添加配置项 四.其他的解决方案4.1 Mapper 接口与 XML 文件不匹配

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

Java报NoClassDefFoundError异常的原因及解决

《Java报NoClassDefFoundError异常的原因及解决》在Java开发过程中,java.lang.NoClassDefFoundError是一个令人头疼的运行时错误,本文将深入探讨这一问... 目录一、问题分析二、报错原因三、解决思路四、常见场景及原因五、深入解决思路六、预http://www