看板 Soft_Job 關於我們 聯絡資訊
最近好多人在分享 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://www.ptt.cc/bbs/Soft_Job/M.1614755910.A.7C3.html
fatathome: 推個 03/03 15:31
ian90911: 感謝分享 03/03 16:00
ChangeXD: 推個..我也想要成為SRE! 感謝分享 03/03 17:11
x246libra: 感覺最近的資工本科分享文都超強 03/03 17:42
ayasedd: 準學士...看完覺得我是廢物QQ 03/03 17:42
PHEj: 恭喜!!! 歡迎加入Bytedance 03/03 17:57
再次感謝P大的資訊和內推碼~
kyrie77: 推 03/03 18:13
Lyu7: 推!但沒想到你要提早畢業了 OAO 03/03 18:23
這個之後可能會在臉書發文解釋XD
kerokan: 推 03/03 18:26
empireisme: 想問是高中就在學了嗎? 03/03 18:45
不是欸,跟樓下的問題一起解釋
panbanana: 好強啊 03/03 18:52
kso60411: 現在是大家都進字節了嗎 03/03 19:23
eju901677: 寫程式資歷只有大約三年的意思嗎 03/03 19:25
大概兩年半左右,實際上是某年暑假自學C到指標, 但之後就再也沒碰,對linux或terminal也完全沒概念 就是從程式麻瓜到三分鐘熱度的程度XD 之後也許會寫一篇SRE角度的學習之路,如果大家有興趣的話
Apache: 唉 大師 03/03 19:26
cplusplus426: 太強了.. 03/03 20:05
cksxxb123: 現在是強者都去抖音了嗎...... 03/03 20:15
algorithms: 恭喜 03/03 20:44
Inglenook: 推強者 03/03 21:14
Yujjlin: 謝謝分享 03/03 21:45
tomap41017: 真強者 03/03 21:57
※ 編輯: IcecreamHsu (49.216.175.132 臺灣), 03/03/2021 22:56:55
smdf: 推 03/03 23:20
wildli0422: 好強啊 03/03 23:29
Raymond0710: 真大神 03/03 23:59
fikruank: 小弟看我們shopee的sre同事,那個肝應該都是鐵打的XD 03/04 01:13
y956403: 推 03/04 03:08
yislin: 感謝分享 03/04 03:27
taipoo: 真高手,太厲害了 03/04 04:16
unmolk: 大神 明明同屆啊我在幹嘛.. 03/04 05:52
steviewonder: 有人有經驗到新加坡工作,如果有老婆小孩怎麼處理嗎 03/04 09:08
steviewonder: ? 03/04 09:08
Harlequin727: 恭喜。 最近好多Singapore軟體分享哦 03/04 11:22
baobomb: 新加坡軟工基本上都拿EP 老婆小孩可以拿DP 可以工作 03/04 11:28
jackflu: 用心推 03/04 16:59
bewitchsky: 推 03/05 08:54
JustOCD: 朋友幫推啦 03/05 18:47
JustOCD: 帶我飛 03/05 18:48