👆关注WE Career 获第一手北美职场资讯
现在不少新成立的公司或者团队一般都没有定义明确的职能分工和职位名称,你可能会听他们标榜说“我们采用扁平化的管理架构,自由平等”,“职位头衔不重要,我们不在乎”。但事实上这是一种错误的傲慢。我们来看几个例子:
Frank希望升职到“高级”,但是我们认为他的能力还不够,他问为什么?→ 我们需要清楚明确地向他解释不同级别间的差别,并且给他如何进步的建议。
有一位候选人,我们很满意,但是在给她level 2 还是leve 3 的职位时出现了分歧。→ 如果没有明确的等级门槛,招聘时的决策就将不能够客观公正。
我们这个startup并没有定过正式的职位名称。最近,我们刚得到了A轮融资,同时有了新的领导团队。几次会议后,他们给公司里的每个工程师分配了新的职位级别,不少工程师都生气自己只得到了“Junior”。→ 看,不在乎的东西现在在乎了把,这下大家都不高兴了。
几年前我们雇佣了Karen,他的年薪是$85k。今年夏天我们招了Noreen,和Facebook竞价了一阵后,她的年薪最终定为$120k。而Karen和Noreen其实做着相同的工作。一次偶然间,Karen知道了Noreen的工资。→ 完蛋了。我们支付不起每个人都$120k的年薪,而Karen有权利去投诉。
科技公司都应该仔细考虑和制定工程师的职业等级,通过职业等级来向员工们介绍各个等级的工作职责、差异、和发展空间。
因此,这篇文章会探讨以下几个问题:为什么职业等级对每个人有益?怎样才是好的等级制度?可推荐的等级模型及一些相关建议。希望无论是工程师,还是管理者,看完文章后都能获得一些新的看法。
(注:这里只讨论工程师IC,暂不涉及到管理、产品方面的职业等级。)
“职业等级”意味着一个高度结构化和稳定的行业中,通往有意义的终点的长期途径。但是现在的职场充满变数和各种可能性,跳槽情况频繁。因此,不要把职业等级设想为一个终身的计划。人们很容易就去关注阶梯的最顶端,但其实,下一等级才是最重要的。这个梯子是用来为未来的几年设定目标和计划。
职业等级既是帮助员工,也是帮助公司。
  • 管理:一个好的经理需要定期给员工提供工作表现上的反馈,并帮助他们提高薄弱的技能。职业等级就是一份公平客观的框架来规范这些指标。
  • 招聘:好的职业等级设置能在招聘中给候选人定级别更加容易。团队可以为不同的级别设置标准化的要求和门槛,招聘时只要和候选人的条件逐条进行比较确认就能方便的定下级别。
  • 薪酬:只要你开始招聘,你就要决定他们的薪资。你需要有一份和市场对应的内部薪酬等级制度。
什么是好的职业等级?
好的职业等级应当包括以下几方面:
  • 明确和解释不同级别间的差别,尽可能的详细。每一个级别对应的是不同的职位,而不仅仅是技术上的差别,你需要明确不同的分工。
  • 告诉员工哪些技能对升职和自我发展最为重要。职业等级是员工的职业发展计划书,也是你在做员工评估时用到的标准。
  • 与公司文化和价值相一致。职业等级中会规定一些重要的技能和品质,这些必须要和公司的文化和追求相一致,是你希望员工在和客户打交道、解决技术问题、做决策时他们会用到的。
  • 简明扼要。结构清晰,陈述简练。
反面教材:
  • 职位描述与需求不匹配。对级别和价值的描述与我们日常中做的和实际需要的不一致。
  • 对技能和要求的冗长描述。这份职业等级将会是员工的职业发展手册。如果描述过于繁琐,员工很有可能只关注到了细节,而忽略了更为重要的不同等级间的区别。
  • 机械的描述。一些科技公司可能会把这当作制定机械程序。但其实,管理这些事物的是普通人,所以,用生活化的语言来写。
相比于区别技术等级,更倾向于根据工作指责和负责范围制定的职业阶梯。比如下面这个模型,因为它很好地反映了任务被分解和分配的方式,并且明确了不同级别之间应有的差异。

当然,对工程师来说,技术也很重要。每个软件工程师都必须能够在团队中写代码、解决客户问题。我归纳为以下几点能力:
  • 编程能力:写代码,设计程序,测试,系统维护
  • 交流:逻辑清晰,积极主动,高效,团队协作
  • 批判性思维:善于质疑纠错,明确需求
  • 主动性:进取,承担责任,从一而终
这些能力相当灵活,没有明显的阶梯区别,建议的职业等级是包含了这些特性的重要性,但没有给出具体的描述。
我推荐的“职业等级”
Level 1
职位名称:初级软件工程师
职责:构建明确的内容,调查和修复错误,编写测试。沟通进度,明确困难。找到工作与生活的平衡。
可能存在的问题:代码能力弱。主动性不高,有时需要有人告诉他们下一步该做什么。自我观点不够明确。相比于卷起袖子干,更容易抱怨。态度消极,容易忽视团队流程。
经验:0-3年
初级工程师是公司的新鲜血液和未来。他们一般做你分配给他们的任务。他们在项目规划、任务分解中需要别人的帮助。团队负责人应当时常检查他们是否在正确的轨道上。
我更喜欢直接用“软件工程师”这个title,去掉“初级”,因为没人喜欢被叫“初级”。在公司内部,可以就把这一级叫做Level 1。
我发现Level 1候选人的面试是最难安排的。因为他们的技术水平其实都差不多,主动性和批判式思维更重要。但这两个能力很难在一两个小时内得到验证。一般Level 1的工程师会在两年内升到level 2。
Level 2
职位名称:高级软件工程师
职责:有一块擅长的内容。能将大的任务分割成小的。写测试计划。承担运营责任。设定可行的目标,并去实现。检查代码。帮助指导新员工。
可能存在的问题:无法安排工作优先级。分析和沟通能力欠缺。拖延进度。解决方案复杂。
经验:1-8年
Level 2的工程师已经可以独当一面了。你可以信任他们去独立地工作—分解复杂的任务、做出合理的决策。沟通能力和批判性思维在这一阶段至关重要。


这一级应该被称为“软件工程师”还是“高级软件工程师”?我也有些犹豫,不过更倾向于在名片和LinkedIn上将Level 2和Level 3 都标为“高级软件工程师”,在内部就按级别区分。

Level 2的工程师需要证明他们可以承担更多工作和责任,才能晋升到Level 3。
Level 3
职位名称:高级软件工程师
职责:负责整个产品或大型项目的开发和推广。在开始重大项目之前编写技术规范、鉴定风险、设定标准。尽量减少复杂性。根据需要,也会做“技术负责人”,以推动完成计划。
可能存在的问题:傲慢。不懂得分配任务。总是说“是”却搞砸项目。在执行前考虑不周。不重视细节。对风险或人员问题估计不足。无视新技术或行业趋势。
经验:5年以上
Level 3 的工程师负责整个产品(例如整个应用程序或服务套件)。除了技术工作外,他们还需了解公司动态和良好的流程。
高级工程师经常还有另外一个身份——“技术负责人”。这意味着他们还承担了项目管理和流程监督这一不讨好的工作。他们负责让项目按时进行。
Level 3是一个特殊的位置。有不少这一级别的工程师会愿意稳定在这个位置,做一个个人贡献者(IC),而不想转向管理或架构。
Level 4 及以上
职位名称:架构师,或首席工程师 等
职责:负责跨团队的项目。与CTO和其他架构师合作,选择新技术,提高效率。在某些关键领域拥有技术专长。对评估和测试有丰富的经验。除技术外了解运营成本,销售,招聘等多个方面。
可能存在的问题:不切实际,花太多时间追逐最新的“闪亮”技术。不合作不提问。居高临下。对领导层不满。
经验:8年以上
Level 4 工程师是能够评估系统平台上的决策并制定公司长期技术战略的架构师。他们通常有两个角色,既可以作为技术团队的个人贡献者,也可以作为与CTO共事的架构审阅者。这个级别的工程师应当既谦虚又外向,他们负责鼓励技术团队。
其他职业等级制度
当然了,上面的职业等级制度只是一家之言。不同的人,不同的公司可能在分级上存在一定的差异。以下其他的等级制度也可供参考:
Text Career Ladder, publichttp://t.cn/E5eZcXI
Software Development/Leadership Ladder, multi-track, publichttp://t.cn/RyQ7urW
Fog Creek Professional Ladderhttp://t.cn/E5eZ6IX
通过比较不同的职业等级划分,你会看到差异主要集中在以下几个方面:
  • 对IC(Individual Contributor)来说,总共到底应该划分几个等级(3 or 6)?那些超级资深的工程师如何划分?
  • 你的职业等级划分到底要细化到什么程度?
  • "Tech Lead“这个职称具体的角色和责任到底是什么?
  • 谁对项目管理(Project Management)进行负责?
什么时候需要制定工程师职业等级制度?
我建议是在你有了5-10名程序员,并且开始考虑招聘全职经理的时候,同时也要考虑明确划分不同的职位职能和职业路径。
谁来写这个制度?
我建议两种方式:
  • 可以由一位技术经理写个草稿,然后技术管理团队一起来讨论和改进。
  • 每一位技术经理个出一份草稿,然后一同比较整合。
职位名称很重要
有些人会说“职位名称不重要”,这只是说“职位名称在这个时间点不重要”。随着公司的发展壮大,职位等级的建立是必不可少的。头衔就是等级的代表,也代表了你的薪水和工作内容。换工作时,上一份工作的头衔会用来考量你和给你制定薪资。
所以,永远记得明确你的职位名称和职能。
  • 将薪水和等级挂钩,公平的奖励绩效
雇主应当根据行业水平为每个工作级别建立对应的工资范围。 这虽然限制了他们用高薪招聘优质候选人,或大幅加薪奖励表现出色的员工; 但这是唯一经验证可以控制预算并避免不公平的方法。
一次性的股权奖励,比如,将原本超过2年的奖励在一年能发放,是奖励非凡业绩的一种方式。 这向关键员工表达了即使你可能无法给他们大幅加薪,你仍然重视他们的贡献,并希望他们长期坚持下去。
  • 根据能力升职,而非资历
升职其实并不是奖励过去的表现,相反,管理层通过升职来鼓励那些表现出潜力的人去解决更高一级,更复杂的问题。 — Ray Weiss,The Technical Career Navigator (Prentice Hall,1994)
为已经具备了下一级工作能力的人升职。如果一个Level 2的程序员想要升职,那么他应该证明他已经可以做Level 3的工作。你作为经理的职责,就是交给他们任务去试手。(如果他们还没有准备好,也不要责怪)
千万不要认为升职是时间到了就该有的事,也不要为那些能力还不达标的人升职。
  • 不要强求CS学位
对level 1-3的工程师来说,正规的专业教育和成功与否其实并没有相关性。我招到了不少优秀的候选人,他们或是自学,或是来自六个月的编程训练营。现在,我已经不再要求候选人必须要有CS本科学位,也不再在面试上问过于繁重的算法问题。
但是Level 4工程师是个例外。这个级别要求在算法、系统、架构等方面有坚实的专业基础。
合同工和实习生是否适用于这种职业等级?
你对合同工的评估不是关于他们的等级,而是他们是否有能力完成某个特定的项目。
实习生事实上还不在这些等级内,因为你还并没有真正的雇佣他们成为全职员工。我对雇佣实习生的建议是:
  • 招实习生应当是为了挑选其中优秀的人成为第二年Level 1的员工
  • 因此,只招聘那些一年之内将毕业的学生,低年级或者还没准备进入就业市场的研究生就别考虑了。
  • 招聘实习生的标准:到明年,他能到达我们初级工程师的标准吗?优秀的人其实一早就能看出来了。
总结
雇员们会想知道,自己在这个组织中处于什么样的位置。有清楚的职业等级划分、每一级的指责和标准如何,能让公司中每个人的工作都更容易。
在制定工作等级时,记住:
  • 工作等级与公司的组织架构相匹配(职能,管理线,汇报线等)
  • 招聘和升职的标准与公司的价值观相契合
  • 公平。你可以逐渐调整细节,但永远要记得“公平”的原则。每个人都应该严格遵守,否则,你建立起的文化和效率就会土崩瓦解。好的工等级制度可以平衡竞争环境,制定规则。

REF:https://blog.usejournal.com/the-software-engineering-job-ladder-4bf70b4c24f3
AI芯片公司招聘软硬件工程师
成立于硅谷,该公司是一家以AI芯片为核心技术的创业公司,拥有从 3D 传感器、特定领域 AI 芯片到软件的全栈解决方案,目前在硅谷和中国深圳均有团队。目前国内开放以下职位:
Firmware Engineer
Location
Shenzhen, China
Primary Responsibilities
  • Support customers to develop/migrate application programs based on our hardware platform.
  • Evaluate and optimize customer applications' performance and power consumption.
  • Work with system engineer to debug our software/hardware system;
  • Feedback improving suggestions to hardware/architecture design.
Qualifications
  • Minimum BS degree in CS, SW, EE or other equivalent fields; higher degree is preferable. BS needs to have > 3 years of industrial experience.
  • Solid understanding about Linux kernel and compiler.
  • Solid knowledge about software/hardware co-design.
  • Knowledge about machine learning applications is a plus.
  • Excellent programming skills with C/C++.
  • Good scripting skills with Python/Shell.
  • Proficient communication in English - both orally and in writing form.
  • Self-driven, result-oriented; able to multi-task and determine priorities.
  • A proven fast learner and a team player.
  • Experience of working with foreign coworkers and remote teams is a plus.
AI Accelerator Software Systems Engineer
Location
Shenzhen, China
Primamry Responsibilities
  • Implement and debug existing ML models and kernels, including TensorFlow kernels, targeting hardware.
  • Optimize models for latency, throughput, power, and memory footprint.
  • Optimize power, performance, and memory footprint of Linux build for hardware.
  • Build out unit testing and continuous systems integration testing infrastructure for software build.
  • Help design and implement APIs for model programming, updating,monitoring, and debugging.
  • Work with software team to advise hardware team on device features to support current and future software.
Qualifications
  • Minimum BS degree in CS, SW, IT, EE or other equivalent fields; higher degree is preferable. BS needs to have > 3 years of industrial experience.
  • Highly proficient in C, C++, and Python.
  • Experience with Linux programming and knowledge in Op Sys.
  • Experience with software performance measurement and optimization.
  • Experience with hardware / software co-design.
  • Solid understanding of low power optimization.
  • Proficient communication in English - both orally and in writing form.
  • Self-driven, result-oriented; able to multi-task and determine priorities.
  • A proven fast learner and a team player.
  • Experience of working with foreign coworkers and remote teams is a plus.
RTL Designer
Location
Shenzhen, China
Primary Responsibilities
  • Design RTL for our CPU-centric Machine Learning ASIC chip.
  • Optimize timing and power consumption.
  • Support functionality debug in simulation and emulation.
  • Write timing/power constraint for the design
Qualifications
Must
  • MS or PhD degree in Electrical Engineering, Computer Science, Physics, Mathematics or equivalent disciplines.
  • MS with > 2 years of industrial experience; more experiences and capability will correspond to higher job levels.
  • Excellent RTL design skills with System Verilog.
  • Good scripting skills with Python/Perl/Tcl.
  • Solid understanding of low power optimization.
  • Proficient communication in English - both orally and in writing form.
  • Self-driven, result-oriented; able to multi-task and determine priorities.
  • A proven fast learner and a team player.
Preferred
  • Knowledge and experience with RISC-V ISA is highly desired.
  • Knowledge about CPU architecture and memory hierarchy.
  • Experience of working with foreign coworkers and remote teams is a plus.
Design Verification Engineer
Location
Shenzhen, China
Primamry Responsibilities
  • Verifying the design, architecture and micro-architecture using advanced verification methodologies.
  • Defining the verification scope and contributing to the development of the verification infrastructure.
  • Collaborating with architects, designers, and software engineers across sites to accomplish verification targets
Qualifications
  • A BS degree in Electrical Engineering, Computer Science or other equivalent disciplines with > 5 years of relevant work or research experience, or a MS degree of the above areas with > 2 years of similar experience.
  • Experience in verification using random stimulus along with functional coverage and assertion-based verification methodologies.
  • Fluency in Object Oriented Programming with C++ and/or SystemVerilog.
  • Exposure to design and verification tools (VCS or equivalent simulation tools, debug tools like Debussy, GDB), and methodologies (UVM or equivalent)
  • Passionate about debugging and comprehensive problem-solving skills.
  • High proficiency in English - both orally and in writing form.
  • Excellent communication skills; both articulate and a good listener.
  • Self-driven, result-oriented; able to multi-task and determine priorities.
  • A proven fast learner and a team player.
  • Experience of working with foreign coworkers and remote teams is a plus.
申请方式
发送简历至 [email protected]
标题注明“职位+姓名“
推荐阅读
继续阅读
阅读原文