默默地过完在Google的最后一周, 下周就要去startup开始新的征程了, 趁着现在写一下对Google的看法.
在Google工作让我成长了很多, 在这里我遇到了很多优秀的同事, 学会建立规范的流程, 写一个完整详细的design doc, 以及设计scalable的system. 我觉得对于刚毕业或者像我这种没在互联网公司工作过的人, Google绝对能称得上软件工程师的蓝翔技校...
有几点我学会的东西很值得拿出来跟大家分享:
- Design doc: 在Google工作后, 我在做一些自己side project的时候, 都会先写一个design doc. 我觉得写design doc这件事情不只适用于大公司. 因为design doc可以帮忙理清楚思路, 分析清楚需求, 系统架构, 项目的商业价值, 等等.
- 建立process: 我曾经在一个项目里面管理过几个contractors, 这需要很多沟通, planning, 以及和Google内部的组配合. 当时的lead PM首先做的就是建立一个好的process来streamline不同组之间的合作. 对于一个早期的项目, 很多东西其实没法很好得自动化, 这个时候建立一个process就很有帮助了.
- Why system design is hard: 进入Google前, 我的工作比较偏modeling. 当时我也读过Google那几篇经典的论文(Bigtable, GFS, MapReduce), 但其实并不明白为什么设计系统这件事情很困难, 或者说没法理解system paper的价值在哪里. 后来在Cloud AI从0到1做一个ML system的项目, 从身边做系统的同事学到了要去思考failure怎么处理, API应该怎么设计, 怎么去解决consistency相关的问题. 慢慢地也有了对system的taste, 也开始更深入读一些system相关的paper, 比如UCB Riselab一些新的研究成果. 我不敢说自己这一块经验很深, 但起码知道了需要考虑什么问题, 这个问题为什么难, 以及有哪些方向可以去解决.
那为什么会离开Google呢? Google作为一家有着接近十万员工的公司, 已经变得更加官僚, 做事情的速度变慢, 升职不给力. 虽然这能保证Google能够继续稳定得输出, 但对于个人来说, 并不是每个人都能在这样的游戏规则下, 找到让自己快速成长的机会. 这里说的成长机会, 不只是说升职, 也包括拿到更大的scope, 对公司决策的影响, 管理团队的机会, 等等. 如果把自己放在一个更有挑战的环境, 成长的速度也许会更快.
对我而言, 我以后还是希望有机会成立自己的startup, 所以也会关注自己不只是在技术上线性进步, 而是也能在strategy, product, management skill上得到锻炼和提升. 抱着这个想法, 最后还是决定继续去startup试一试. 也许会失败, 也许财务上的回报不如留在Google, 也许还会是个大坑, 但希望能跳出Google的环境, 看看更大的世界.
<hr/>更新于Robinhood IPO之后
来了Robinhood有九个月, 感触很多, 刚好回来更新一下这个回答, 对比一下大厂和startup的区别. 这次更新我会从几个角度来对比一下Google和Robinhood. 但毕竟不同startup的特点也不一样, 所以不能一概而论.
从技术深度去考虑, 我会建议喜欢钻研技术的朋友们去大厂. 对于业务/产品驱动型的创业公司(我觉得大部分创业公司都会是产品驱动), 其实不会有太难的技术问题需要解决的 (Note: 大家就别提PingCAP, Anyscale, OctoML这些公司了). 而大厂有足够的资金去养一支团队, 有足够规模的问题要去解决, 也需要优化到极致. 在大厂的核心组, 你会有很多机会深挖一个系统. 而对于startup, 能把开源技术理解并整合到产品, 往往已经是够用了. 对于个人技术品牌的发展来说, 大厂会自带branding. 而在startup, 就需要自己额外多花时间去建立自己的技术品牌了.
2. 财务回报
在同等的包裹(base + 股票)下, 其实两者可能差别不大. 从我加入Robinhood之后, 每股价格大概翻了一倍多. 然后在同样的时间里面, Google的股票价格也是翻了一倍. 从财务的回报上, pre-IPO公司不见得会比大厂高很多. 当然, 这也取决于加入的时机.
3. Work Life Balance
其实我没感觉startup的work life balance会差很多. 也许是因为我还算那种比较喜欢工作的人. 又或许是我当时在Google的Cloud AI, Cloud AI的活多同时升职也不快...当startup到了一定规模之后, 也会开始考虑employee retention, 会考虑减少员工的压力. 所以我没感觉到工作量会多很多.
4. Scope
这个应该不用对比了. 在Robinhood, 我负责着整个ML serving stack的技术方向, 也会带着junior engineer去搭建新的Infra. 在Google, 我提出的想法会受限于我当时的级别, 也很难去推动很多事情.
5. 其他
Robinhood有一点很刺激的地方, 在于会收到market volatility的影响. 所以在里面工作心态要放宽. 同时, 毕竟Robinhood会尝试革新金融市场很多方面, 所以会引起很多争议, 天然有招黑的属性. 我觉得从招黑的角度, Robinhood和Facebook有得一拼了. 这个时候就要学会去调整好自己的心态, 要尝试去过滤掉一些无用的争执, 而专注于做好产品.
还有一点我觉得很有感触的是Robinhood的mission (democratize finance for all). 进去之前, 我对这个mission只信了5成. 进去之后, 我信了9成. 我觉得最难能可贵的是, Founder提出这个mission, 并且愿意花费自己人生一大块时间去实践这个mission. 而且在那么多争议和挫折的情况下, 坚持自己的初心. 这个mission, 我认为是区别一个好的startup和一个great startup的重要区别. 是否有一个足够宏大的mission, 并且愿意为之不断努力和奋斗.
也许最后的这两段看着有点像广告. 你猜对了!!! Robinhood的Core ML team在招ML infra工程师, 有兴趣的朋友欢迎私信联系. 我们组负责搭建整个Robinhood的ML infra (包括Notebook, training/serving infra, feature store, embedding service, 等等). 我们期待的candidate有一定的ML经验 + 比较不错的engineering背景, 需要能在美国合法工作.
声明: 所有内容仅代表本人观点, 和Robinhood无关
Disclaimer: Any opinions here are my own, and in no way reflect that of Robinhood |