我是如何在两年内两次晋升为主管工程师的
原始链接: https://www.seangoedecke.com/staff-engineer-promotions
2021 年初,我在 Zendesk 晋升为主管软件工程师(Staff Software Engineer)。同年底,我跳槽到了 GitHub。2023 年初,我在 GitHub 再次晋升为主管软件工程师。在两年内成功经历两次晋升是一段非常有趣的体验,借此我想谈谈如何从高级工程师(Senior)跨越到主管工程师(Staff)。
如果你只是想要一个 Staff 的头衔,直接跳槽通常比内部晋升更容易。在科技行业,Senior 通常被认为是“职业终点”:一旦你达到这个级别,没人会因为你不继续向 Staff 冲刺而觉得你能力不行。内部晋升到 Staff 并不常见。如果你确实想获得内部晋升,需要具备哪些条件?
首先,我们要明白科技公司为什么会把员工从 Senior 提拔到 Staff。原因通常有两个:
- 公司高层(你的上两级或更高领导)认为某位工程师非常有价值,如果不提拔可能会离职。
- 公司高层希望某位工程师去领导特定的跨部门项目,而拥有 Staff 头衔能让项目推进得更顺利。
晋升绝不是因为某位工程师技术极强或者已经准备好去往下一级别,也不是因为他辅导了很多人、刚好满足了晋升考核表的各项指标。晋升是用来 留住 或 赋权给 有价值的工程师的工具。因此,要晋升为 Staff,你必须在组织内有知名度,并且被公司看重。
如何成为被公司看重的人?
每家公司都看重能成功交付(ship)的工程师(即成功执行公司计划和目标的人)。最直接的路径是:成功领导小项目,建立口碑后接手更大的项目,不断循环,直到你被委以承担高影响力工作的重任。这意味着你必须 做公司最重视的事情。如果公司近期转型做企业级市场,你就该做企业级项目;如果公司最近频发严重的故障,你就该去做可用性提升。
如果你做的是公司当前不关心的事情(哪怕你坚信它非常重要),你也很难晋升为主管工程师。我听过很多抱怨(包括现实中和网上的):工程师既沮丧公司不重视他们做的牛逼的性能优化或代码重构,又沮丧自己得不到晋升。这两件事其实是因果关系!你当然可以不顾公司当下的业务重心,但这会严重影响你的晋升机会。
作为 Staff 工程师,评价你的标准是成败,而不是付出了多少努力。公司高管一直都是这样被考核的,所以他们也不会对你讲人情。(顺便说一句,Senior 工程师其实也是这样被考核的,只是很多人没有意识到。)这意味着 你的项目必须成功。如果你技术能力薄弱,那这就是致命伤:除非有人拼尽全力去推进,否则项目几乎不可能成功。如果你想晋升,那个人必须是你。
辅导新人、领导力这些指标呢?
大家都会告诉你,Staff 职位意味着更多的领导力和辅导工作,以及更少的写代码时间。大体上确实如此,因为在组织中职位越高,你需要花在协调上的时间就越多。但在我看来,你不能仅仅靠成为优秀的导师或领导者来晋升 Staff。你得靠为公司交付实际价值来晋升。
唯一的一个例外是:有时候辅导和领导团队本身就是为公司创造价值。当我在 GitHub 晋升时,我在亚太区带起了一支小规模的工程团队,这成为了我的加分项,因为当时公司正急需培养工程师。然而,通过传统的交付项目来创造价值仍是必不可少的。如果我只做面试、新人培训和辅导工作,我不认为我能获得晋升。
在任何公司都能晋升到 Staff 吗?
不能!只有在设有 Staff 岗位且有晋升预算的公司才可以。如果你的公司没有这个级别,与其去说服他们为你破例,不如直接跳槽。
没有你直属经理的大力支持,你是不可能晋升的:他们需要和你一起准备晋升材料,帮你揣摩高层想要什么,提前向高层推销你以提高你的知名度,并确保你被指派为关键项目的负责人。这意味着你的经理必须精明强干,并且全力支持你。 如果你的经理能力不足、不喜欢你,或者认为你还没准备好,那你最好换团队或跳槽,而不是浪费半年时间去争取一个不可能的晋升。
注意,如果你很优秀且经理很聪明,他们是希望能提拔你的。手下有更多高级别员工对他们有好处,你的成功是他们领导有方的证明,而且提拔你能让你更好地帮他们出业绩。
此外,你还需要获得上两级经理的支持(因为最终决定权很可能在他们或他们老板手里),并在公司现有的 Staff 工程师圈子里有良好的口碑(因为管理层在提拔你之前,几乎都会悄悄去问那些他们信任的工程师的意见)。如果你搞砸了这两种关系,那就在情况改善前别指望晋升了。
总结
- 直接跳槽去其他公司做 Staff 通常更容易。
- 内部晋升需要你高度顺应公司的战略方向。
- 你必须成功交付公司在意的项目——别把时间浪费在个人的业余爱好项目上!
- 只要能成功领导项目,不用 太 过纠结于辅导和领导力这些条条框框。
- 你需要一位愿意且有能力为你做大量争取工作的经理。在确认这一点之前,别在晋升材料上白费力气。
如果你喜欢这篇文章,欢迎订阅接收我的新文章邮件通知,或者[在 Hacker News 上分享](news.ycombinator.com/submitlink?… I got promoted to staff engineer twice)。下面是一篇相关的文章预览:
如何在大厂成功交付项目
在过去大约 10 年的科技从业生涯中,我交付了许多不同的项目。当有不容有失的重要新项目时,我经常被点名去领导,因为我很擅长做这个。在大公司里推进项目交付和写代码是完全不同的技能,很多代码写得极好的人,交付能力却很糟糕。
继续阅读...