关于 Level 和 Promotion,其实就那么简单
曾经有读者和朋友问我:一般硅谷工作了三四年以后,会是什么 level?找工作会拿到什么 package?拿到这个问题之后,我想了想,还是没有回答。其实三四年的时间,对于曾经在同一个起点的两个人,因为际遇、努力、和悟性的不同,实际拉开的距离还是蛮大的。不过下面的一些信息可以作为一点参考。
Performance Review
纵观 Google,Facebook,Twitter,Square,Airbnb,LinkedIn …… 其实内部的 performance review 流程都是很类似的,挑共同的重要的来说:
大部分的公司 performance review 一年两次。比如 Facebook 和 Airbnb 是六月和十二月,Google 是三月和九月,LinkedIn 是 二月和八月。每个 engineer 会根据之前六个月的表现来评分。而 Apple 一年只有一次,在九月。
各个公司分成的档次不同,通常是三个、五个、或七个。比如 Square 早年是三个: miss、meet 和 exceed expectation。Airbnb 和 Google 是五个,比如 Google 就是 not meet / meet / exceeds / strongly exceeds / superb。Airbnb 类似但叫法不一样。而 Facebook 则多到七个:not meet / meet some / meet most / meet / exceed / greatly exceed / redefine。
通常每个 engineer 的 review package 由self review, 若干个 peer review (一般2~5个), 以及 manager review 组成。为了减少 manager 的 bias, 不同组还会进行 calibration, 这样打分过严或过松的组会进行调整。
Bonus 和加薪
表现特别好,通常就会发一些 bonus。每个公司各不相同,而且规则可能随时会变。例如:
Facebook 的target bonus 是 10% (三级到四级) / 15% (五级), 每一档评分对应的系数分别是 0% / 50% / 85% / 125% / 200% / 300%,除此之外还有一个公司总体的系数,是根据整个公司在过去六个月的状况定的,一般在 85% 到 125% 之间,比如拿到 redefine 的员工,本次的 bonus 会是之前六个月底薪的 30% 乘以公司系数。
Google 的三月过后的 review cycle 会进行股票 refresh,九月过后的 review cycle 会计算年终 bonus。Bonus 计算大部分公司类似,基本工资乘以个人的 target(engineer 15% 起,级别越高这个比例越高)个人performance乘上一个公司总体的系数。
其他公司如 LinkedIn、Apple、Twitter、Airbnb 等都会用加薪和 / 或 bonus 来嘉奖好的表现(如果没有 promote)。通常公司会根据内部员工的工资水平和整个 Job Market 的薪资水平对员工待遇进行调整, 但加薪和 refresher 的调整通常一年只有一次。
Level 和 Promotion
首先每个公司都有一定的 level 制度。比如:
Facebook、Airbnb、Square、Apple 等都是最低为 level 3,往上有 L4,L5,一直到 L8 等(各司略有差别)
Twitter,有 L1,L2,然后往上是 senior,staff,senior staff,和 principle。
LinkedIn 则是entry、senior、staff、senior staff、和principle。
Googleengineer 级别从 3 开始一直到 11 级,从 5 级到 11 级分别是 senior,staff,senior staff, principal, distinguished, fellow, senior fellow
而 promotion 的过程也就各有千秋:
大部分公司会有一个 promotion committee,通常是比较固定的。而 Google 比较特殊。Google 的promo committee 全部由 engineer 自己组成,每个 review cycle,会有几百 promote committee 随机生成,每个 committee 一般5-6个人,会负责 review 15-20 个 promo packets。负责 review 你 promote packet 的 promo committe 都由比你至少高两级的 engineer 组成。
把所有的 performance review 的 feedback package 提交给这个 committee 之后,个人都要负责准备自己的promo packet。主要是 self assessment,还有找 peer review。你个人不准备 promo 的 review cycle,一般三个 peer review 就够了,promo cycle 一般多一些,6-10 左右。所有的 promo packet 都会由 promote committee 来 review,如果 committee 觉得可以 promo,会向公司推荐升职,基本上也就可以了。如果 fail 了,会告诉你具体的原因,然后下个 cycle 可以再来。
大部分公司的 promo 的标准都是:如果你现在是 L5,你想 promo 到 L6,那么你必须处于 L5 却 perform like a L6 至少两个 cycle。而你的 package 就是一些证明你一直 perform like a L6 的证据。
大部分公司升级要由 manager nominate。这里比较特殊的是 Google。Googleengineer 可以 self nominate,即使 manager 不挺你(也就是说你的 performance 的分数可能不够高),但只要你的 peer 都挺你,promo committee 那里过了,照样升职,当然这种永远是少数,每个 review cycle 这种都会有,但肯定不是主流。
Promote 之后工资水平、每年的假期等,也会有相应调整。
Tech Track v.s. Manager Track
上面说的大部分是针对纯走技术路线的 Level,其实通常公司都是有两个 career track。Individual Contributor(IC)Track 和 Manager Track。两个 track 的工资和股票等在相对 level 间是一样的标准。比如通常 L3 对应 M0,L4 对应 M1,以此类推。Track 间相对应 level 间的移动并不意味着 promotion 或者 demotion。
IC Track 的工程师负责技术相关的实现、代码和系统架构等。Manager Track 的工程师则更倾向于领导和帮助 IC 最大可能性的 perform 和 contribute,并做好组内资源、项目等的协调。
因为如此,很多硅谷的工程师可以在 IC Track 上一直有很好的发展并建立自己在技术上的深厚积累和话语权,并没有 “服从” manager 的说法。这也是为什么硅谷很多资深工程师并没有任何管理性 title。当然,有些公司会有 Tech Leader 一说,但不一定是个正式的职位。
公司间的 Level Matching
虽然各个公司都有类似的 level,但是当你换工作时,却并没有一定会相对 match 的说法。总的说来,Google 的 level 是公认的,Facebook 的也差不多,但 LinkedIn 的 level 似乎偏高,给的比较虚(也就是说他们的 L6 到 Google 很有可能拿不到 L6)。而其他如 Twitter、Square、Uber、Airbnb 等等相对较年轻的公司,level 就仅仅成了换工作时的一个参照。换工作时,通常会给一个相对应的 level,有的时候会降一个 level,但是很少会有升一个 level 的。此外换工作时候面试的表现对于 level 的 match 也极其重要。比如说,几个同时从 X 家进 Y 家的工程师,在 X 家是一样的 level,但是来了 Y 家大部分会被降一级录用,只有极少数面试表现特别好的保留了原来的 level。
面试表现、简历、推荐等因素在发 offer 时对 level 以及 package 的影响,每家公司各不相同,但也有很多规律可循,却又是另外一个话题了。
几点肺腑之言
前几个 level 的 promotion,基本比较简单,好好干,都会慢慢爬上去。但是根据不同人的能力和努力,时间可能不一样,见过好些人都是两年才能升一级。
硅谷的 eng manager 不一定比 IC 级别高。很多时候,manager track 的 promo 甚至更难。
越往后面 level 的 promo,越是拉开差距的时候。这时候,不仅技术,各项软技能,系统的理解和架构,交流和表达能力,写作能力,甚至情商,都起到极为重要的作用。
如果决定走技术路线,硬技能永远是最重要的。所有的软技能、情商,包括你的 level,没有实力作基础,都会显得虚了吧唧。关键的时候(比如换工作的时候)照样栽跟头。
跟对老板,有个挺你的靠谱的老板极为重要。
Level 越低,你犯错误的影响就越小,总有人给你把关甚至扛着。再往上走,你就成了承担责任的那个人。所以职场早期,不要怕尝试,不要怕错误,多干活,多动手。踩过的坑越多,从每个坑里收获的经验教训也越多,成长的也就越快。万水千山总是坑,说英雄,谁是英雄!
关于 Level 和 Promotion,其实就那么简单的更多相关文章
- Linux kernel的中断子系统之(四):High level irq event handler
返回目录:<ARM-Linux中断系统>. 总结:从架构相关的汇编处理跳转到Machine/控制器相关的handle_arch_irq,generic_handle_irq作为High l ...
- Linux中断 - High level irq event handler
一.前言 当外设触发一次中断后,一个大概的处理过程是: 1.具体CPU architecture相关的模块会进行现场保护,然后调用machine driver对应的中断处理handler 2.mach ...
- SVN部署与简单使用
原文发表于cu:2016-05-24 参考文档: http://www.tuicool.com/articles/Yv2iyu7 http://www.centoscn.com/CentosServe ...
- BI之SSAS完整实战教程3 -- 创建第一个多维数据集
上一篇我们已经完成了数据源的准备工作,现在我们就开始动手,创建第一个多维数据集(Cube). 文章提纲 使用多维数据集向导创建多维数据集 总结Cube设计器简介 维度细化 总结 一.使用向导创建多维数 ...
- 《InsideUE4》-8-GamePlay架构(七)GameMode和GameState
我的世界,我做主 引言 上文我们说到在Actor层次,UE用Controller来充当APawn的逻辑控制者,也有了可以接受玩家输入的PlayerController,和能自行行动的AIControl ...
- android 开发 - 网络图片加载库 Fresco 的使用。
概述 Fresco 是 facebook 的开源类库,它支持更有效的加载网络图片以及资源图片.它自带三级缓存功能,让图片显示更高效. 介绍 Fresco 是一个强大的图片加载组件. Fresco 中设 ...
- iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述
本文档尝试用Video Toolbox进行H.265(HEVC)硬件编码,视频源为iPhone后置摄像头.去年做完硬解H.264,没做编码,技能上感觉有些缺失.正好刚才发现CMFormatDescri ...
- (十一)if...else&for循环&while循环
----------------------------------if else------------------------------1.最基本的if语句:if name =="Al ...
- 汇编语言实现led灯的跑马灯
led实验1.看原理图 看设备工作的原理(可能需要阅读芯片手册),看设备与cpu的连接关系 GPIO具有输入输出功能.输入:cpu想知道io引脚是高电平还是低电平那么就是输入方式输出:cpu想控制io ...
随机推荐
- ObjectId与DateTime的互相转换
s会用mongdb中经常会需要用到通过“_id”去检查数据,筛选数据,但是想根据具体时间的id每次都需要做一下转换,这样搜索起来就很简单了. ObjectId转DateTime /// <sum ...
- pyqt5.8.2没有qt Designer和assistant exe
使用python3.6 pyqt5.8 eric6 创建完新的窗体后,弹出如下的错误: 解决方法: 1.安装pyqt5-tools 下载地址: https://pypi.python.org/pypi ...
- dialog--not attached to window manager
该异常表示view没有添加到窗口管理器,通常是我们dismiss对话框的时候,activity已经不存在了,建议不要在非UI线程操作对话框. [解决方案]:常发生这类Exception的情形都是,有一 ...
- vue.js 的环境搭建
转自简书: https://www.jianshu.com/p/0c6678671635
- Centos7下的systemctl命令与service和chkconfig
博主使用的操作系统是最新的CentOS 7,所以可能和网上一些老的博文有一定出入,那是因为版本更新的原因. 这里写图片描述1 service service命令用于对系统服务进行管理,比如启动(sta ...
- dubbo协议下的单一长连接与多线程并发如何协同工作
上班的路上突然就冒出了这么个问题:既然在dubbo中描述消费者和提供者之间采用的是单一长连接,那么如果消费者端是高并发多线程模型的web应用,单一长连接如何解决多线程并发请求问题呢? 其实如果不太了解 ...
- T-SQL 事务2
启用事务完成转账存储过程 use StudentManager go if exists(select * from sysobjects where name='usp_TransferAccoun ...
- 一行代码避免OkHttp的网络库应用被抓包
在建立socket连接之前,OkHttp会获取系统的代理信息,如果设置代理,那么通过DNS解析其IP然后使用代理IP来建立socket连接.如果没有设置代理,那么会使用请求中的url的IP地址,来建立 ...
- mysql表操作与权限操作
修改表ALTER TABLE 语法: . 修改表名 ALTER TABLE 表名 RENAME 新表名; . 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ...
- 基于IDEA环境下的Spark2.X程序开发
我们选择在线安装 这个是windows下的scala,直接双击安装就可以了 安装好之后可以验证一下 这个是我本地的jdk1.8安装包,直接双击安装 安装完成后可以验证一下 https://archiv ...