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


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

  • Software Engineer Intern: 软件工程师实习生. GE剑桥每年都会有十几个从大学过来的实习生, 会被分到不同的组, 然后由不同的大牛带, 一般是12个月, 每年都会有迎新和欢送实习生的会, 很是温馨. 有了在大厂的实习工作经验对于以后再找工作(转正)很有帮助.
  • (Junior) Software Engineer: 初级软件工程师, 一般头衔不会加 Junior, 就是 Software Engineer. 我们组里的一个 Software Engineer 就是实习后立马转正的. 一般来说, 需要实习表现较为突出, 并且刚好公司项目有资金招人. 初级软件工程师一般需要大牛来带, 有时候需要和别的组员一起合作完成设计和功能的实现.
  • Senior Software Engineer: 高级软件工程师, 一般来说工作个三五年就能被提拔为这个级别. 这个级别的软件工程师绝大部分能很好的独立完成功能的设计, 实现和测试. 并且需要写文档.
  • Staff Software Engineer: 资深软件工程师, 是更高一级别, 除了高级的职责外, 还需要带一些组里的新人(初级和实习生). 有时候需要和项目经理, 产品经理等一起开会研讨功能和模块设计.
  • Senior Staff Software Engineer: 这个在公司里已经是很高级别了, 代表了技术大咖. 需要对公司的产品代码很熟悉, 并且需要参于架构功能等设计, 需要带新人. 比如我刚入职GE的时候就指定了一个Senior Staff SE来带我 (Mentor). 有时候 Senior Staff SE 还需要做敏捷开发的 SM (Scrum Master) 也就是每天例会上主持会议. 还有就是每两周的 planning meeting也需要亲力亲为.

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

  • Lead Software Engineer 或 Software Engineer Lead: 一般来说在一个公司干个四五年以上基本上就可以混个 Lead 了, 这个title 感觉和 Senior差不多, 唯一可能更高一点点的代表了对产品较熟悉, 而且可能在哪一个领域或者模块较有权威, 也会带新人.
  • Principal Software Engineer: 这个级别类似 Senior Staff SE, 翻译过来就是首席软件工程师.

当然这些级别也可以应用到其它职位, 比如 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 说说软件工程师的职位头衔(Title)和级别 I.T. 程序员 资讯

software-engineer-level-promotion

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

full-stack-vs-entire-it-department 说说软件工程师的职位头衔(Title)和级别 I.T. 程序员 资讯

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年, 学不到啥.

software-engineer-and-manager-levels-seniority 说说软件工程师的职位头衔(Title)和级别 I.T. 程序员 资讯

软件工程师和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

软件工程师

本文一共 1937 个汉字, 你数一下对不对.
说说软件工程师的职位头衔(Title)和级别. (AMP 移动加速版本)
上一篇: 避免选择低质量没保障的 VPS 公司
下一篇: GE的沙拉俱乐部

扫描二维码,分享本文到微信朋友圈
950e34b2943e95e744aed16140e7d98d 说说软件工程师的职位头衔(Title)和级别 I.T. 程序员 资讯

3 条评论

评论