小赖子的英国生活和资讯

说说软件工程师的职位头衔(Title)和级别

阅读 桌面完整版

我现在在GE做软件工程师, 职位头衔是 Staff Software Engineer 翻译过来是 资深软件工程师. 我见过的软件工程师的职位(Software Engineer) 有以下几种:

上面说的这些职位头衔并不是绝对的, 比如一般来说只有美国IT公司会用到 Staff Software Engineer. 而在欧洲, 还有以下几个级别:

当然这些级别也可以应用到其它职位, 比如 Senior Solution Architect 高级方案架构师, Prinicpal Technical Architect 首席技术架构师, 等等. 一般来说, 小公司晋升较容易: 一是人少(竞争少), 没几年新人招进来, 自然需要把你提拔上去(虽然可能你的能力很不幸还没到那个级别).

美帝在这 (Senior Staff) 之上有 Principal, Distinguished 和 更高一级的 Senior Principal, 甚至还有 Fellow 大牛级别. 比如 Google 就有 Google Fellow (L10) 和 Senior Google Fellow (L11). 这两级别很难很难升, 除非对公司或者人类算法有巨大的贡献吧.

相反大公司晋升较难, 因为人多, 竞争激烈, 大公司的产品线多, 需要很长的时间才能对大部分产品 架构和方方面面较为熟悉. 当然这也和你的经理有点关系, 好的经理能培训你, 给你创造机会, 很快的提拔你(这也是经理的一个KPI). 前面说的带我的那个大牛花了17年从 staff 晋升到 senior staff, 当然这不是特例, 我发现其他软件工程师也差不多得好几年才能被提拔.

software-engineer-level-promotion

初级码农在搬砖, 越高级的码农就得懂得多方面的知识, 甚至是运维(e.g. CI), 架构(e.g. 容器), 前两天推上一软件工程师很幽默的说Full Stack就是整个IT部门.

full-stack-vs-entire-it-department

艺多不压身, 一般对于小公司来说, 招 Full Stack 全栈程序员性价比很高, 而对于大公司来说, 有钱, 则就招得很专, 比如 运维工程师, 测试工程师啥的.

软件工程师最基本的技能就是 数据结构与算法, 然后在懂一两方面专业的知识, 比如 GPU 计算. 华为, ARM还有高通这些做芯片的招人的时候就比较喜欢招有这些硬件知识(底层操作系统, 编译器等)的软件工程师, 职位也比较专, 比如 Mobile GPU Software Engineer, Compiler Software Engineer 等. 这就很专了, 越跳越专, 竞争越来越少.

相反, 互联网大厂, FANG (Facebook, Amazon, Neflix, Google) 这些招人就是 Software Engineer, 只不过级别不同, 比如 Amazon的Software Development Engineer L4 就是刚毕业一两年的软件工程师, L6 就是 Senior 级别的工程师.

互联网程序员主要考察的能力就是 数据结构+算法, 还有就是架构: 怎么设计一个容错性, 可扩展 scalable 的系统.

对了, 谷哥/Google还有 SRE (Site Reliability Engineer) 大概是偏运维的软件工程师, 感觉需要 on-call 责任多一些吧.

对了, 大学里还有一种软件工程师: Research (Software) Engineer.

研究院也需要engineer, engineer给 researcher擦屁股, 研究院的鄙视链一般是 researcher – RSDE – SDE. 码农就是鄙视链最底层的.

问了经理说是不是我因为护照的原因去不了每年的MWC(Mobile World Congress),经理很实在的说, 不是, 因为你还没到principal级别.

researcher/研究员 的 hiring-bar 真是太高了, 竞争激烈, 背景全是 mit, harvard这种博士学位的, 然后看 publication/发表文献记录, 都是phd postdoc在神仙打架. 我们组经理就很鄙视英国的PHD, 他说只有3-4年, 学不到啥.

软件工程师和Engineer Manager经理的级别对应

我现在在微软的级别是63, 也就是Senior, 正在分叉口, 感觉工作十几年还只是个小Senior, 好失败. 一个是前面几年都在小厂(初创公司), 经验并不能transfer到大厂里, 一个是前两年跳槽比较频繁, 行业知识(Domain Knowledge)并没有积累.

软件工程师的终端级别/Terminal Level

在大厂里, 软件工程师到达一个级别后是可以不再需要往上爬升的, 这个称为 Terminal Level, 如果在此之前的级别, 奋斗多年要是没有往上升则会被认为能力不足, 很有可能会被 let go (裁员). Terminal级别也被称为舒适级别.

AMAZON的程序员的这个级别是L5, Meta/Facebook是E5, 微软/Microsoft是63, Google谷歌则是L5. 这些级别基本是Senior/高级, 再上去所需要考虑的(大局观)职责等就大了, 不再适用于大部分的软件工程师.

从Entry Level(毕业升)到达这个Terminal Level级别一般需要6年.

Levels.Fyi上的级别

Levels.Fyi上有级别说明:

初级工程师/Entry-Level通常是应届毕业生或专业经验有限的人员。他们在密切指导下完成明确的任务,并被期望快速学习和成长。

中级工程师/Mid-Level在其领域内已具备精湛的技能,能够独立处理大多数任务。他们参与设计讨论并指导初级团队成员。比如亚马逊的L5。

高级工程师/Senior是技术专家,负责推动复杂项目并影响团队方向。他们做出重要的架构决策,并被信任能够交付具有重大影响的工作成果。比如微软的63,亚麻的L6。谷歌的L5、Meta的E5。

高级工程师/Staff在组织层面发挥作用,为多个团队制定技术方向。他们致力于解决最具挑战性的问题,并塑造公司范围内的工程实践。比如微软的64、Meta的E6。

首席工程师是业内公认的专家,负责制定长期的技术愿景。

Entry-level engineers are typically new graduates or those with limited professional experience. They work on well-defined tasks under close supervision and are expected to learn and grow quickly.

Mid-level engineers have developed proficiency in their domain and can independently handle most tasks. They contribute to design discussions and mentor junior team members.

Senior engineers are technical experts who drive complex projects and influence team direction. They make significant architectural decisions and are trusted to deliver high-impact work.

Staff engineers operate at an organizational level, setting technical direction across multiple teams. They tackle the most challenging problems and shape company-wide engineering practices.

Principal engineers are industry-recognized experts who define long-term technical vision. They influence strategy at the executive level and represent the pinnacle of the individual contributor track.

英语: The Terminal Software Engineer Level

软件工程师

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version