Skip to main content

Facebook内部宣传:你就是个拧螺丝的

 发信人: guagua1220 (guagua), 信区: Military
标  题: Re: 非死不可终于不装逼了,要大规模PIP了
发信站: BBS 未名空间站 (Fri Jul  1 19:53:31 2022, 美东)

Facebook内部宣传:你就是个拧螺丝的

Facebook是互联网界数一数二的大公司,行为神秘,外人很难一窥究竟。油管博主
Patrick Shyu 33在Google做过Tech Lead,在Facebook做过Staff Software Engineer
,是内幕人物之一,也是唯一的支持调查中国工程师跳楼事件的公众人物。

Patrick Shyu是日裔美国人。他的姓是Shyu,是徐的音译,可能和当年东渡的徐福有渊
源。跟灵堂卖片的六老师一样,他是在老婆孩子跑了的视频里面卖广告的狠角色。这里
为了表示尊敬,简称徐老师:徐老师的勇气和正义感值得鼓掌!

徐老师在硅谷混过Startup和一线大公司,经历丰富。他在不同的视频里谈起Facebook
的内幕,给了不少有价值的建议。我在这里总结一下,看看一个普通程序员如何在
Facebook的高压环境下生存并发展。请有志加入Facebook以及类似企业的同学务必阅读
:这关系着你的前途和生命。

一、价值观

徐老师很坦诚:加入Facebook就是为了钱。他说他的年薪是五十万美圆。加上奖金的话
,可以达到54万。Facebook很大方,其他公司很难给到这个数目。

Staff Software Engineer是很高的级别了,在美国称为士大夫程序员,在中国可以翻
译成首席程序员。回国的话,相当于阿里的P9。有的同学留言感兴趣Facebook的级别,
下面贴了同级别公司的职位对照图。Facebook不注重等级制度,没有明确的职位称呼,
都是对照别的公司乱叫的。所以,在E7满地走,E6不如狗的知乎,很难有个一定的说法。

Facebook的技术相对于其他一线公司并不先进,吸引人才的手段就是给钱多。Google的
平均员工在职时间是3.2年,徐老师正好在Google呆到这个时间;而他在Facebook混了
不到一年就被开,可见压力之大。

Facebook选择的编程语言很有意思,PHP, Hack, C++,都不是业界主流。这样以后跳槽
的话,就比较麻烦,得重新刷题。按徐老师的说法叫dead end。

徐老师又说,Facebook的价值观是产品导向,经理很多都是MBA,没有工程背景。经理
和程序员没有共存共荣的关系。经理的任务是ship products;程序员的任务是make
diffs。程序员做的好不好,跟经理没有关系。相反,每年有两次考评,有15%的程序员
被强制差评。跟经理关系不好的程序员,可能随时扔出去背黑锅。Facebook开人有两种
,一种是直接卷铺盖,另一种是上PIP(表现改良计划)。区别是前者是死刑,后者是死
缓,结果都是走人。徐老师说Facebook越来越喜欢招H1b,因为只有他们想跑也跑不了
。那种被压迫的最底层就是上了PIP名单,再背一个一级事故的惊天黑锅的H1b。

小孩子才谈对错,成年人只讲利益。所以,加入Facebook后,不要有什么make the
world a better place的幼稚理想,拼命赚钱、拼命数钱就可以了。几年后在公司炒你
之前,把公司炒掉,即大功告成。

二、工具链

Facebook有dogfood文化,自己的产品自己用。他们工作的主要工具是Facebook for
Work或者叫Workplace,是大众用的Facebook的内部版本。这里有个问题:Facebook是
社交工具,主要任务是让用户粘在上面,耗费尽可能多的时长;用在工作场合,则分散
精力,让人疲惫。

徐老师谈到这一点的时候,表情憔悴,因为这玩意实在太难用了:所有的信息流不是按
时间摆放的,而是算法自作主张安排的。各种信息分散在不同的人名下,跟踪一个项目
需要不停的人肉搜索。编程的同时还要不停的刷网页,生怕漏掉重要的信息。另外,
Facebook没有email,任何人想到你就message,然后你的手机就哔哔叫,昼夜如此,周
末也逃不掉。这是Facebook程序员压力大的一个重要原因。

Facebook有不成文的周末工作的要求。第一,版本定型一般是在星期天晚上;第二,经
理提需求一般是在星期五下午。这样你周末必须工作,否则赶不上星期天晚上的版本定
型,或者星期一早上跟老板没法交差。Facebook的人周末都忙。找男/女朋友不要找在
Facebook正在工作的,因为他们肯定没有时间;一定要找Facebook工作过的,因为他们
肯定有钱。

所以,在加入Facebook之前,请务必背熟Facebook网页版的快捷键,并了解newsfeed的
后台算法。这里插一句广告,我听说有在Facebook工作过的朋友,自己开发了爬虫和
Chrome Plugin,让机器人去网页上整理和报告有价值的信息,效果不错。如果需要购
买,请私信联系。

三、刷考评

Facebook的考评标准有四条,impact, better engineering, people, direction。徐
老师说,impact和better engineering是互相抵触的,而people和direction又是自相
矛盾。要impact就要不停的写垃圾代码,把功能跑起来再说,产品deliever得越快越好
,这样就不是better engineering了。要direction就要控制节奏,掌握方向,争取以
我为主,take ownership。大家都这么想的话,唯一的办法是互相贬低和拆台。于是
people就没有了,同事之间不可能有友好的关系。

这是一个四选二的问题:impact和direction比较好量化,代码行数和文档字数随时可
以看到;better engineering和people就比较难量化了:代码写得好有什么标准?人际
关系好有什么标准?所以impact + direction是一个比较流行的技能树。

在Facebook碰到比较mean,动不动说你代码是狗屎的同事,也不要大惊小怪。他们只是
在刷输出,求生存而已。当然,如果是美女程序员的话,往impact + people加点数似
乎更容易一些。

动作要快和果决。比如开会的时候,有的同事还在一无所知地征求意见,有的拿出来通
宵写好的design document,而你早已经把原型写好,代码入库,一下子把他们统统打
倒。这样,winners take all, 你就占上风了,impact+10,direction+10。

四、抱大腿

跪舔术是非常有用的。在内网里面发个动态就能收到几百赞,或者几十页评论的网红都
是大佬,记住他们的名字。你要做的是无脑跪舔,第一时间发动初始技能抢沙发术。久
而久之,大佬看到你孺子可教,说不定就让你改个Readme的错字什么的,你的diff来了
,impact也来了。这是成功的第一步。

技术相关的不要随便点赞或者表态,这涉及到你的态度。你不知道最终选择哪种技术路
线,或者关系到哪些人马的利益。这是个站队问题,慎重。

Facebook是成熟的商业模式,养这么多一样的组是为了内部赛马。各个组老板们能力不
一样,有的抢的项目是金蛋,有的是黑锅。要是你老板抢的总是黑锅项目,说明这是条
沉船。二话不说,赶快跳船,换到有前途的组。记住,跳船晚了有很严重的后果。

另外,Facebook有很多黑帮,非洲组,印度裔,女拳,俄罗斯天团等等。徐老师说最强
的势力是LGBT彩虹帮。可惜没有哪个黑帮可以罩着徐老师这种亚裔直男。这也很无奈,
因为没法改变性向和肤色。

五、背刺术

徐老师讲了个故事,他和一个女程序员合作个项目。这个女程序员以前只跟女的合作,
看上去是女拳那边的人,也有可能来自彩虹帮。有一天,他的老婆带着孩子回日本了,
要跟他分手。他很沮丧,于是下午五点钟就打卡回家了。结果该女反手把他举报给了管
理层,说他工作不努力,兼不尊重女性,弄得他一身屎。徐老师开始搞不明白为什么,
后来分析:该女也是Staff Software Engineer,跟他一个级别。在Facebook,每次考
核同级别的人放在一起,然后强制弄个曲线。这叫做stack ranking。如果别人危险一
点,当然自己就安全一点。所以背刺队友一下,只有好处,没有坏处。

以上是徐老师的经验总结。如果您已经融会贯通,恭喜!您已经可以在Facebook,或者
世界上其他任何一个软件公司生存下去。如果没有,也不要紧。多加训练,总有一天您
会出人头地的。

记住, 在你加入FB的第一天起,你就是在为自己战斗,而且只为自己战斗 。你跟任何
人都不在一条船上。你从来不需要真相,只相信金钱和包裹。你为生存而战斗,为战斗
而生存。

这是有史以来最好的公司!你看,Google的免费午餐是开水煮白菜;而你在Facebook可
以吃到最好的冰淇淋,喝到最好的咖啡。这是你的运气,你加入了一个强大而神秘的组
织。你可以同组织的最高首脑谈笑风生,有机会问他一些愉快的问题。但是,你不能泄
露组织的任何秘密。否则组织会追杀你到天涯海角。

对了,你有责任去用各种手段去除那些反对组织的声音,包括知乎上的评论。只要你忠
心耿耿,组织会帮助你实现所有梦想:钱,绿卡和别人的羡慕。Imagine that day!

你鄙视那些996.ICU的程序员,因为他们连996都干不了,而你可以7*24的工作;你鄙视
那些倒下的同伴,因为他们弱,不敢跳船,只有跳楼。而且他们的命运跟你毫不相干,
你为什么要给他们说话;你鄙视徐老师,因为他被组织开除了,22万base加28万rsu没
有了,老婆也跑了。只有low到油管骗点击维生;而且违反组织纪律,整天瞎说大实话
。迟早组织要收拾他。

他们都是loser,你从来不屑提到他们。只有强者才能生存,而你毫无疑问是那个幸存
到最后的,最强大的,Facebook程序员。

Comments


  1. 据内线消息,现在已经开始不给pip,直接fire,给一个月工资作为补偿。

    ReplyDelete
  2. 股价不好是必然要裁员降成本的,先给一个心理预期

    ReplyDelete
  3. 不过meta最大问题是中高层管理者太差,对产品理解脱节。下面一群奋斗逼又喜欢瞎搞。

    ReplyDelete
  4. 上面没vision
    下面自我感动无效卷

    ReplyDelete


  5. 的确多,但是这不是关键。AI在有了明确盈利模式之后可以实现利润扩大。但是没有盈
    利模式的时候基本上等于0,因为没人用你的服务,你也没数据可以挖。

    他这个东西现在的主要原因就是第一没什么人用,第二一果子什么的盯死app随便搜集
    用户数据这个,这两件事都是影响数据的摄入量,这个点上搞再多的ML都没用。需要的
    是搞出新玩法让人来玩,到时候怎么搞ML都无所谓。

    对比一下google,不管怎么吹AI,都从来不没有松强化自己的服务和基础架构。其实说
    实话,youtube的广告投放算法非常烂,但是这不影响google赚钱。因为别人有用户(
    youtube活跃人数),别人控制了数据pipeline(android这个大木马)。

    所以他们的当误之急是找能做产品和服务的能手,结果别的地方freeze还在大撒比搞一
    些刷题的MLE,除了招一堆没用的,还有一个很严重的后果就是别人人看到了会跑路,
    牛人也不会去。

    ReplyDelete
  6. fb还是很恐怖的赚钱机器,去年1800亿收入,400亿利润,如果按人头来算,每个产出1.5M,50万的利润。如此多现金至少2,3年生存没问题的,当然今年逆风,收入能维持都不错了。但是未来如何增长,股价能不能重生?还是等半年再说。

    ReplyDelete
  7. 小扎应该为tiktok,ios政策没有及时改变跟进承担责任,为消失的5000亿负责。现在充满危机的时候,把所有cash都砸到一个没人理解的元宇宙概念上,不是做新奇有趣项目时候啊。搞这些只会分散注意力,关键是这不是创业公司,你只要想出最疯狂的事情能得到奖励的。.

    ReplyDelete
  8. meta不开发新的应用就注定了体量不够。8000亿市值不可能只靠一个没有人用的社交网络撑起来。但是没有人愿意去那里搞产品,拿三流mle一半的钱然后高很多因为产品夭折被裁的概率,不可能的。

    ReplyDelete

  9. 工作的产出回报就那样,工资和产出匹配就可以了,不必和同组的打价格战,看谁的时薪低。相反,读书而是在比谁每个小时学习的学费低。

    ReplyDelete

  10. 这个周末manager们会制定好名单 - 有的manager也会被上级放入名单,裁完人后,自己也会被裁。

    ReplyDelete

  11. 最坏的情况是下周宣布直接裁员。如果公司不承认裁员,只说是PIP,那说明裁员比例不高。
    但即使是PIP(找出“need support/需要支持“的员工给与支持),公司的意思也很明确:找出绩效不佳的员工(low performer),让他们走人(exit people)。总之,唯一的悬念是规模到底有多大(layoff or pip比例)。

    ReplyDelete

  12. 过去几年大风大浪很多,美国科技公司裁员时有发生,总结几个要点:
    1. 管理层成熟的公司会尽量只裁一轮,减少动荡。
    2. 裁员消息极少是突遭“泄露”的,都是管理层定下来了,以各种方式“放”出来的. 1point3acres.com
    3. layoff package很重要,缓冲时间越多越好。. check 1point3acres for more.
    4. 如果出现多轮裁员,越早被裁掉越好。一方面,layoff package可能更好;另一方面,抓紧跳槽去其他公司占坑。
    5. 每个业务部门、每个org裁员比例可能不一样。你的manager如果级别不高,很可能也不知道裁员比例,但他/她会把最想裁掉的人,按照优先级标注好。. 1point 3acres
    6. 通常情况下,跟公司核心盈利业务紧密的组更安全;烧钱多(人也多)但没有快速增长的部门,裁员更狠。

    以上,未必适用meta的情况。也衷心祝愿 雷声大雨点小,最终只是pip掉少数人。
    祝各位好运。. check 1point3acres for more.
    - Warald

    ReplyDelete

Post a Comment

https://gengwg.blogspot.com/

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...