一晃已经5年没有参加面试了,因为一直很享受当下的工作。今年1月,我参加了几场面试并拿到了**高级工程师 (Senior Engineer)** 和 **技术主管 (Tech Lead)** 两个职位的录用通知。从7月开始,我将正式入职新公司,告别这段陪伴我许久的现职工作。
最终我选择了高级工程师的录用通知。虽然被我拒绝的那个技术主管职位的年薪比我现在选的高出了100万日元(约4.7万人民币),但我依然有一颗“贪玩”的心,希望拥有充裕的业余时间打游戏、看电影、聚会喝酒。因此,我选择了高级工程师而非技术主管,因为我不想让工作占据太多的生活空间。
这篇文章虽然篇幅较长,但我希望能分享一下这次久违的求职经历:从最初产生面试念头,到最终拿到录用通知并拒绝另一份邀请,以及如何协商在半年后才入职。希望能给那些想要挑战高级工程师职位的初级开发者们提供一些参考。
最终我选择了高级工程师的录用通知。虽然被我拒绝的那个技术主管职位的年薪比我现在选的高出了100万日元(约4.7万人民币),但我依然有一颗“贪玩”的心,希望拥有充裕的业余时间打游戏、看电影、聚会喝酒。因此,我选择了高级工程师而非技术主管,因为我不想让工作占据太多的生活空间。
这篇文章虽然篇幅较长,但我希望能分享一下这次久违的求职经历:从最初产生面试念头,到最终拿到录用通知并拒绝另一份邀请,以及如何协商在半年后才入职。希望能给那些想要挑战高级工程师职位的初级开发者们提供一些参考。
机缘巧合
我今年原本并没有跳槽的打算,因为现职工作非常舒适且自由。某天,我心血来潮登录了闲置几年的 LinkedIn 更新了 profile,加上了刚考取的证书,当时也没设置成“寻找工作”的状态。结果从第二天起,各种 HR(大部分是说英语的,因为我的 LinkedIn 页面是全英文)就开始给我发职位描述(JD)了。
因为更新 LinkedIn 并不是为了换工作,所以起初我对这些职位并不太感兴趣。但转念一想,我已经 5 年没面试过任何公司了,也想测试一下经过这几年的积累,自己的水平是否达到了高级(Senior)的标准。于是我决定尝试一下,这也是我第一次面试高级工程师职位。
因为更新 LinkedIn 并不是为了换工作,所以起初我对这些职位并不太感兴趣。但转念一想,我已经 5 年没面试过任何公司了,也想测试一下经过这几年的积累,自己的水平是否达到了高级(Senior)的标准。于是我决定尝试一下,这也是我第一次面试高级工程师职位。
选择猎头/HR
虽然住在日本,但我非常喜欢在国际化(global)的环境中工作,身边有很多外国人,可以锻炼英语(虽然我的英语已经生疏了不少)。因此,我查看了发来私信的猎头背景及其提供的职位信息,最终挑选了两位主要联系人:一位美国人和一位日本人,他们分别来自两家看起来非常国际化的招聘机构。
筛选公司与职位
为了不浪费双方的时间,初期充分沟通彼此的期望至关重要,特别是最低薪资要求和入职时间。我向 HR 表达了我的诉求,例如:优先考虑远程办公、弹性工作制、可以短期回到母国(越南)远程工作、国际化团队氛围,以及最重要的——技术栈(tech stack),即我希望在工作中使用的技术。
HR 根据这些条件筛选并发送了许多匹配的职位描述。
在阅读职位信息时,我优先关注办公环境、福利待遇、技术栈,其次才是公司信息和参与的项目。这轮筛选中,我选出了大约 10 家公司投递简历。我选得比较多,是觉得反正随着面试轮次的增加总会挂掉一些的 😂
HR 根据这些条件筛选并发送了许多匹配的职位描述。
在阅读职位信息时,我优先关注办公环境、福利待遇、技术栈,其次才是公司信息和参与的项目。这轮筛选中,我选出了大约 10 家公司投递简历。我选得比较多,是觉得反正随着面试轮次的增加总会挂掉一些的 😂
面试流程
关于面试中的基础问题,如跳槽动机、选择该公司的原因、优缺点等,因为非常普遍,我就不在此赘述了。这篇文章我主要分享面试中的技术相关环节。
这次面试全程都是在线进行的。虽然每家公司的流程各异,但通常包括以下环节:
这次面试全程都是在线进行的。虽然每家公司的流程各异,但通常包括以下环节:
简历筛选
符合条件的简历才能进入面试。我也因为“履历书”和“职务经历书”上的经验与目标职位的薪资不匹配而被几家公司直接拒绝。
非正式面谈 (Casual interview)
可有可无。这通常是应聘者与公司员工在招聘流程正式开始前进行的轻松交流,旨在互相了解。
这不属于正式面试,所以言行和着装不需要像正式面试那样严谨。面谈后,如果双方觉得不合适,公司可以拒绝应聘者,应聘者也可以选择不再继续后续流程。
这不属于正式面试,所以言行和着装不需要像正式面试那样严谨。面谈后,如果双方觉得不合适,公司可以拒绝应聘者,应聘者也可以选择不再继续后续流程。
第一轮面试
通常由团队主管(Team Leader)和工程师(Engineer)主持。在简单的自我介绍后,公司会介绍公司概况和项目。接着由应聘者介绍自己在以往项目中的经验和能力,并阐述职业规划。
之后会进入技术问答环节,难度通常不小。
之后会进入技术问答环节,难度通常不小。
第二轮面试
通常由工程经理(Engineering Manager)或高级工程师主持。
这一轮公司不会再详细介绍规模和项目(因为第一轮讲过了),而是集中询问更多技术细节、如何解决项目中的棘手问题,以及项目管理和团队管理的经验。
这一轮的技术问题通常非常有深度。
这一轮公司不会再详细介绍规模和项目(因为第一轮讲过了),而是集中询问更多技术细节、如何解决项目中的棘手问题,以及项目管理和团队管理的经验。
这一轮的技术问题通常非常有深度。
技术测试
根据我的经验,通常分为以下几种形式:
- 按照要求完成一个项目,语言和框架可以从给定的列表中自由选择。例如:开发一个电影网站或电商网站的 API。
- 在规定时间内完成编程测试,从给定列表中选择语言。
- 逻辑智力测试(IQ test)、性格测试,或者通过阅读理解来测试日语水平。
- 按照要求完成一个项目,语言和框架可以从给定的列表中自由选择。例如:开发一个电影网站或电商网站的 API。
- 在规定时间内完成编程测试,从给定列表中选择语言。
- 逻辑智力测试(IQ test)、性格测试,或者通过阅读理解来测试日语水平。
终面
通过技术测试后进入最后一轮,通常由社长、董事或公司高层进行面试。
这一轮不涉及技术问题,更多的是考察性格、经验、解决问题的思路以及未来的职业发展方向。
这一轮不涉及技术问题,更多的是考察性格、经验、解决问题的思路以及未来的职业发展方向。
高级工程师面试涉及的部分技术内容
技术问题非常多,每一轮我都被问到了 20 个左右的技术相关问题。内容主要围绕以下技术点展开,除此之外还有很多我不记得的了:
- 敏捷开发 (Agile), SCRUM
- 使用 Git 进行代码管理,例如 rebase, cherry-pick
- 代码审查 (Code Review)
- 数据库,例如关系型数据库 (RDBMS) 的表结构设计
- MVC, MVP 和 MVVM 模型
- 设计模式 (Design Pattern)
- 测试,例如 TDD, BDD
- 缓存机制 (Caching)
- 代码重构 (Refactor)
- 用户界面与体验 (UI/UX)
- 持续集成与部署 (CI/CD)
- 搜索引擎优化 (SEO)
- Session, Cookie
- 后台任务 (Background job)
- 批处理任务 (Batch job)
- 无服务器架构 (Serverless)
- 搜索引擎,如 Elasticsearch
- 项目的云端配置,例如使用 AWS 时如何设计 EC2, ECS, S3, ALB, CDN
- 云服务的成本优化
- 性能优化、SQL 调优、N+1 查询问题
- 安全性,如 SQL 注入, XSS
- 敏捷开发 (Agile), SCRUM
- 使用 Git 进行代码管理,例如 rebase, cherry-pick
- 代码审查 (Code Review)
- 数据库,例如关系型数据库 (RDBMS) 的表结构设计
- MVC, MVP 和 MVVM 模型
- 设计模式 (Design Pattern)
- 测试,例如 TDD, BDD
- 缓存机制 (Caching)
- 代码重构 (Refactor)
- 用户界面与体验 (UI/UX)
- 持续集成与部署 (CI/CD)
- 搜索引擎优化 (SEO)
- Session, Cookie
- 后台任务 (Background job)
- 批处理任务 (Batch job)
- 无服务器架构 (Serverless)
- 搜索引擎,如 Elasticsearch
- 项目的云端配置,例如使用 AWS 时如何设计 EC2, ECS, S3, ALB, CDN
- 云服务的成本优化
- 性能优化、SQL 调优、N+1 查询问题
- 安全性,如 SQL 注入, XSS
获得录用通知与拒绝录用
我一直没有为了面试而刻意准备或死记硬背的习惯,面试时通常是想到什么就说什么。因此,无论结果如何,我都能坦然接受。在经过近一个月密集的面试后,我收到了两份录用通知(Offer)。
收到 Offer 后通常会有一个沟通环节,主要是双方致谢并确认一些入职细节。
考虑 Offer 的期限通常是一到两周。对我来说,这两个 Offer 都非常理想:工作时间自由、全远程办公、允许回越南远程工作。因此,我当时非常纠结。做出决定后,我给目标公司发邮件接受了邀请,同时也给另一家公司发邮件致谢并婉拒。随后,我也向在整个过程中协助我的 HR 们发送了致谢信息。
心情既开心又有些伤感。开心的是证明了自己已经具备了高级工程师的实力并即将步入新岗位;伤感的是要离开奋斗已久的地方,而且新环境里没有越南同事了。同时也做好了心理准备:新工作肯定会比现在面临更多的挑战和辛苦。
收到 Offer 后通常会有一个沟通环节,主要是双方致谢并确认一些入职细节。
考虑 Offer 的期限通常是一到两周。对我来说,这两个 Offer 都非常理想:工作时间自由、全远程办公、允许回越南远程工作。因此,我当时非常纠结。做出决定后,我给目标公司发邮件接受了邀请,同时也给另一家公司发邮件致谢并婉拒。随后,我也向在整个过程中协助我的 HR 们发送了致谢信息。
心情既开心又有些伤感。开心的是证明了自己已经具备了高级工程师的实力并即将步入新岗位;伤感的是要离开奋斗已久的地方,而且新环境里没有越南同事了。同时也做好了心理准备:新工作肯定会比现在面临更多的挑战和辛苦。












