想多了解 Dcard 的開發生活?事不宜遲我們就繼續往下看吧,Let’s go!

開發團隊組成

Dcard 的開發團隊包含 Function team 與 Delivery team 兩種組別。

Function team 意指專業能力的分組,如 iOS team, Android team, Backend team… etc。而我們會將特定 Function team 的夥伴拉出來組成開發專案的團隊,在 Dcard 我們稱為 Delivery team。身為團隊的 Web Backend Developer 夥伴,將同時隸屬於 2 個團隊,在 Delivery team 和夥伴開發專案之餘,也會和原本的 Backend team 的夥伴進行技術討論與學習交流。

在產品開發中,我們鼓勵互相討論,不論是開發需求或是進度,大家都十分尊重夥伴的專業和想法。我們相信唯有知道「為什麼」而做,想要做到的目標是什麼,做出來的產品才能夠更符合用戶需求。也正因為團隊有非常明確的目標管理方式,對專案開發的優先序和目標有共識,所以團隊能夠很精實地往專案訂定的目標前進。

身為工程師的日常

在 Delivery team 中,無論是開發方式或開發時程,PM 和工程師都需要時常互相溝通討論,如何能夠更理想的達到專案目標。

比如說在專案中,我們常常會碰到一個比較複雜的需求,但同時又希望能夠盡快完成產品相關的實作,好盡早取得使用者的回饋。在這個兩難的狀況下,開發的團隊成員們往往需要透過不停的溝通與討論,才能在「實作的品質與完整度」 v.s. 「快速取得使用者反饋並改進」兩者中取得一個共識與平衡,最終將新增或已改善的產品功能,更好地交付到使用者手上,解決他們實際的問題與需求。

除了產品功能快速迭代的開發流程,Dcard 也有所謂的「OKR Week」,好讓工程師們能夠有更多的自由與時間,去解決、改善其他與工作上所碰到或發現的問題。

每 2 個月我們都會給開發團隊的夥伴約一週的時間,去做自己想要嘗試的專案或題目。像 Backend 的夥伴就曾利用 OKR Week 優化內部開發的 framework,或是重構既有的系統以增進效能與使用者體驗⋯等。在這「OKR Week」中,因為開發者能夠更加自由地規劃開發的時間與進程,許多夥伴都是透過這段時間,在專案中嘗試了許多的新技術與想法,也間接地促使開發者與團隊有更多自我成長的機會與空間。

關於新技術與成長

Dcard 團隊時常應用新技術在產品端,而每個 Function team 的導入時機都有些不同。

以目前 Backend 團隊而言,除了前面提到的 OKR Week ,促使開發者有時間可以嘗試新技術與想法外,另外 Architect Team 的夥伴們也會時常研究一些比較新、有趣,或是能幫助我們更快解決問題的技術;在經過一些驗證之後,便會和 Backend 團隊的成員們討論適當的導入時機與專案。

而團隊也有定期 2 週一次的讀書會。分享的議題和內容都非常開放,跟程式相關都 ok!在讀書會中每位夥伴時常交流自己看到的新技術,分享之前在專案踩過的雷,工作上的效能瓶頸、工作碰到的困難如何解決,和資料庫實作的一些細節⋯等,什麼議題都有。

最後不免俗地工商一下,Dcard 正在強力徵求 Web Backend Developer 加入。如果你認為你是勇於去接受新事物新挑戰,學習新的技術,並想要和我們一起打造千萬流量產品的話,歡迎加入我們!

成為 Dcard 的 Web Backend Developer 👉🏻 https://grnh.se/6b79b5051us

到官網看更多職位 👉🏻 https://join.dcard.today/

MaiCoin 集團旗下金融科技公司 — AMIS 帳連網路甫獲 109 年度國發基金「創業天使投資方案」,是今年來唯一通過的金融科技業。隨著金融科技不斷創新,MaiCoin 集團致力於根基於台灣,發展嶄新的金融體系,打破網路與實體世界,將金融、物聯網與市場結合,攜手與富邦與台新金控進行合作,建立市場領導品牌;數位資產服務建基在金融科技技術,MaiCoin 技術團隊具備良好開發能力與對技術自我要求不斷增進,持續網羅優秀人才加入,技術團隊辦公室座落於台北市信義區,鄰近捷運站交通便利,舒適辦公環境,優於市場薪資水準,開放式管理風格,可彈性上下班與休假,並提供健檢、健身房、結婚與生育等優渥補助,期望打造一個兼具工作與生活型態文化。在 2020 GopherCon Taiwan 當天,AMIS 帳 …

從 PHP 轉向 Golang 的效能大解放

許多公司的 technology stack 都是以 Linux + PHP + Nginx 為公司標配的開發模式,以初期的發展模式來說PHP有幾個優點:

  • 社群龐大
  • 學習曲線低
  • framework 百家爭鳴
  • 招募人才容易

選擇 PHP 的確是一時之選,但當到了公司的業績逐步成長時,追求的不再是快速開發,反而是需要著重穩定性,且執行效率優良的方案。

在團隊技術評估的過程中,考慮過的語言有:Node.js、Java、Python、Golang,而我們認為符合公司發展的程式語言條件有:

  1. 強型別
  2. 高效能
  3. 學習曲線中等
  4. 社群不能太小
  5. 官方文件好閱讀

至於各語言的淘汰原因為下:

  • Node.js 啟動相關前置套件過於龐大,所以不採用。
  • Java 則是官方 api 文件太過於龐大複雜,而且那麼純 oop 的語言對於團隊發展而言 …

享譽國際的年度頒獎計畫表揚傑出的 AI 和機器學習解決方案與公司

專精於人工智慧(AI)的台灣新創公司沛星互動科技(以下簡稱Appier)今日宣佈 AI Breakthrough 於其 2020 AI Breakthrough Award 選拔中,頒發「最佳整體 AI 驅動分析解決方案(Best Overall AI-based Analytics Solution)」獎項給 Appier AiDeal 產品,以示肯定。AI Breakthrough 是業界領先的產業情報機構,旨在表揚全球在 AI 領域中表現傑出的公司、技術和產品。

Appier 於去年十月推出 AiDeal 電子商務促購解決方案,作為 Appier 全系列 AI 驅動平台和產品組合的一部分。AiDeal 採用 AI 技術來判斷哪些是「即將購買」、「只逛不買」或「游移不定」的用戶。在了解真實消費意向後,AiDeal 會特別針對「猶豫買家」推送限時優惠促銷訊息,藉由創造購買動機來增加成交率。

透過在對的時間、對的管道提供優惠與折扣,AiDeal 成功幫助 Appier 的客戶加快顧客結帳的速度,同時幫助游移不定的用戶終結猶豫、清空購物車。AiDeal 利用先進的機器學習技術分析進站用戶的瀏覽行為,包括網站和手機,進而幫助零售業者確認其用戶的購買意圖。其觀察的活動特徵包括人們瀏覽特定商品和圖片的滑鼠移動軌跡,以及他們是如何瀏覽整個網頁,從細微的參數中判斷用戶的猶豫程度。

AI Breakthrough 董事總經理 James Johnson 表示:「對於線上零售業者而言,購物車棄置是電商業者經常遇到的挑戰。AiDeal 採用 AI 技術來發現猶豫型顧客,並能進一步鎖定有機會因為收到獎勵而買單的用戶,對業界來說是一件讓人印象深刻的突破。透過 AI 讓線上轉換率有顯著的提升,對全世界的電商業者來說都是福音。我們很高興將『最佳整體 AI 驅動分析解決方案(Best Overall AI-based Analytics Solution)』的殊榮頒發給 Appier。」

Appier 執行長暨共同創辦人游直翰表示:「由於購物車棄置的問題,電商業者每年損失的營收可多達數十、甚至數萬億美元的營收。AI 是幫助釋放營收和加速業務轉型非常關鍵的要素,以滿足消費者因為疫情而迅速改變的工作、生活和娛樂方式。AiDeal 的進階機器學習技術可基於當下活動快速進行受眾區隔,分析的數據越多,就越能替最有價值的受眾提供最佳的出價配置,以確保行銷預算被有效運用。我們的客戶像是必勝客已藉由 AiDeal 解決方案獲得傲人的成績,其官網訂單成交率平均提升 15% 以上,交易完成時間縮短了 20%。我們很榮幸能獲得 AI Breakthrough的認可與表揚,也期待能為全球的領導品牌持續推動業務成長。」

AI Breakthrough Award 旨在表揚於 AI 和機器學習相關領域中有卓越成績、勇於創新並且努力取得成功的服務提供商,類型包括 AI 平台、深度學習、智慧機器人、商業智能,自然語言處理,行業特定 AI 應用程式等。今年的計畫吸引了來自全球 15 個不同國家共 2,750 多個參賽者提名參選。

結構化日誌

原先的系統使用 Go 內建套件 fmt 或是 log 輸出日誌,如果要印出較大的結構,需要自行組合格式化的字串。2018 導入 zap 套件,它是由 Uber 開發人員。特色是輸出結構化 JSON 的日誌,並且支援各種資料類型的場 (field)。以 Kibana 收錄日誌,支援解析日誌,就可以輕易過濾指定的場,顯示關注的日誌。

大海撈針,精準定位

某個對外閘道每日產生 13 億條,有如汪洋大海。每個動作都會如實紀錄,以便日後可以追蹤。客戶需要協助的時候,提供輸入輸出參數和時間,FAE 同事於 Kibana 用時間去逼近,這種日誌量級做起來很累人,效率很低。
開發人員研究如何降低此痛苦,研究了 Twitter ID,轉換成 Base62 編碼,名為追蹤碼(tracecode)。使用 zap 輸出,Kibana 蒐集。此後 FAE 只要向客戶索取追蹤碼,即可快速在 Kibana 重現狀況。

錯誤處理

Web 服務常見的層級有資料、邏輯、入口,有些訊息無法從內層如實轉發到最外層,勢必需要內外分離。以往的寫法是收到錯誤就輸出並且流程返回,日誌只會看到發生地方的錯誤,無法知道脈絡。感謝開放原始碼社群的奉獻,讓開發人員可以使用 pkg/errors,將呼叫堆(callstack)和錯誤物件包裝起來,逐層往上返回,在頂層收集統一處理。

由於使用 web 框架 echo 提供中間件機制,所以建立一個全新的套件,蒐集每個返回的錯誤,輸出日誌。echo 內建的中間件裡有個請求識別,原理是收到請求生成一個識別,放在標頭,處理器可以隨時取得運用。開發人員將此機制發揮,請求和響應皆使用同一個追蹤碼,輸出日誌即可以產生一對日誌,方便比對尋找。

i18n

由於公司客戶眾多,分佈在世界各地,系統需要提供各種語言。微服務架構的落實,內部訊息也需要翻譯給外部閘道,提供較精確的訊息翻譯。錯誤處理的完善,提供開發人員可以實現內外訊息分離,內部訊息可以詳細輸出,外部訊息則使用翻譯樣板,達到翻譯統一。外部閘道可以放心將收到的訊息輸出給請求端。

長青資訊

發揮所「長」 匠「青」獨具

「擁抱變化,勇於接受挑戰,面對競爭能全力以赴。」是長青資訊的企
業座右銘,2016 年由一群資深遊戲開發者所組成的菁英團隊,至今已自創超過 100 款線上遊戲,長青掌握著超群的核心技術,使其成為遊戲界最受人注目的潛力股。

到新創公司上班,最怕遇到公司福利不完善的問題,長青卻是大方對待自家人,辦公室備有取之不盡的零食飲料、下午茶與不定期聚餐,且這都還只是基本款,公司會提供免費早餐、員工餐及鮮榨蔬果汁,讓夥伴不僅省荷包,還補足了精神。此外亦不定期舉辦活動,包含社團、包場電影欣賞、家庭日活動及年度補助員工旅遊與健康檢查等,讓人備感長青大家庭的溫暖。

長青人享受冒險、創新、驚喜、學習與成長,但重要的是,公司願意將夥伴視如已出,提供舞台讓夥伴發揮所長,帶領其在遊戲圈內刻劃出不容置疑的專業,一同前進!

https://cchn.co/zh-tw

GopherCon Taiwan

The official blog of GopherCon Taiwan

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store