LINE Corporation 於2023年10月1日成爲 LY Corporation。LY Corporation 的新部落格在這裏。LY Corporation Tech Blog

Blog


LINE Recruitment Day 2021 活動紀錄

前言

由於疫情突然的加溫,LINE 工程團隊緊急將活動改為線上的方式呈現給大家,在避免群聚的情況下盡可能地呈現最好的方式給大家,同時也讓大家了解 LINE 工程部門裡每個團隊所負責的內容,以下就整理出當天的所有內容給各位囉!

議程列表

介紹

本次活動頁面https://linegroup.kktix.cc/events/20210522-devel

開場由 LINE Taiwan CTO - Marco 為大家介紹,因為大環境的關係,觀察到許多人使用網路的方式改變了,同時也看到線上線下整合(Online Merge Offline)的趨勢,而在 LINE 的生態系服務當中有許多都是使用 Online Merge Offline 的方式,如 LINE SHOPPING、LINE SPOT、LINE Taxi...等等。現在也人手一隻手機,並且裡頭也都安裝著 LINE,為了提供用戶在這數位生態圈中生活更加便利,因此我們也就打造了各式各樣的服務來提供給大家。

除了打造服務外,由於人員越來越多,當然也就需要 Developer Relations 這樣的部門角色來建立起優良的內部文化,讓大家除了在打造生態系服務的同時,也可以透過各式各樣的內部活動來互相學習與交流,讓每位工程師可以將自身努力的經驗分享給大家。那到底做了些什麼呢?以下就由 Developer Relations 部門的資深技術推廣工程師 - Evan Lin 為大家介紹這個角色日常都在做些什麼。

Internal Developer Relations

LINE 的工程文化中,分為以下三點

  • Take Ownership
    • 我們注重讓每位開發人員的自主權,從規劃、開發、參與討論,讓大家決定該做什麼、該怎麼做。這邊講者首先以 Antman 這個專案為開場介紹,透過工程師們自主提出問題,與不同團隊協同開發,讓壓縮的方式來節省圖片儲存空間(詳細參考此篇)。
    • 接著是去年的 LINE SPOT 口罩地圖,因為疫情的關係,剛好搭配 location-based 的 LINE SPOT,在短短的幾天內迅速打造出口罩地圖,讓各位可以在線上就可以查詢還有哪邊還可以買到口罩,在嚴峻的疫情下效率最大化讓大家可以以最有效的方式找到需要的東西。
  • Be Open:我們鼓勵每位同仁多參加研討會或是當講者,除了分享自己在專案上學到的東西外,也能學習不同領域的講者所使用的技能,在以下也會有片段介紹相關內容。
  • Trust and Respect:因為疫情,我們需要透過 Work From Home 的機制來避免相關問題,透過此案例也驗證了這個文化的精髓。

除了上述的內容之外,我們也舉辦了舉多官方的 Meetup(如上)並參加研討會以及社群,不管是透過 實體/線上 的方式呈現,希望透過這些內容除了讓大家更了解運用的技術之外,也可以更了解究竟要如何才有辦法加入 LINE 的工程團隊當中。

當然除了對外的活動之外,也有許多內部活動,如寫作日、On Job Training、Internal Hackathon...當然還有一年一度的盛會 - TECHPULSE,如果對於這些內部活動相當有興趣的朋友,千萬要多關注以下的內容唷!

LINE Pay 團隊

除了大家平常所使用且熟悉的支付服務以外,其實日常也需要處理金融相關信用卡回饋等等的專案內容,而從 TECHPUSE 2020 之後,LINE Pay 陸續提供了 Extra Service 來達到在地化服務,像是 我的會員卡廣告投放與透過LINE Pay 地圖讓大家知道到底有哪些商家支援 LINE Pay,不用出門就可以知道可去哪邊使用 LINE Point 回饋點數了😊。

在日常處理不同的專案之外,LINE Pay 也含有許多內部 PoC 專案,身為工程師一定會有很多想法想用,想實驗很多新學的東西,透過這些專案去驗證想法的可行性,讓想法有機會進入產品之中。

若認同 LINE Pay 文化,歡迎加入 LINE Pay:

Q: 請問不熟 Java 可以投 LINE Pay backend 嗎? 例如: Python, Go。
A: 都歡迎來面試,不過可以多花一點時間準備 JAVA 會比較好。

Q: 請問專案開發,包括 planner, dev, security, qa 總共有多少人執行一個專案?
A: 實際上人數沒辦法透露,但參與人數會跟專案大小有關。

LINE TECH FRESH 技術新星人才計畫

過去在公開活動中,同仁們時常會被詢問:「實習生再加入後是否只能在特定團隊內工作?」,過往有許多同學透過特定專業能力進到實習生計畫中,而我們都很鼓勵每位同學勇於挑戰不同的領域,持續強化不同的專業能力,找尋出自己的想走的道路。

除了日常專案與累積技術能力之外,我們很鼓勵透過文章的方式呈現來記錄自己的學習成果,同時也將自己的學習成果分享給未來的學弟妹們,讓大家可以參考學長姐們的結晶,有興趣可以參考以下內容:

此外,我們每個月皆會舉辦月會讓實習生可以在固定的時間中與不同專業領域的 Mentor 們聊聊,除了了解前輩們過往的經驗之外,透過交流也可以了解到新興人才們所思考以及顧慮的部分,也讓我們能夠更持續的優化這個計畫的內容。

在經過一年的磨練過後,我們也希望菁英同學們有機會加入 LINE 工程部門的大家庭中,一同為 LINE 打造 WoW 的產品給社會大眾,讓你所寫的每一行程式碼都成為大家日常生活的一部份!

LINE TODAY 團隊

作為大家天天會用的主流新聞平台,除了日常提供大家許多新聞相關題材外,其實裡面也含有許多不同的內容,如:賽事直播(近期很火紅的 NBA 季後賽也有轉播)、
電影訂票選情專區泰國限定的樂透電影...等等,擁有這麼多功能都是為了讓用戶可以在 LINE TODAY 中看到大家最新、最值得關注的內容。

擁有這麼多功能的平台,同時也是一個跨國的產品,同時也提供給泰國、印尼以及香港,為了服務這麼廣大的用戶,在開發流程上也採取了 Large Scale Scrum 的方式(這部分可參考 TECHPULSE 議程)來管理這麼龐大的團隊,目前也正積極找 FrontendServer-SideQA AutomationQA 的工程師,若您對於更詳細的介紹大家可以參考 Recruitment Day 的影片喔!

LINE 電商團隊

電商已成為現代人不可或缺的一部份,在本次的議程中很詳細地透過不同的例子(母親節、送禮優惠...)來解釋在 LINE 電商服務中的不同使用情境,讓大家可以更快速的了解透過 LINE 來購買相關東西時的好處以及可用性。

接著再透過大家常見的 LINE Point 點數回饋來解釋從 LINE SHOPPING 導購服務中所延伸的整體架構流程,讓大家了解到為了整體的延展性與維護性需要透過怎樣的設計才能夠達到。

而在電商這麼大的團隊中也與其他團隊一樣,是透過 Scrum 的方式來管理與交付產品,除了有效管理交付內容之外,也可以讓團隊成員以最有效的方式來完成產品內容。

當然團隊裡不可少的 code review 與內部分享會都會有,透過這些流程讓大家在更了解不同成員的思路之外,也能讓團隊中有更多的交流來有效的促進產品的活力!

QA 工程團隊

開場 Richard 帶大家了解 Quality Assurance(QA) 以及 Quality Control(QC) 的差別,很多時候會覺得當產品(服務)要上線前只要讓 QA 測完後就可以上線,而若在上線前的階段才做測試,往往所遇到的問題以及付出的代價都會相對高許多。

而在 LINE Taiwan QA 部門這邊為了確保整體服務的品質,會在專案早期就參與計劃定製,與 Developer、Design、Planner..等等不同部門的角色一起討論整個流程,協助訂定不同的 Scenario 讓初期的討論可以更加完整。

而在開發階段時,QA 同仁則會開始建立許多不同情境的測試案例,同時也與 developer 討論相關情境與測試自動化的相關問題,讓 QA 的同仁可以有更好的切入點找出問題,同時也透過自動化讓整體作業更加順暢。

同時 QA 團隊除了建置自動化流程外,也會打造 CI/CD 輔助優化整體流程。我們透過自動化讓我們獲得了不少的好處。更多精彩內容也歡迎各位參閱影片內容。

若您對於優化提升品質與以及自動化工程等等的工作內容有興趣的話歡迎參考以下職缺,目前也正如火如荼地找尋優秀人才!

Q: 請問您們用 cypress 自動化測試工具時,有遇到什麼困難點嗎?

  1. Cypress 是 Javascript based, 大部分的 QA 需要學習了解 JS 的特性
  2. Cypress 不支援 mobile app solution
  3. 目前 Cypress 未支援 iframe,官方已經在開發中
  4. Cypress 無法進行垮 domain 測試
  5. 團隊從 Python / Selenium / Robot Framework 體系切換過來,對 JS 開發生態 / 語法的不熟悉。這個是透過團隊內部的 study group,以及直接找前端同事請益的方式解決

Q: 當有測試的情境是無法用 cypress 測試時,是如何克服呢

  1. 就技術上而言,如果夠了解 JS 相關語言,可以解決蠻多 Cypress 本身的限制。例如上方提到 iframe 的問題,可以運用 jQuery 寫一個 Cypress comment 來處理,抑或是請教前端工程師來協助一同開發 Cypress。
  2. 如果是 UX 相關的情境,不得不手動測,自動化的幫助就是把小工具準備好,讓測試執行順暢。
  3. 就測試情境上來說,應該蠻多機會會遇到 E2E 需要 cross domain 的 situation。LINE QA 團隊其實會把 test case 維持一個主軸來測試,test case 不會過於複雜,遇到 crosses domain 會運用 mock, stub 等相關 SUT 概念來完成整合測試。

Frontend 工程團隊

LINE 裡有許多服務都是使用 Web 相關技術打造而成的,而作為前端的一份子,就是要讓用戶可以在 Client 端與 Web 端使用起來的體驗一致,以下這些服務你使用時是否也覺得跟 APP 差不多呢?

且由於前端產品線很多,許多時候需要打造共用的工具來讓不同服務可以使用共同的元件,把已有成效的解決方案有計畫的打造出來,除了品質統一與避免重造輪子之外,也讓往後新進來的人員能夠有個標準化的內容參閱來維護既有的產品。

而接下來公司的方向將會漸漸將重心轉換到自然流量上,因此 Frontend 團隊就會更多處理 SEO 與 Web 效能優化 相關的工作內容,同時也引入 SSR 以及 AMP 來對齊公司的目標。

當然在裡面也會與不同團隊的成員合作,讓產品可以更快速地交付、維護、更安全以外,內部也會透過分享來讓更多團隊了解不同的解決方案的優點。

最後,Frontend 團隊由於成員會持續協助不同專案以及產品的開發,在大家學習到不同的經驗之後也會透過許多的讀書會來分享不同專案間的差異與經驗,藉由交流也讓彼此可以更快速的上手且了解不同專案的屬性。

今年 Front-end Engineer 正在擴大招募,尋找在前端領域的高手們來一同來打造驚艷的產品於 LINE 生態系中。

iOS & Android 工程團隊

近期也在打造很火紅的電商直播,讓 LINE 購物可以有效整合直播,優化用戶的邊看邊買的體驗。

除了這部分當然也有負責許多其他的在 LINE 中的功能

  • LINE TODAY
  • 影片自動播放
  • 邊看影片邊回訊息的功能(Picture-in-Picture)
  • 訊息長截圖(TECHPULSE 影片)
  • LINE MUSIC mini player

團隊中除了負責既有產品之外,也會貢獻 Open Source 、引用新技術以及重構以前的程式碼至較新的語言上,除了降低編譯時間外,同時也讓往後進來的人員加入時可以更好的維護程式碼。

更多職缺請參考招募日文章

SRE 團隊

在 SRE 團隊中,量化指標 以及 Data-Driven 是很重要的兩個部分,接著才會透過工具增加監測指標以及服務的可靠度,最後若有需要時才會開發標準化的工具給所有團隊使用,也透過提供這些標準化的工具,讓開發者們可以更專注在 application 上。

當然為了上述這些事情,SRE 團隊使用許多工具來處理,並藉由一些自動化 alerting 來找尋問題的所在點。

由於服務眾多,且由於服務們皆需面對大量的用戶,因此都需要迅速且系統化的部署應用程式,所以每個團隊的服務都要以 container 的方式呈現,接著會透過 CI/CD 的工具整合並部署於 Kubernetes 上,同時也讓服務可以獲得水平擴展的能力來處理大量的請求。

除了上述提到的事情之外,LINE 裡面有許多 PoC 在被實踐之後,避免浪費資源同時也注重開發者體驗,因此在這邊有建立一個內部 OpenFaaS 的平台提供給需要部署 PoC 的開發者使用,讓大家在最短的時間內部署應用程式測試可行性。

Q: SRE 要有什麼相關技能呢?
A: 這邊提出幾個相關技能,詳細還是以日後 LINE Career 上面開出來的職缺為主喔!
Application observability, Public cloud experience (AWS, GCP, Azure), Web application/technology stack, CI/CD tooling, Linux Operating System,Networking...

LINE CLOVA AI 團隊


許多人第一次認識 CLOVA 時應該都是智慧喇叭,其實在打造產品時也同時打造了 AI 技術平台 - LINE BRAIN,經過了一些時日,將兩個產品名稱合併並稱為 - LINE CLOVA,合併的過程這邊就不贅述,請大家參考影片中的內容。

更多產品細節可以參考 TECHPULSE 2020 的 LINE CLOVA 主議程

而在 LINE Taiwan 團隊這邊,主要以 NLU、FACE、STT、OCR 去打造不同產品的應用,而 LINE Clova Technical Project Manager 與 Product Engineer 主要會與總部的核心團隊合作,並利用相關技術在台灣團隊打造本地端 AI 相關應用服務。

大家可能會好奇這兩個職位分別要做什麼(除了看以下內容外也可以參考 LINE Career 上面):

資料工程團隊

資料工程團隊有兩個最主要的目標,一是透過 AI 提升在地化的服務的價值,另一個則是透過資料科學與機器學習的方式讓資料可以洞見在商業上的價值。在兩個目標的支持下,就打造了POI 推薦系統NLP知識圖譜(Knowledge Graph)增益模型(Uplift Modeling)...等等相關的服務來提供給不同服務使用,讓大家更了解使用者的輪廓與偏好,更精準的讓使用者收到自己想要的內容。

過程中除了很詳細的介紹每個系統背後的運作內容外,也強調了 MLOps 所帶來的好處,透過 MLOps 也讓整體的交付速度更加快速。

延伸閱讀:

最後也透過範例來解釋每位角色成員間所會負責到的內容以及工作項目,讓成員在合作中更有效地發揮自己的專業能力。

相信 AI、ML 這麼熱門的話題與職缺大家一定都很有興趣,大家不妨看看以下的職缺內容吧!

其他問題回覆

Q: 使用其他技術為自己主要技能樹,是否也能加入 LINE 呢?
A: 我們重視基礎觀念與實際解決問題的能力,若您有把握也歡迎來聊聊!

Q: 是否提供新加坡職缺呢?
A: 地區與職缺部分以 LINE Career 上面為主。

Q: 是否有曾在專案開發時,同時收到許多 Production Issue 導致需要花額外的人力解決,而影響專案的時程呢?
A: QA 團隊在專案開始時就訂定許多 scenario 來降低服務上線時所會遇到的 issue。如上線時遇到了其他的 issue,我們會在最短時間內評估問題與訂定處理流程,盡可能地降低其他專案被影響的時間。

Q: 開發時的技術選用及架構方式,是由 tech lead 決定亦或是由成員們討論而產生呢?
A: 由每個成員們討論來選用技術架構(lead 也會參與其中),也藉由討論來找尋不同專案中所會遇到的問題。

Q: "Server-Side Developer - Common Platform" 職缺所負責的內容是?
A: 工作內容會以 Global 的產品為主,歡迎對於跨國產品有興趣的大家前來投遞履歷喔!

活動小結

立即加入「LINE 開發者官方社群」官方帳號,就能收到第一手 Meetup 活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE 開發者官方社群」官方帳號 ID:@line_tw_dev

關於「LINE 開發社群計畫」

LINE 今年年初在台灣啟動「LINE 開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦 30 場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看: