面試問答
你覺得一個後端工程師應該具備什麼能力?
我回答核心能力是處理...
投了履歷大概一週後收到通知,人資會先打電話稍微問一下應徵原因,由於我是帶職面試,因此也被問了為何想換工作。她大概介紹了下
我應徵這個職缺的團隊的負責開發的產品和合作模式後就跟我約一面時間。一面前會先寄codility的測驗題,自己找時間作答。總共有三題,難度大約介於leetcode的easy到medium之間,作答時間蠻充裕的,印象中是兩個半小時,作答完提交後可以當場知道測驗分數。
一面是和技術主管,請你自介後就開始從你的自介內容和履歷提問,大多是做過什麼專案、專案內容的技術細節等。接著是技術問題,問了例如php float的問題, session cookie, redis, 樂觀鎖定和悲觀鎖定等,感覺就是照著他準備的問題list連著問下來,問題難度都算中等。最後換我提問,問到他們開發是跑waterfall還是scrum時被反問:你覺得scrum跟waterfall的優缺是什麼? 由於我也還是個業界菜鳥,沒什麼比較依據,只能依我看過的相關文章來回答。感覺比起技術細節,這位技術主管對專案管理、開發流程等更有想法,跟我分享了很多他對這兩種開發方式的看法,另外感覺他也很重視工程師對於需求的理解,會要你很詳細地描述你做過的專案的每個功能細節。
接著換跟人資面談,面談時間很長,從我為何想當軟體工程師、為何離職、為何應徵這份工作、預計什麼時候跳槽、對工作和薪資的期望等,也會從我的回答中再提問。技術面試+人資面談的時間總共是三個多小時。大約一週後就接到人資打來約二面時間。
二面是和一面的技術主管的大主管面試,也是先從自我介紹開始,再根據我以往做過的專案進行提問。他問的問題對於一個後端菜鳥來說蠻有深度的,從最簡單的要你從你做過的案子中舉一個設計資料表的例子,到redis、syncronization、deadlock,還有Laravel(他們後端是用PHP的Laravel)的底層運作機制都有,若是特定工具或技術,除了能說明如何使用之外,更重要的是要知道為什麼選擇使用這個東西。若回答不出來他會講解他個人對於這個題目的看法,從中可看出大主管的技術應該蠻有水準的。
面試下來覺得若能進入kkday應該對個人技術成長蠻有幫助,但缺點就是他們的獎金制度和福利很不吸引人,沒有保障年終,年終獎金全看員工的KPI排名,大概前60%才能拿到1~2的月的獎金,另外原本每季提供的員工價購買套裝行程,防疫期間全部取消,也沒有對價的補償。
面試問答
你覺得一個後端工程師應該具備什麼能力?
我回答核心能力是處理資料庫和效能優化,面試官說除了這些之外,對於需求的理解也很重要。
你大學修資料結構時有做過什麼作業?
寫出一個大數猜數字遊戲的演算法。
面試建議
1. kkday的codility題目不難,但如果完全沒刷過題可能無法在時間內作答完畢,建議考前花個幾天練習演算法題目。另外如果有餘裕,除了題目上提供的範例測資能通過之外,要多思考可能的edge case,我三題中只有一題是拿到滿分,其他兩題都有一些沒考慮到的edge case而被扣分。
2.技術面試有很大一部份的重點會聚焦在你所做過的專案上,所以要能清楚描述自己做的專案內容是什麼、開發過程遇到什麼問題、有什麼解決方案等。
3.二面考了很多關於效能優化的問題,例如redis、queue、dead lock和非同步處理等,就算實務上沒碰過也可以稍微看一下這些技術的相關文章。