# Interview Feedbacks ### 背景 118 EE 兩年半 GCP 雲端客服工程師經驗,有些 Go 的開發經驗還有 GCP 經驗 想要找 Backend Engineer 或是 SRE 的職位 直接被 reject 的有以下: * Playsee:HR 有打來問我要不要去面試,但我晚了一天才回覆他可以的時間。就沒後續了... * MaiCoint:資歷不符合 XD 無聲卡: * Lativ/1111/Garena(跟 Booya 不同)/iCook/iChef/樂活/Kloudless/KKTV(好像沒接到他們的電話..)/希納蒙人工智慧/台灣現觀/香港商俊思/香港商優比快/杰迅國際/美商浪橋/安納特/印尼商艾希英 拿到 offer 後婉拒邀約的: * 趨勢/Garena(Booya)/Dcard --- ### PicCollage - Server Developer 其實這職位主要是徵 Ruby on Rails 的 Engineer,但是有 Golang 就想說去試試看 XD 一開始是 PicCollage Recruiter 在 Linkedin 上找到我,後來過一陣子就主動去應徵。 7/16 Engineering Manager 全英文視訊面試 簡單 background 認識以及為什麼想要應徵。 簡單考了一題 leetcode, sentence reverse Input string "I am a good boy!" Output "I ma a doog yob!" 第一次面試有點緊張,而且當時還沒有真的開始認真刷 leetcode,所以沒回答得很好。 現在回想起來題目其實很簡單。我個人是會先 split by space 然後用 regex query word, 因為題目有講到說標點符號要維持原本的位置。然後再 swap 各個 string characters。 中間面試官有提醒到說用 runes 會比用 slice bytes 好,因為有可能會有特殊符號 ê 之類的。 當初真的沒想清楚 ,算是個寶貴的經驗。 問問題 PicCollage Business Model 這其實是我很好奇的部分: - 他們主要是透過兩種模式來盈利 PicCollage VIP 以及使用者 content 創作(透過創作者上傳的圖片分潤) 為什麼會開出這個職位?是因為擴編還是是因為有人要走?→ 擴編 看起來 PicCollage 是想要找 mid-senior level 的 rails engineer,小弟還太廢 XD 結果:感謝函 --- ### Ruckus/COMMSCOPE - Cloud Software Engineer 公司的 Recruiter 在 Linkedin 上找到我 7/29 第一關 Phone Interview 之前是 Ruckus 做 AP controller 的,後來被 COMMSCOPE 併購 現在有一個新的專案,要做 Cloud 跟 Edge 的串接。 目前這個 Team 有大概 9 人分 DevOps Security, Emedded Linux, Networking 聽說 Team 裡面的人都是很 senior 的工程師。 新專案還在初期的階段,希望找有 Cloud 相關經驗的人。 之後可能會與美國 Cloud 部門的工程師合作,所以英文也要到可以溝通的程度。 團隊主要跑 Agile,兩個禮拜一個 Sprint,每天會有 stand-up meeting。 專案會以 Go + Bash 當作主要的開發語言。 內部有在玩 Kubernetes,所以基本的 k8s 概念都有,但是希望可以找一個有 Cloud 經驗的人 聽起來他們是希望找 Senior Engineer XD 8/26 第二關 On-site Interview 首先是先跟 HR 聊天 HR 有提到公司的歷史 在做什麼,也有特別提到台商跟美商談薪水的方式。 這邊也分享給大家: 台商通常是算 月薪保 13 or 14 可能還有些 bonus = 年薪 美商就是 月薪* 12 + bonus = 年薪 所以如果年薪都是 120 萬,美商每個月領到的錢比較多。 講直白一點就是比較阿莎力XD 結束之後就是簡單的五題邏輯測驗,不會很難基本上稍微想一下就會寫了。 一開始人資說我有錯一題,後來 Engineering Manager 說我其實是全對的。還我清白(XD 接著就是 Golang Programming Test 現時一個小時,考官希望我可以用 Golang implement base64 encode 跟 decode 的 function。 可以上網查,不能用現成的 library。 當下其實看到題目有點慌,所以沒成功寫出來。 後來考官有說這提要會用到 bit operation。這部分就真的不熟,就再努力一下。 炸完一小時之後,原本還在想要不要直接收拾一下回家 XD 但是想說都騎車 40 分鐘來了,就面完吧,多累積一些經驗也是好的。 最後一個 Panel interview 大概一個小時, 面試官有 Engineering Manager,兩位 Principal Engineer 以及一位 PM。 第一題是一題條件非常繁瑣的紅綠燈題目,考官希望我可以在白板上畫出我對於這個問題的設計架構。後來經由提示才知道說可以運用 `有限狀態機` 來實際描繪問題的邏輯。釐清問題之後才能實際拆解各個 function 來做實作。這個 section 學到蠻多的,而且考官講話一直有給我種霸氣感 XD 第二題是很常見的過河問題。有 ABCD 四人要過河,要到對岸只有一座橋,一次只能兩個人通過。 而且因為是晚上,所以過河的時候都一定要有一個人是拿著火炬的。每個人過河的時間都不一樣,兩個人一起過河的時候就一定得按照比較慢的人的步調來過。考官希望我有兩隻程式運行在兩個 terminal,一隻顯示目前還未過河的人數,一隻是顯示過河之後的人數。這題我也覺得我沒答的好,一直在想怎麼 implement 一直卡住。後來考官是有建議我說,之後如果遇到類似的問題,可以先從 top down 的方式來解析問題,也就是先用 pseudo code 或是甚至是白話文字的方式來敘述怎麼解決問題,之後才是實際的 code implement。回去加強 XD 第三題就是一個開放式問題,考官問我說假如你在雲端有一千台機器,而你人在地端,你會怎麼更新這一千台機器。這題我覺得蠻有意思的,可以透過跟考官的對答來一步步完善這個系統。其中 Engineering Manager 也有提示說可以用 `時序圖` 來實踐這個系統,受益良多。平常看過這圖還真不知道這叫[時序圖](https://en.wikipedia.org/wiki/Sequence_diagram)。XD 主管蠻樂於分享的,有什麼問題都可以問。 其實這職位是要找 Senior 的,有學到東西比較實際 XD 結果:感謝函 --- ### Aurora Tech - Junior Backend Engineer Cakeresume 主動投 8/5 On-site Interview 一進去會先寫一份考卷還有一份自評表 自評表會有很多 Tech stack 針對自己有碰過的技術評分 1-10 工具如 Git, Svn, Jenkins, 後端語言如 Java, Python, Go, C++ 等 前端如 Javascript, Typescript, Vue, React 等 雲端如 GCP, AWS, Azure, 阿里雲 等 資料庫如 MySQL, PostgreSQL, Oracle 等 考卷主要是考一些基本知識 - 實作 Quicksort - Linkedlist 是什麼?優缺點? - 解釋 database 的 ACID 概念 - 請寫出兩種 Design Pattern 並解釋 - RESTful API 是什麼?請給出幾個 RESTful API 的範例以及非 RESTful API 的範例 - MySQL 的 index 是什麼?什麼時候會用到?什麼時候不會用到? - MySQL 有一百萬筆資料,想要 Query 出第 95 萬筆資料。語法以及作法? 是說沒有準備的很周全,有幾題答不出來 ; ( Technical 面試 由後端主管以及一位工程師面試 主要針對過往經驗問一些技術上的問題 以及 Goroutine 的一些觀念 - 怎麼從不同 Goroutine 收資料 - 怎麼關 Goroutine - 如何建 Channel - 怎麼知道各個 Goroutine 已經處理完工作了 - array 有多個 tasks 多個 Goroutine 來存取會發生什麼事情?為什麼要用 Channel instead of Array? - Goroutine race condition 怎麼解決? 後續還有問一些過去經驗做的東西、細節 面試時間大約為 1個小時 跟工程師交流蠻不錯的,可以檢視自己還需要加強的部分 結果:感謝函 --- ### Snapask - Backend Engineer Cakeresume 主動投 7/31 第一關 Phone Interview - Director of Engineer 主要是在聊天,面試官有先大概跟我說公司的產品線 他們的公司理念就是建立一個不分年齡層的生態圈 目前分為三個產品 Snapask → 線上教學平台 Sofasoda → 給新鮮人的 mindset 教學平台,對於人生、職場規劃的建議 M 開頭的產品不確定是怎麼拼XD → 給老師的學生數據平台 想要了解學生用了 Snapask 之後的學習成效 目前工程團隊分為 iOS, Android, Backend, Web Backend team 目前 6 人 因為有一個新的產品線要開始,所以希望再補 2-3 人到現有的產品線 希望找熟悉 Golang 或是 Rails 的人,並不排斥學習另外一項。也是跑 Agile,每天 stand-up meeting,兩個禮拜一個 Sprint。Snapask 是用 AWS 比較新的專案是用 Kubernetes,較舊的專案也想慢慢轉換成用 Kubernetes。 公司蠻看重 團隊 學習 責任 面試官蠻好的,可能是因為他也待過我現在的公司,所以有稍微閒聊一下 XD 面試官有建議說,如果是轉職 Software Engineer,可以先熟悉一個程式語言到 60~70% 也就是可以用該程式語言完成大部分的功能,提供給轉職的人參考 :D 第 1.5 關 回家作業 用 Ruby on Rails 寫 9/3 沒過作業這關。面試官是說有很多人都完成作業,評估有人比我更適合。至少面試官有說對於第一次寫 Rails 的人來說,算是寫得不錯了。沒差拉,就當作是練習 XD 結果:感謝函 --- ### KryptoGo - Software Engineer Cakeresume 主動投 8/6 第一關 Phone Interview - 公司規模?開發多個產品線會不會有資源緊縮的問題? - 之前的確太多產品線,現在限縮並 focus 在 KYC/AML - 公司目前只有 7 人 - backend 實作 - 區塊鏈的概念 - 看重的技術技能? - 理念是否相同、人格特質 - 技術會交給 Backend Engineer ㄉ - 為什麼離開?為什麼想來 KryptoGo ?想學到什麼? - 職位 初階?Senior? - junior - 為什麼選擇 - Senior 清楚知道 怎麼實作 最好的方式 結果:無聲卡,自己沒準備好 --- ### 浪 Live - Backend Engineer (依賴科技) 104 主動投,當天 HR 就回覆了! 9/11 On-site 面試 基本資料填寫 後端考題,如果概念懂基本上很簡單。不過 functional programming 那題我還真答不出來。 - 最喜歡的程式語言?為什麼? - docker 跑 bin bash 怎麼下 - 有沒有用過 RPC?為什麼? - functional programming myAdd(2)(3) 的 output 會等於 myAdd(2,3) - 兩張表 找出沒有下 orders 的 customers,簡單的 LEFT JOIN 概念 - RESTful api 設計 `https://api.sensestar.live` 設計一個 api 取得某個特定使用者的好友們(GET) 以及刪除特定使用者的好友(DELETE)。寫出 api path, HTTP method, payload 以及 response - RESTful api 過慢 怎麼找 root cause 並解決它。API 為使用者送禮給另一個使用者 - Code review 時會看哪些東西? - 有沒有偏好 Github flow ,Git flow, GitLab flow? 其實徵的不是浪 Live 的 engineer,算是浪 Live 的合作夥伴。 面試我的主管是前金剛直播 CTO。目前這間公司的 HR 也是浪 Live 那邊來支援的。 這間公司的產品蠻特別的,是做高端的交友軟體。 不是我們這種普通人可以玩的,可能是月入幾千萬幾億的那種人在玩的 XD 聽面試官講的時候還覺得挺玄的哈哈。 問題 - 團隊的開發流程主要跑 Scrum 加 Kanban - Tech stack: 後端用 Go 前端 App 用 Flutter framework、Infra 用 GKE+Istio (算是走很前面的 XD - Dev 跟 Ops 的比重,主要會以開發為主,不過也歡迎對於 operation 有興趣的人。 - feature 細節跟時程是可以跟 Designer 還有主管討論的 - 基本上不加班,最近只有在產品要上線前加了兩天 - 公司的過去、現在跟未來發展,也聊了遊戲直播產業的現況 - 公司未來發展,以及怎麼跟其他類似競品區分?17, Up - 面試官是說其實 浪 live 跟 17 還有其他家直播最主要的區別是浪 live 是主打才藝以及其他形式的直播。所以其實每個平台只要做出自己平台的特色,其實還是可以做出區別。不過其實這題是額外問的,因為面的這間公司其實也不是在做浪 live。 結果:感謝函,原本以為相談甚歡的 XD 看來還是太菜 --- ### 17 Media - Site Reliability Engineer 官網投履歷 大學同學在裡面 前測 Codility 線上測驗考簡單 Coding, Regex, SQL,93 分。 9/18 On-site 面試分 3+1關 第一關 SRE - 自我介紹+過去的一些專案經驗 大致上都是以問答的形式在面試,可能也知道我很 jr 吧 XD 目前 SRE 團隊 + manager 只有五人,還蠻缺人的。 SRE 團隊主要切分為 DBA, Infra 跟 Automation &tools。 DBA 就是專職在 database 的調教。17 現在使用 MySQL, MongoDB 以及 Redis。 Infra 就是搭建一些服務,Automation 就是把這些服務自動化,之後如果有意外還能夠自動部署。 Infra 跟 Automation 的功能沒有切到很開,基本上大家都是互相 support。 而且也因為團隊成員很少,大家都會互相討論跟 support。 另外還有問到履歷上一些相關的專案細節還有挑戰。 大部分時間算是在交流 GCP 的知識還有用法,算是蠻不錯的。 第二關 SRE Lead - 自我介紹 + 問一些專業問題 Linux, Shell script 還有系統設計 主要也是在詢問一些過往經驗 面試官蠻希望說大家進來是能夠一起成長的,我覺得這很棒。 就是 Backend 跟 SRE 是一起的一個大團隊互相交流。 感覺的出來有很多事情想要做,但是真的人力短缺。 第三關 SRE, QA Lead (Sammy) - Sammy 就是 Kubernetes Up and Running 的譯者,開頭我就先問他了 XD 不知道有沒有加到分 主要是問一些 Behavior Questions 等等 1. 在現在公司遇到的最大困難 2. 如果主管交代你很多 task 你會怎麼做? 3. 最近在看的書? 第四關 HR 就是純聊天,還有一些福利。 優於勞基法的假、薪資保證 14 個月。 目前取消健身房了,因為 M17 自己蓋了一間健身房 XD 結果:Offer get --- ### 悠福科技 - 後端工程師 9/16 第一關面試 自我介紹,然後有一系列跟 Golang 有關的問題: - goroutine 是什麼? - OS thread 跟 goroutine 有什麼差? - 什麼是 channel? - mutex 跟 channel 的使用場景? - 什麼是 deadlock? race condition? - 知不知道 reflect? - 有沒有寫過 unit test? - 有沒有做過 profiling?(pprof, go-torch) - semaphore? 其他問題: - 使用過哪些資料庫?Redis? - 什麼是 message queue 演算法問題: - 費式數列,怎麼用 for loop 跟遞迴實踐,以及時間空間複雜度 這間公司主要在做企業廣告投放這塊。 也就是舉凡,手機 app、網頁上的很多廣告版面都是他們的業務。 公司成立於 2015 年成員大概有 30-40 人。 工程團隊主要分成三個 1. Dashboard team:成員有 7 人,主要是在幫客戶建立後端管理介面以及報表。分為前後端。前端三個框架都有使用(React, Vue, Angular),前端 team 很喜歡玩技術所以三個都有摸。後端的話以前是用 node.js 現在開始要改成用 Golang 寫。主要是因為之前前後端架構沒有切很開,現在正在改寫這個專案的 module。 2. Core team:成員也是 7 人,主要是接收並處理所有的使用者廣告數據。聽說在美國的 QPS 有 6萬多,應該是挺多的 XD。目前他們所有的 workload 都是部署在自建機房,在台灣、香港、新加坡以及美國都有。面試官也有提到如果要進這個團隊,可能 OS 的知識需要多加強。好的 XD 3. AI team:使用 core team 的廣告數據做一些分析。 最後也有問到他們其實很多以前的 app 都還沒有 Docker 化,近期就有想做這件事情。 上下班不打卡、水果零食飲料還有每週一天的 remote 福利。 --- ### 趨勢科技 - Software Engineer 線上測驗 Codility 拿到 offer 婉拒邀約 --- ### Dcard - Web Backend Engineer 9/16 官網履歷投遞,原本以為無聲卡了 結果過了一週多收到作業邀請 XD 拿到 offer 婉拒邀約 --- ### Garena (Booya live) - Junior Software Engineer (Server) 9/22 線上面試 拿到 offer 婉拒邀約