---
# System prepended metadata

title: 面試

---

# 面試

* 我先自我介紹，我是 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
