跳到主要內容

【面試心得】2017 後端工程師面試以及準備經驗(旋轉/Shopline/17/Appier/蝦皮)


文/徐瑋呈

(圖片來源/面試趣製圖

約 2017/5 月底開始找工作,雖然沒有面試很多間可以做很仔細的分享,也不是什麼感人勵志的故事,但因這段期間許多網路上無私分享的文章幫助了我許多,也希望能分享自身的準備與面試經驗,有機會幫到需要的人。

個人背景與應徵目標
自身過去三、四年都在創業,因為一些私人因素與職涯規劃決定離開這個充滿自己青春與心血的地方。也花了許多時間思考下一步該往哪走,最後決定要找尋一個符合以下條件的公司:

  • 英文工作環境
  • 國際市場
  • 新創氛圍
  • 累積或處理的資料量大
  • 產品分數 20~80 快速成長階段的公司(假設 IPO 為 100 分)

過去一路從五專、插大到研究所都是資訊相關科系,求學中一直都有接案與實習增加社會歷練,不過英文倒是五專搞爛了,大學一度面臨因為英文無法畢業,近一兩年透過 engoo 與 EF English 算是有慢慢進步中,這歷程又是另外一個故事了。

畢業後就開始在新創圈,在接觸的面向廣度,以及同時做很多件事的能力有非常顯著的提升?!但一直缺少資料量大的實務經驗,以及較為深度研發的經驗,在訂下這些公司條件後也以此作為下階段職涯的學習目標。

以下按照應徵結束順序排列


Carousell
旋轉拍賣是個以二手拍賣的為主的 C2C 平台,主要市場在新加坡,台灣一樣有分公司設立,但大家目前較為熟知的應都是蝦皮。運氣很好的是,剛好開始找工作的同時,旋轉拍賣大舉在台灣徵才,也非常符合我心中設定的所有條件,算是初步的首選目標。

《第一階段》
是在台灣的辦公室進行,剛好因大舉徵才,所以面試官飛到台灣來做面試。面試我的是一位 Senior Engineering Manager 與人資,一開始不免俗先自我介紹一下,然後開始針對過去經歷作些問答,其中問到過去架構設計的部分,還拿出電腦直接展示之前畫的架構圖 XDD。後面聊到 CI/CD 所用到的種種服務、之前帶團隊最大的挑戰是什麼、怎麼帶人、之前公司的開發流程怎麼跑得、為什麼想加入等等。

最後換我問問題時,瞭解到公司內部對於 open source contribution 還有各大 conference 贊助參加等都是非常開放與支持,而且還提供遠端工作的福利,算是蠻不錯的。當天下午就收到一份回家作業。

《回家作業》
作業主要是請你用一個前端框架(建議 React.js)與後端語言(建議 Node.js)做一個 Reddit 的網站,並希望我在週五前可以給出(週一第一階段面試),才有機會當週末參與下階段面試

這邊有個小插曲是原先花了一整天念 react 但最後發現無法速成,與其交個完成品但架構不好,不如用自己擅長的語言做好架構與寫好 README。所以最後用了 Rails + Vue.js 花了幾個夜晚在他們期望的八小時內作完。

《第二階段面試》
在週五交完作業後下午就收到當週日的面試邀約,共兩個小時兩個 round 有四位面試官,比較妙的是這四位的名字都有在 email 上,所以就狠狠的在 google 以及 linkedin 上研究了一下他們的 background,猜測他們可能會問什麼問題(雖然最後都沒用 XDD)。

當天記得午後下超級大雨,開車去小樹屋會議室,還到了錯的據點,只好快速傳個 email 說會遲到趕快過去,一抵達馬上就被安排進去,一進去連自我介紹什麼都沒有,就直接白板題開始寫惹。

在兩小時(前三題第一 round,後四題第二 round)內解了七題...

  • 硬幣問題,有不同種幣別,如何用最少的數量達到一個數字?
  • 如何處理 google doc 的文件編輯同步問題?你會用哪種資料庫?relational db 跟 nosql 差異?(選了其中一個後)會有什麼問題?
  • 九宮格的迷宮問題,如何用最少成本從起點到終點?(類似 shortest path)
  • 如何設計 stack insert and pop,時間複雜度只能是 O(1)
  • 設計一個 reddit with db schema and infrastructure(聽到這題想說我不是作業做過了嗎 XDD 但這部分就比較著重在架構設計)
  • 如果很多人同時去 up/down vote 一個超級熱門的主題,你應該怎麼改架構
  • 如果同時很多人衝進來留言呢?(不用很即時的顯示其他人留的沒關係)

算是非常充實的一次經驗,面試完覺得全身被榨乾,還去旁邊的飲料店坐著發呆快半小時才恢復正常。但過程被問到許多次「為什麼」你會這樣設計?這樣做?,可以感受到即使是管理者(面試官)也需要不錯的邏輯與技術底,才有辦法問出應試者是否真的懂。

《最後一階段:與 Co-Founders 面試
大約也是隔天就收到下階段面試的邀約,就在當週禮拜四。這一面算四平八穩,因為知道是面試人格特質以及公司文化等內容,事前就先網路上找一下這方面的網路精選面試題,非常幸運(?!)的命中率有九成...我自己也嚇到,印象中記得有這幾題:

  1. 為什麼離開現在的公司?
  2. 為什麼想要加入 Carousell?
  3. 想在旋轉扮演什麼樣的角色
  4. 接下來三年有什麼目標
  5. 除了工作有什麼休閒活動
  6. 之前工作遇到最大的困難是什麼
  7. 同事都怎麼說你?他們曾經因為什麼事情討厭你?

《結果》
拿到 Offer。旋轉的人資非常有效率,從第一個週一面試、第一個週五交作業、第一個週日第二階段面試、第二個週四 co-founder、第二個週五拿到 offer。



Shopline
這間是透過以前的一位同事做履歷的投遞,而 Shopline 是個給商家做品牌購物官網的服務,算跟過往產品經驗相似,所以也有一定程度的興趣。

《第一階段》
一開始與人資聊了大約半小時關於過往經驗以及為什麼想加入 shopline,中間也交流了未來的規劃等等,整個過程蠻開心的。後續則請了工程師主管以及一位後端工程師繼續面試技術部分。

整個過程也像是聊天,交流一些過去的經驗, 像是開發流程、架構設計、CI/CD 還有他們目前的運作方式,以及主管帶人的理念等。因為這位工程師主管過往社會經驗蠻豐富的,所以在交流一些過去創業經驗與心得時還蠻好聊的,對於整體公司氛圍以及想幫助每個商家成功的理念算蠻符合我心中期待。

後續就等待與香港工程團隊以及 CEO 面談。

《結果》
因已收到 Carousell 的 Offer 故主動婉拒後續的面試。


Odigo
是一個非常有趣的共享日本行程服務,主要是透過虛擬幣以及遊戲機制的方式,鼓勵在平台上面分享自己的行程,也因這樣的行程若有幫助到人,或是獲得許多瀏覽次數等達成遊戲機制目標,自身也能不斷獲得「玩幣」,而這「玩幣」還能換取真正的錢做購物喔。

而母公司是一間日本旅遊企業,更覺得這個服務有很高的機會能夠做起來。

因為自身很喜歡日本這個國家,過去不僅常出去玩,還有過兩三個比賽題目都跟旅遊相關,所以感到非常的有興趣,也很感謝 Simon 網友大大的鼎力協助,很快的就獲得面試的機會。

《第一階段》
第一次的面談有三位一同參與,分別是 PM, CTO(大陸人), 以及一位工程師(日本人,東大畢業)。過程其實問的非常廣,從機器學習、大數據甚至到寫程式的習慣與工具都有涉及到,印象比較深刻是被問到了兩個很硬的問題:

  • 有寫過 linux kernel 嗎?
  • 是否曾經讀過 HA Proxy 的原始碼?

第一時間真的有嚇到,一來是沒想到他們的工程師底這麼厚,二來是腦中馬上浮現「東大特訓班」這個日本漫畫。後續則收到了一份回家作業,也是個需要幾天晚上才做的完的網站規模。

《結果》
主動婉拒後續的面試。其實當初要婉拒真的思考的蠻久,主要是這個題目真的超級喜歡,但在回想一開始設定的目標後,還是忍痛的婉拒。



17 直播
職位:SRE

是個主打直播社交的平台,自己也跟許多人一樣,最開始認識這間公司的契機點主要因為老闆是黃立成,最近也看到許多被投資甚至成立 17 media 要開打東南亞市場的新聞。

另外也因有以前同事先進去裡面,聽到一些像是他們要開始經營一些自產節目等等。

投 17 比較特別的是丟了 SRE 的職位,算是給自己的一個挑戰,畢竟過去沒任何直接經驗,他們的面試也很乾脆在一個早上兩個小時聊天過程中就有了決定。

《面試》
一進去是由他們的 HR 做接洽,當時是在 operation 相關部門辦公區域外的許多小餐桌上進行面談,時不時還有許多直播主進進出出,或許也是這樣沒有答的很好(愛牽拖)。

接下來與他們的 SRE 進行面談,途中考了許多 linux 的指令以及伺服器知識,像是怎麼知道那個 port 有在用?如何測試某個 ip 的某個 port 有沒有開放?504 gateway error 可能會是什麼原因,要怎麼知道問題點在哪?如何看連到某個網站的路由路線?等等。

最後則是與他們的後端 lead 做談話,這位主管過去曾在美國 google 上班過,後來因家庭因素回到台灣去 HTC 最近才到 17。整個聊天過程很開心,也趁機多問了一下美國跟台灣工作狀況,額外收穫蠻多的。

《結果》感謝信。


Appier
這是間人工智慧為主軸的廣告公司,過去因為合作伙伴關係有些接觸,加上 Appier 已是世界知曉的 AI 技術團隊,對於在數據處理以及大流量上相信有許多挑戰,還曾看過有不少外國工程師在 linkedin 上有 follow Appier,整體上印象分數很好,所以也納入選項之一。

除了工作以外,朋友一直說 Appier 對面就是健身工廠,對於一直無法穩定健身的自己,算是另外一大誘因 lol

《第一階段面試》
當時他們採取的方式是有興趣的組(團隊)會來進行面試,記得跟了三、四個 team 面試,有後台的、前台廣告追蹤的、Business Analysis、數據蒐集等幾個 team,有印象兩個演算法考題(有做些 leet code 應都能 cover 過去):

  • longest-palindromic-substring
  • coin problem

數據蒐集部分還有問到如何處理 raw data,像是 log,比如說有 user name, timestamp, json 等,如何根據他們需求處理,比較困難的部分在於 I/O 的處理,如何妥善運用空間(space complexity)換取時間(time complexity),或是時間換取空間會是其中的關鍵。

第一天面完幾個 team 後,便接續跟他們的 PM 與 Tech Lead 聊,被問到蠻多大量數據與流量處理上的架構問題,當時對於 distributed architecture 與相關的服務還沒那麼熟悉,覺得沒答特別到位。問題像是,該如何處理一分鐘數十萬的 requests、若使用 queue 該如何確保他們能夠在短時間內被處理完進行分析等等。

第一階段算蠻硬的,一連面了四個半小時左右,最後 HR 則接待等下階段通知便離開了。比較窘的是,可能擴張太快制度還沒定下來,所以跟每個 team 面談前都會先自我介紹一下,以及被問些履歷上的東西,會有種人生不斷 repeat 的錯覺。

《第二階段面試》
這也算是最後一階段面試,因為是與 CXO 們的面試,所以在他們最有辦法一同出現的時間,也就是禮拜天下午進行面談,也是很辛苦 XDD。

一開始是與 CTO 聊天,沒太多考試,主要都是聊聊過去經驗,為什麼想加入 appier 等等,也因為這聊天才知道原來 Appier 並不是他們第一個產品,雖都是做資料與 AI 相關的題目,但在這之前也失敗了三四項題目,非常的不容易。

接著與 COO 與 CEO 聊天,這部分就比較偏向人格特質跟公司文化,很喜歡 COO 的想法,我問了請問 Appier 對於員工的未來規劃與發展有什麼想法?

大方向的回答是,希望每個人都能在這發揮自己所長做出貢獻,並且能夠不斷進修自己(他們提供很多額外課程給大家進修),同時也能因為在這裡工作感到快樂並過好生活與家庭。雖然沒有太多的所謂「理想」、「夢想」,但卻是很實在。

《結果》錄取。


蝦皮(新加坡 SEA)
蝦皮最近應都被人所熟知也就不多做介紹,在與人資聊天過程當中得知原來公司今年要開始改叫 SEA(原 Garena),且公司主要多為大陸人。

比較特別是,原先本預計跟旋轉拍賣一樣都會是全英文,沒想到從頭到尾都是中文,一度腦筋還轉不過來 XDD

跟人資聊完接著就是線上考試,最一開始用任意程式語言寫一個 binary search 的架構,算是很快就過關進入連環的問答題,這邊就簡單分享幾個被考的題目:

  • 3 handshake 是什麼?
  • 4 handshake 是什麼?
  • HTTP vs WebSocket vs Socket
  • 什麼是 HTTP2
  • PostgreSQL vs MySQL
  • 各種排序演算法的時間與空間複雜度
  • Google Protobuf 是什麼?
  • TCP 該如何做流量控制
  • 有用過 Elixir (ruby syntax-like for erlang structure) 嗎
  • C thread 怎麼運作?
  • 該如何 ping 某個 protocol 或是 port?
  • telnet 如果防火牆擋住了會怎麼樣?

其實除了這些還被考了許多問題,花了超過一個小時,但可以看到面試官拿著一份看起來就是題庫的本子在找要問什麼問題。印象比較深刻是他們都沒用過 AWS 或是 GCP 之類的服務,公司的伺服器甚至整個雲端架構都是自己組建的(不愧是陸資公司),對於我這時的職涯規劃與團隊想法是蠻大的扣分,所以後續也就請 HH 討論不繼續往後面試。

《結果》沒下文。


準備資源
根據面試幾間下來,大致上可以把應徵準備分為四大塊:
演算法、商業知識、系統設計、公司文化。

《演算法/資料結構》
這部分大家都相當清楚有 Leet Code,也推薦另個好物:演算法筆記,是個從大學時期參加程式競賽陪伴到現在的好伙伴。

另外最近國內許多公司也開始效仿國外用些 online judge 的系統作第一階段的測驗與篩選,像是 HackerRank 或是 codility 都是目前常見的。

《系統設計》
這部分推薦 High Scalability 以及 HiredInTech 的 System Design,都有許多實務經驗分享,以及可能的面試題型可以參考。

《商業知識與公司文化》
這部分就沒有太多訣竅,很吃個人特質,但可以透過多練習(對練、冥想模擬等方式),以及多閱讀、多分享來進行改進。幾個跟公司文化相關的部落格可以參考:themuse.com 以及 100offer。

以上分享,希望可以給些人帶來幫助 :D

樂於分享的人總會有回報
一起貢獻自己的經歷一起面試趣

留言

這個網誌中的熱門文章

【面試心得】失敗哥的不 NG 面試心得:Pinkoi、17 Media 、街口支付

文/ RH's note 羅伯特的筆記 大家好,我是羅伯特。 這邊是下集的內容,如果你只是路過被騙進來的朋友,建議您看一下前情提要,傳送門在此:《 超詳細 Dcard&Fourdesire 面試筆記,UI 設計師面試 NG 又如何! 》 被連續打槍之後,要說心情、自信沒有受影響是不太可能的,如果你也是剛好在面試求職的朋友,應該懂我說的感受。 不過能做的就是把握每一次投履歷信的機會,要是沒有信心表現到當下最好的狀態,就是浪費這次機會了,畢竟短時間要重複投同一間公司是不太可能的事。 其實這次開始自己投履歷時會覺得難熬,是因為面試Fourdesire 的時間將近一個月,已經從邊工作、 邊面試到正式離開原本公司了,這段時間其實沒有看到什麼自己覺得非常心動的職缺,再加上最後面試失敗,心裡真的有看不到盡頭的感覺,我不想在夏天面試啊,靠杯熱啊幹。 肥宅真的很怕熱的,面試又不好意思穿短褲 上篇有提到我這次尋找職缺的管道 CakeResume / mit.Jobs / Yourator / indeed / Ptt.cc _ soft_job / Linkedin / 臉書社團 基本上每天行程就變成看這些網站一輪,沒有喜歡的就休息,做做 side project 或者去運動做點自己想做的事,像我就把海賊王跟進擊的巨人一口氣追完,爽。另外覺得很不踏實的時候,可以找個人陪你聊聊講幹話,心裡會覺得好過一點。 不過前提是你要將作品集、履歷、求職信件備妥,畢竟好的工作機會不是留給準備好的人,是準備好的人才有機會面試。 「好看」的 UI 作品集 這邊沒有要跟各位講作品美感什麼的,設計師應該會想自己處理發揮,想分享的是如何準備「好觀看」的作品集。 如果各位跟我一樣真的是“完全”不懂程式的設計師,可以選擇 Behance 提供的 Portfolio 服務,利用它給的模板調整出自己心目中理想的作品集,如果覺得還是不行…要不就去找工程師朋友或者學程式自己寫吧。 我之前用過 Wordpress 架構過自己的個人網站,不過一直被攻擊穩定度不是很好,加上 RWD 蠻常爆版的,所以網站過期就放棄那邊了。作品集準備上有以下幾點可以注意: 能夠在各裝置上瀏覽 現在能夠瀏覽信件的方式很多,既然我們不能確保對方是用什麼裝置觀看的,那基本的手機、電

【面試心得】華碩面試:脫離學生身份仍要考筆試?傳說HR不好應付 It’s real?

文/ 凱西 (圖片來源/pixabay) 到華碩面試帳務管理師的第一關 投遞履歷後約莫一週接到HR電話、正式邀約信,信中提到當天會進行 (1) 邏輯測驗 (2) 英文測驗,其餘內容就是面試前要上網登錄公司履歷自傳、主試人員還有一個線上的測驗 (該測驗似乎會遭Flash阻擋,記得事先設定) 面試時間:2018 / 01 下午 地點:華碩總部 到達後換證進入,被指示到一間很大的會議室,裏頭是像電影院的座椅,搭配扶手處可翻出的「小」桌子、燈光也蠻暗的 (可能是人不多的關係?) ,除了我與負責考試的HR外,還有幾位也是面試的人一起考試,但不確定是否面試同一職位,可能只是一起考試。 跟HR確認身份後找個位子坐下,「馬上」開始一連串測驗,這裡說的「馬上」是真的!連包包都還沒放下就拿到測驗卷跟答案卡開始考試QQ 那就開始介紹一連串的考試吧 (1) 邏輯測驗 40題 / 20mins 題型就是小時候寫過的智力測驗還甚麼的, 主要有兩大類型的題目: A. 給 2-3 個圖形,要推測下一個圖形是甚麼。 B. 給一個立體圖,算出有多少正方體。 作答難易度這我也無法評斷, 這種測驗嘛...感覺沒有正確答案之類的, 但自己的感覺是寫得很順 (但也可能都是錯的哈哈) ,時間對我而言很夠用, 但本人從以前就有被說過寫考卷很快速, 所以時間上給大家參考一下~ (2) 英文測驗 40題 / 30mins 背景:2016 / 05 有考過 TOEIC, 成績介於800-850分,之後沒有特意讀英文。 題型上類似TOEIC分兩大類: A. 大概20題動詞變化、文意選填。 B. 20題閱讀。 個人認為閱讀偏簡單, 但單、雙篇閱讀的題型都有, 動詞變化覺得有點難。 (3) 細心度測驗 約10題 / 5mins 這部份是信中未提及的,不過真的只是測細心! 題型有三種: A. 一篇英文短文計算有幾個 "E" (大小寫都算)。 B. 一串數字或一個單字,選出一模一樣的。 C. 一串數字或一個單子,選出「相反」的(e.g. 題目123,選321)。 基本上蠻簡單的,只要夠細心不是大問題, 但是窩在會議室寫了 20 + 30 分鐘的邏輯跟英文測驗後,脖子痠痛、燈光暗,寫這測驗時細心度的狀態難免不佳,多點耐心撐住! 考試就到這

該怎麼使用面試趣「積分兌換碼」?

(圖片來源/pixabay) 好不容易從網路上爬到破解大法 想著可以多拿一些積分、多看幾筆面試心得 但...一回到 面試趣 卻找不到從哪裡兌換積分? 別擔心,讓我們告訴你! 「積分兌換碼」操作教學 1. 首先,擊點右上方個人頭像,進入 個人頁面 中。 2. 進入頁面後,向下滑動,找到「邀請好友送積分/積分兌換」。 3.  擊點 「邀請好友送積分/積分兌換」 ,進入該頁並下滑動找到「輸入積分兌換碼」處。 4. 輸入你擁有的積分兌換碼,即完成兌換,獲得積分。 【手機版教學畫面】 我們不怕你破解,因為我們知道這些資料對你有多大的幫助! 快輸入手中的兌換碼,一起點開屬意公司的職缺, 看看前輩們怎麼說!   我們,一起 面試趣 。 | 更多認識我們| 面試趣積分是什麼?如何獲得? 我在這裡分享資料安全嗎? 我能相信面試趣上面分享的內容嗎? https://blog.interview.tw/2019/02/blog-post.html