# 面試 * 我先自我介紹,我是 Sam,目前 data team 的 data engineer, * 麻煩自我介紹 * 第一份工作內容 * Kafka to pub-sub data from MongoDB and implement real-time BI dashboard. * 所以你們 ETL 是 streaming? * 如何處理 graceful shutdown * BI dashboard 也是 realtime? * 當我看 dashboard 的時候,是即時做 query 嗎? * 那你們一張 table 多大? * 一次 dashboard query 多個 table,效能? * improve the user experience * 提升用戶體驗,實際上的成效是什麼? 例如客戶留存率20% * 你們用 airflow,開發流程? unit test、CICD、stage、master * 第二份工作 * contract record model to improve the efficiency of performance analysis. * 提高分析效率,實際上改善多少? 例如耗時減少 30% * 你們怎麼監控 pipeline ? * 你們的 ETL 是 batch 的還是 streaming? * 你們如何維運 ETL,例如有 pipeline 有 bug、或是其他 team 對 data 提出問題 * 你們怎麼監控 pipeline ? * ~~如果走 streaming、real time 的 ETL,~~ * ~~graceful shutdown~~ * 會怎麼實做 * 你們怎麼實做 * 工作過程中,有遇過一些開發流程上不完善的地方嗎? * 你如何去改善這個流程、架構 * 你們資料來源是什麼? * 例如 backend ? * backend 在 release new version 之前 * data team 如何確保新版本,data 不會有問題 * 你到目前任職於商線公司嗎? * 三月到職,為什麼想換工作 針對 Peter,我也給一些 Summary * 結論:不到 senior level,有 junior level。如果尋找 junior,可以勝任,但 senior 可能無法 * 針對技術上 * 關於處理 ETL 的經驗,他也是用 airflow,但沒有做 unit test,CI 基本上可以視為沒做,也無 stage 環境測試 ETL。 * 屆於以上這點,他們在開發上,merge 後,直接上正式環境,導致有時會在 production 上出問題。 * 我細問解決方法、避免再次發生,他回覆是,有問題再修,或是在 production 上測試。這與一般正規開發流程不同,理論上應避免這種狀況,但因為他們的 ETL 也是 batch,所以只要在下一次 scheduler 之前修好就好。 * 我認為產品開發上,production failed 是不能被接受的,不能因為 batch 就妥協,因此這心態與處理方式,我認為不到 senior。 * 人格特質 * 配合度高,會接觸新技術、架設個人網站,技術不深但有初步觀念,有機會從 junior 開始培養一些好習慣,養成到 senior。 -------------------- * 我先自我介紹,我是前一份工作也偏向軟體工程師,所以包含 devops 也有接觸 * 另外我跟你介紹目前 17 data team 的狀況 * 17 在 data 這部分還算新團隊,正在往成熟團隊前進 * 我們正在建立 CICD 流程、過去 ETL 是用 digdag 這個工具,主要都是用 bash 的方式去寫 bq 的 command line,當然這也沒有測試,而這季 Q3 我正將主要的 pipeline 轉用 airflow,包含加入 unit test、CICD 等, * 所以先給你心理建設,這裡會需要做很多重構部分,不單純是程式碼,devops 相關的開發流程,也都需要建立好的開發習慣 * 另外 data team 的資料基本上都是來自 backend,但 backend 改版不一定會跟我們說,我們正在建立這個 scope,除了每次改版提前告知我們之外,要如何驗證新版是否會影響 data,也是目前在處理的問題,如果是你,你會怎麼做? * 你去過日本留學? 17 最近總部搬到日本,基本上我們每天早上都會跟日本團隊 sync,跑敏捷,所以會講日文這點我覺得蠻不錯。 # airflow ### 舊的 TABLE 做修正 * 發 PR 到 bq-view * 點 airflow 上對應到的 pipeline 按鈕 ### 新的 TABLE * 發 PR 到 bq-view * DE 加新 pipeline 到 airflow,merge 到 stage * 點 airflow 上對應到的 pipeline 按鈕 # airflow ID * Jing 118375812817717743574 * Lish 106414363560172660867 * Sam 118271601614892487389