作者IcecreamHsu ()
看板Soft_Job
标题[心得] 准学士星国DevOps/SRE面试(Tiktok/Shopee
时间Wed Mar 3 15:18:26 2021
最近好多人在分享 ByteDance/Shopee 的面试文XD
我面的是比较少见的 SRE/DevOps 希望也能给大家一些参考
## 背景
- 台大资工系大三,预计於今年6月提早毕业
- 在履历上有提到的包含:
- 三份实习经验
- 第1份写python自动化脚本、弄docker,
- 第2份做aws、CI/CD、kubernetes
- 第3份弄复杂的CI/CD、testing、monitor
- 四份 projects
- Go 写的 RESTful API Server,百万大歌星,3500行
有串 redis 做 cache、prometheus/elk 做 monitor/trace
- Vue/TypeScript 写的前端搭配上面的後端
- Go 刻的 Vector Space Model
- Python 的 Django 框架写的 user 认证登入的网页
- 没有任何竞赛经验,面试时刷了约 120 题 LeetCode,80题 medium,30题 easy
- 进大学前只有高中电脑课的程式能力
找第3份实习的经验有 po 在 soft_job,大家有兴趣可以a一下
## ByteDance/TikTok (Site Reliability Engineer)
去年 11 月底透过 PHEJ 大大的内推码(文章代码
#1VkIHmzP)投递履历
12 月初收到 Online Assessment 邀请
### Online Assessment
12/5-12/6 周末任选时段
120 分钟 4题
1. 费氏数列 (below easy)
2. Integer Game (medium)
任何一个正整数都可以拆成另外两个正整数相加的和,
例如 13 可以拆解成 1+12
1+1+11
3+3+7
给定一个正整数 n 求拆解後的组合相乘之最大和
思路:一维DP
3. modular (hard)
给定正整数 m, n
分别是对旧的和新的 interface 做 m 次实验
每次实验都会有 n 种 results 里面的其中 1 种 result 发生
求在这 m * m (注意非 m + m) 次实验中,
旧的和新的 interface 所产生的 results totally different 的机率
答案需要取mod 10007,
且 x / y mod z = x * y' mod z 其中 y' = y, z 的 modular inverse
例如 m=2, n=1
代表有 2 种结果(假设为 A 和 B)
各做 1 次实验,所有可能的组合为 (A,A), (A,B), (B,A) (B,B)
totally different 的结果为 (A,B), (B,A) 机率为 2/4
2/4 mod 10007 = 5004 (使用 hint 的式子)
m=2, n=2 机率为 1/4 (AA, BB)
m=3, n=2 机率为 18/81
m, n 可能为四位数
4. 编码 (medium+)
给定 26 个字母的编码(均为0, 1,不为霍夫曼),例如 'e' = '0', 't' = 1, 'h' = 100
给定一个01字串 sequence,与多个英文单字组成的 dictionary
求 dictionary 里的单字可以组合成 sequence 的方法数
例如有个sequence 可以被 decode 成 helloworld
其中 dictionary 有 hell owrold hello world
因为可以写成 hello/world 也可以写成 hell/oworld
所以要 output 2
(sequence 可能可以被 decode 成不一样的字母组合)
思路:DP,Top-Down 和 bottom-up 都可以过 Testcase,我最後交 bottom-up
都需要预处理,将 dictionary 的 word 转成 0-1 sequence
除了第3题以外都有写出来,通过 OA
### 一面 (12/18)
远端视讯面试,中国人面试,可以用英文也可以用中文
主要把重点放在我履历上的专案和技能
- go/gin 和 python/django 有什麽差别?
- 你 project 的 API Server 怎麽实作的,用了哪些技术?它是做什麽的?
(这里面试官特别好奇我专案的具体目的,我本来以为不是重点而避重就轻)
- nginx/LVM/VPN Server/DNS 都被问了一次(我这些都写在履历上的技术栏)
DNS 问得比较细,包含 Reverse DNS 还有 DNS Record 都问得很细
- 为什麽选 Azure 而不是 aws
- 一些琐碎的技术问题 包含
- http/https 差别
- 对称加密/非对称加密差别
- GET/POST/PUT 差别,并解释 RESTful
- OSI Model: http/nginx/tcp/ip 各属於哪一层
当天(1-2 小时後)出结果
### 二面 (12/30)
早上 7:00 面试,配合加州时区,45 分钟
先闲聊一点点我自我介绍有提到的经历,再来是 coding 题
- 给多个 IP Subnet mask (ex: 10.0.1.0/24) 彼此可能有重叠,
找出 minimum subnet mask set
我一开始以为是演算法题目,但面试官说时间复杂度不是首要的考量
才知道考察的是 coding 熟练度
过程可以 Google,但我没用到
思路:先对 input sort,然後对 subnetmask bits 一样的前後看能不能 merge
这里提供一个技巧,可以先从辅助用的 base function 开始写,
一方面展现 divide and conquer 的思路,另一方面多争取时间思考要怎麽写。
面试官最後有提到从我 implement ip2bits 和 num2bits 就知道我是常常在写 code 的。
最後还有一点点时间就闲聊一些技术
### 三面 (12/30)
7:45 二面面完马上接三面,45 分钟,hiring manager
- 对方介绍他所在的 team 和工作内容
- 过我履历的经历(三份实习,没有过到专案,可能因为一面把专案内容都问完了)
问实作的技术细节
- 打算从这份工作里学到什麽东西,或特别不想要做什麽
隔天下午寄 intent to hire letter,
再半个月後寄正式 offer letter 并与 HR 电话谈 offer 细节
---
## Shopee (TechOps)
12 月下旬填 Google 表单,月底收到 OA 邀请
### OA
60分钟 共 26 题测验题,包含 1 题非常简单的 python 字串处理
测验题有英文和简中翻译,但我个人对题目品质不是很满意
很多问题并没有定义清楚,OA 网站的体验也满糟的
大概四天後通知零面
### 零面(1/15)
HR 电访,聊工作内容、流程、新加坡的生活等等
p.s. 新加坡虾皮在招募表单就写他们年薪 200万台币以上了
### 一面(1/21)
HR 会寄信提醒面试的重点,
包含演算法题目、Networking(TCP/UDP handshakes、HTTP/HTTPS)
Databases 和 OS 等等
不得不说面试内容满吻合的,但惭愧我这时候已经彻底放寒假了XD
远端视讯面试,共 90 分钟
- 输入 URL 导到某个网站,背後的整个机制
- TCP/IP 为什麽要三次握手/四次挥手
- process/thread/goroutine 差别、优缺点
- process 怎麽沟通
- thread-safety 问题
- Read-Write Lock 机制
- 高频 read 低频 write 的情境怎麽不上锁来解决 thread-safety
- Disk/CPU 满了的机器要怎麽检测和 debug
- keep-alive 的运作机制
- TCP 如何保证封包不被中间人窜改
- 用 goroutine 来做哪些 project?
另外出了一题程式题是中序计算机 (只有+*)
## 心得
ByteDance 整体的面试体验满好的,
面试官之间的沟通也满不错的,不会一个问题重复问好几次
不过面试过程好像有点过於简单,像 kubernetes 我以为会问得很深
但只有问到用过哪些元件而已;对面试者的经历和专案倒是问得非常深,
不仅是实作的技术细节,过程中的取舍和专案的目的都问得很细
以 SRE/DevOps 的工作内容而言,个人也比较认同这样的面试方向就是了
个人虽不喜中国公司,但台湾很难找到流量堪比 TikTok 的公司,
另一方面也想出国看看,所以最後就选 ByteDance 了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.16.136 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1614755910.A.7C3.html
1F:推 fatathome: 推个 03/03 15:31
2F:推 ian90911: 感谢分享 03/03 16:00
3F:推 ChangeXD: 推个..我也想要成为SRE! 感谢分享 03/03 17:11
4F:→ x246libra: 感觉最近的资工本科分享文都超强 03/03 17:42
5F:推 ayasedd: 准学士...看完觉得我是废物QQ 03/03 17:42
6F:推 PHEj: 恭喜!!! 欢迎加入Bytedance 03/03 17:57
再次感谢P大的资讯和内推码~
7F:推 kyrie77: 推 03/03 18:13
8F:推 Lyu7: 推!但没想到你要提早毕业了 OAO 03/03 18:23
这个之後可能会在脸书发文解释XD
9F:推 kerokan: 推 03/03 18:26
10F:推 empireisme: 想问是高中就在学了吗? 03/03 18:45
不是欸,跟楼下的问题一起解释
11F:推 panbanana: 好强啊 03/03 18:52
12F:推 kso60411: 现在是大家都进字节了吗 03/03 19:23
13F:推 eju901677: 写程式资历只有大约三年的意思吗 03/03 19:25
大概两年半左右,实际上是某年暑假自学C到指标,
但之後就再也没碰,对linux或terminal也完全没概念
就是从程式麻瓜到三分钟热度的程度XD
之後也许会写一篇SRE角度的学习之路,如果大家有兴趣的话
14F:推 Apache: 唉 大师 03/03 19:26
15F:推 cplusplus426: 太强了.. 03/03 20:05
16F:推 cksxxb123: 现在是强者都去抖音了吗...... 03/03 20:15
17F:推 algorithms: 恭喜 03/03 20:44
18F:推 Inglenook: 推强者 03/03 21:14
19F:推 Yujjlin: 谢谢分享 03/03 21:45
20F:推 tomap41017: 真强者 03/03 21:57
※ 编辑: IcecreamHsu (49.216.175.132 台湾), 03/03/2021 22:56:55
21F:推 smdf: 推 03/03 23:20
22F:推 wildli0422: 好强啊 03/03 23:29
23F:推 Raymond0710: 真大神 03/03 23:59
24F:推 fikruank: 小弟看我们shopee的sre同事,那个肝应该都是铁打的XD 03/04 01:13
25F:推 y956403: 推 03/04 03:08
26F:推 yislin: 感谢分享 03/04 03:27
27F:推 taipoo: 真高手,太厉害了 03/04 04:16
28F:推 unmolk: 大神 明明同届啊我在干嘛.. 03/04 05:52
29F:推 steviewonder: 有人有经验到新加坡工作,如果有老婆小孩怎麽处理吗 03/04 09:08
30F:→ steviewonder: ? 03/04 09:08
31F:推 Harlequin727: 恭喜。 最近好多Singapore软体分享哦 03/04 11:22
32F:推 baobomb: 新加坡软工基本上都拿EP 老婆小孩可以拿DP 可以工作 03/04 11:28
33F:推 jackflu: 用心推 03/04 16:59
34F:推 bewitchsky: 推 03/05 08:54
35F:推 JustOCD: 朋友帮推啦 03/05 18:47
36F:→ JustOCD: 带我飞 03/05 18:48