作者lollypop02 (大熊)
看板Soft_Job
标题[心得] 台积电到 Google TE/SWE - 职涯经验分享
时间Thu May 30 14:23:21 2024
网路上有关 Google Software Engineer (SWE) 的分享很多,
但很少关於 Test Engineer (TE) 面试和工作内容的讨论。
因为我的工作经验包含了半导体 (台积电) 到 Google TE 和 SWE,
希望能分享一路的过程给大家不同的职涯发展选择。
[背景]
2015 - 2021: tsmc - Engineer in Process Development Kit Department
2021 - 2024: Google - Test Engineer in Pixel
2024 至今: Google - Software Engineer in Pixel
[Google - Test Engineer 面试]
2020 年开始尝试,经过了两次面试後才拿到 offer。
面试时我都使用 Python,後面就不赘述。
第一次在 Phone Interview 就被刷掉,
理由是 Coding Style 和 Readability 有待加强。
所以後来针对 Python idioms 和 Google Python Code Style 补强,
间隔六个月後在 21 年又挑战一次。
第二次面试过程
Phone Interview: Code Interview + Test planning
面试官只问了基本的 Python 、 DS 问题和测试基本概念就过了,
完全出乎意料的轻松。
Onsite 1 - Code Interview + Test Planning
一题 leetcode medium 的问题,没有 follow up。
面试官重点放在 automation tests 的 best practice,
test pyramid 和 test flakiness 的观念。
Onsite 2 - Code Interview, General DS and Algorithm
1 题 leetcode easy + 2 题 leetcode medium 的题目。
印象深刻的是考了一题偏难的 Dynamic Programming 问题,
需要充分练习,不然很难在 45 分钟全部实作。
Onsite 3 - Test Design and Planning
类似 SWE 的 System Design。
给定一个情境,要求设计 Test Plan 和 Test Cases。
对於测试规划和不同测试方法要有一定程度的了解,
常用的专有名词要记得并能正确的使用在测试计划中。
Onsite 4 - Googleness behavior question
略
结果: 面试完当天就拿到 Offer 。
[Google - Software Engineer]
工作快两年後想尝试不同的挑战,所以开始准备转职成 SWE。
在 Google 有两种方法可以转换职称 (Role Transfer):
1. Job Ladder Transfer
和一般面试相同,找到想应徵的内部职缺後进行 2 ~ 3 场的 Onsite Interviews。
TE 算在 Technical Domain Experience,所以只需要 2 场面试。
2. Job Ladder Alignment
不需要面试。只要过去一年工作的内容和 SWE 的职责有高度相关,
并且在主管愿意推荐的情况下就可以直接转职。
第一次面试 - Software Engineer in Android
应徵了在美国东岸合作过的 Android 团队职缺,顺利得到面试机会。
Onsite 1 - Code Interview, General DS & Algorithm
Graph 相关问题,表现得没有很好。
花了太多时间解第一题後没有完成所有的 follow ups。
最後拿到了 LH (Leaning Hire) 的评价。
Onsite 2 - Code Interview, General DS & Algorithm
Dynamic programing 相关问题。
基本题为 leetcode medium 的题目,
follow ups 两题, 一题 medium 一题 hard,都有顺利解完。
拿到了 SH (Strong Hire)。
结果:HR 看完成绩後,认为两场的评价落差有点大。
但新团队愿意推荐我,所以还是可以进入下一步 (Hiring Committee)。
不过 22 年底开始大裁员,head count 突然被冻结後 就不了了之。
第二次 - Job Ladder Alignment as SWE in Pixel
由於在 23 年接手了 Test Infrastructure 开发的工作,
累计了约 20,000 行程式码,并且考绩都在平均以上,
在 team leader 的推荐下直接转成 SWE。
[关於 TE]
Google 的 TE 对於程式能力还是有一定的要求,
onsite interviews 至少要有一场是由 SWE 面试。
因此很常遇到面试者的测试经验丰富,但在 Code Interview 被刷掉的情况。
但相较於 SWE,TE Code Interview 的难度比较低,
通常只要能在 15 ~ 20 分钟内解完 Leetcode Midium 的题目都能顺利过关。
而测试相关的题目网路上有不少资源可以参考,
所以对於目标是 SWE 的面试者来说准备起来相对容易。
如果目标是加入 Google 的话,TE 不失为一个好选择。
而 TE 的薪资和 SWE 相当接近,差距应该在 10% 上下。
不过 TE 的缺点是工作上免不了手动测试,
大概只有 40% ~ 50% 左右的时间可以专注在程式开发。
在新功能发布前,能够写程式的时间可能会更少。
但程式码的贡献会影响年度考绩,如何在工作上取得平衡是 TE 需要面对的挑战。
另一方面,如果你的目标是朝向 SWE 发展,TE 当作过渡阶段还是可以提供不少好处。
例如公司内部免费的 Career Coach 谘询和 Code Interview 题库等。
并且 Job Ladder Transfer 仅需要两场 Code Interview,大大增加了通过面试的机会。
[关於内转]
Google 内部两种不同的转职方式各有优缺点。
Job Ladder Transfer 虽然需要面试,但准备方向简单并且可以自由选择想加入的团队。
不过缺点一样是需要花费心力练习,不然还是很容易被刷掉。
而 Job Ladder Alignment 虽然不用面试,
但要找到适合的专案并累积足够多的程式码需要相当多额外的精力。
并且要有主管的支持,在转职後短时间内不太容易换团队。
值得一题的是,在 Google 内部有相当多的资源可以帮助你准备面试。
有很多志愿的 Career Coach 愿意帮忙免费提供 Mock Interview 并指导你技巧。
我在准备面试期间就至少进行了 3 场 Mock Interviews,比起自己准备的确轻松不少。
题外话,个人感觉 Google 台湾和美国面试官的风格差别满多的。
台湾的面试官多半很要求实作的熟悉度和速度,
45 分钟内没有完成含 follow ups 三题左右的题目就很容易被刷掉。
但美国的面试官会花比较多时间在讨论问题,就算只完成一题,
只要面试者逻辑清楚、脉络明确,还是可以拿到不错的评价。
当然这不是绝对的就是了。
[结语]
就工作来说,Google TE 是一个不错的选择。
不过一般会花心力练习 Leetcode 和准备 Code Interview 的面试者,
通常都是将 SWE 当成目标,所以不太会考虑 TE。
我也是因为在台积电工作的背景而被 HR 推荐的情况下才尝试了 TE 这条路。
如果目标是加入 Google 但还需要更精进程式的话,可以考虑看看 TE。
或许能在求职的过程推你一把。
希望我的经验能帮助到你,愿每个人都可以找到心目中理想的工作。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.148.239 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1717050203.A.347.html
1F:推 cmelo1515: 推 强者中的强者 05/30 14:25
2F:→ holebro: test上swe强强强 05/30 14:48
3F:推 AgileSeptor: 推 05/30 14:52
4F:推 Jobaba: 推 用心分享 05/30 15:58
5F:推 hobnob: 推,超强 05/30 16:23
6F:推 blade123: 感谢分享,也是 TE 想追寻前辈脚步前进! 05/30 16:48
7F:推 rdg1231: 推分享,最近一堆强者的文章 05/30 16:57
8F:推 tbpfs: TE转SWE 薪水有变多吗? 05/30 17:07
刚转过去时几乎没有差别。
9F:推 jackflu: 用心推,感谢分享 05/30 17:08
10F:→ wizozd84070: 推分享 05/30 18:11
11F:推 ke265379ke: 台湾面试官的经验跟我以前经验相符,像是出考卷一样, 05/30 19:15
12F:→ ke265379ke: 只是来对答案的,标准答案和成见已经在心中,很难沟通 05/30 19:15
13F:→ ke265379ke: 讨论 05/30 19:15
14F:→ ke265379ke: 不否认我菜,改变不了别人,只好加强自己,学个经验 05/30 19:17
※ 编辑: lollypop02 (59.115.148.239 台湾), 05/30/2024 19:41:47
15F:推 Tix: 赞!感谢分享 05/30 21:44
16F:推 viper9709: 推分享 05/30 23:05
17F:嘘 pig2014: G工程师薪水雷面试又像俄罗斯轮盘 05/30 23:25
18F:推 pha123661: 推 05/30 23:33
19F:推 rickykai: 推推 05/30 23:51
20F:推 Csir: G起码400万起跳 05/30 23:57
21F:推 MIKEmike07: 楼下会说没有400万你补吗 xD 05/31 05:06
22F:推 rereterry: 推,很棒的分享 05/31 07:06
23F:推 f12sd2e2aa: 放弃半导体1730下班 是不是想不开啊 05/31 07:07
24F:推 duck10704: 好厉害 05/31 09:17
25F:推 gcobs0834: 我没有四百万我废物 05/31 12:51
26F:→ LinuxKernel: 台G…87趴的L4应该都没400吧?? 05/31 21:44
27F:推 single4565: 推测试!谢谢你的分享,希望之後用得上 06/01 09:45
28F:推 Zoanthropy: 请问您 刷题用Python ,工作上主要也是Python 吗? 06/01 10:35
准备和面试选择用 Python 主要是因为易用和可读。
因为工作内容的关系,常用的语言是:
Java, Kotlin, Python, TypeScript, Go
以前在台积电的话还有:
Perl, PHP, Javascript
29F:→ EKman: 恭喜你,地狱G与天堂G的差别 06/01 11:53
老实说在 GG 的工作并没有不好
至少工时满正常的,也有不少有趣的题目可以做。
最大的差别只是开放的工作风气
30F:→ saladim: 请问科系是电子电机还是纯资工呢? 很少听到GG到G的 羡慕~ 06/02 03:07
大学和硕士都是念资工系
其实这两年从半导体到 Google 的人不少
也有部份是从 GG 来的。
※ 编辑: lollypop02 (59.115.148.239 台湾), 06/02/2024 08:55:49
31F:推 strlen: 强喔 06/02 17:56
32F:推 finalshinji: 好奇原po没测试相关经历,Test planning/Auto这些怎 06/02 20:07
33F:→ finalshinji: 麽能过关? 06/02 20:07
34F:→ stkoso: 21年的hiring bar不是现在能比的 06/03 01:43
35F:→ Lightten: 推 06/04 14:43
36F:推 eeleader: 推推推 06/05 10:34
37F:推 Samael: lvs 还是pdk? 厉害 06/08 07:43
38F:→ amyt: 谢谢分享 06/17 09:27