寫在「求職天眼通」發布之後:軟體開發者的社會責任

你用過這幾天台灣最熱門的 Chrome 套件「求職天眼通」了嗎?且看研發者 Denny Ku 作為一個軟體工程師,為了改變台灣社會創造「求職天眼通」的心路歷程。
評論
評論

本文原刊於作者 Denny Ku 的 Github 頁面,INSIDE 獲授權轉載。

這幾天台灣最熱門的軟體,能提供職缺留言功能,幫助求職者獲得真正職缺評價的「求職天眼通 Qollie(Chrome 外掛)」(新推出的官方網站請點此)就是由作者 Denny Ku 所撰寫。軟體與網路為這個世上帶來「人人皆可搜尋」的資訊平等時代,但也能為社會意涵上帶來「真正的平等」嗎?且看 Denny Ku 作為一個軟體工程師,為了改變台灣社會創造「求職天眼通 Clairvoyance」的心路歷程。

這篇可能不會講到太多直接跟技術相關的東西,如果你對這個東西怎麼寫出來比較有興趣的話,可以看這篇:Clairvoyance 是怎麼開發的  (Qollie 舊稱 Clairvoyance)。主要是希望這次從開發到現在較多人使用,中間受到許多幫助和指點的經驗,能夠被記錄下來,假如以後有人遇到一樣的事情能從中借鏡。當然,這也是對自己的一個反省。

首先還是得先講一下求職天~眼通是什麼,它其實就是個 chrome 的 extension,裝了它以後,能在人力銀行的職缺下方給評論,以及看到其他人給的評論, 載點在這裡 。其他說明的話 ptt 上的文章 會清楚得多。

求職天~眼通要做的事情很單純,就是像前面說的把留言功能加上去而已,不過其實就像我們平常在做一件事情一樣,用想的都很簡單。但總歸其實只會遇到三個問題:

  1. 真正做的時候會遇到問題
  2. 做出來之後有沒有人用會是一個問題
  3. 有太多人用之後又會是一個問題

下面來說一下從端午連假到今天為止的這一段故事,寫程式是這個故事很重要的一部份,不過其實還有很多其他眉眉角角可以跟大家分享。

在開始動手寫程式之前

在開發前,首要的認知就是知道:自己擅長什麼、手上有什麼資源,如果前兩者還不夠還要再準備什麼。其實有這個發想是在端午節之前,我平常是一個網頁前端工程師。

雖然也寫寫後端以及對系統感興趣,但我知道 full stack 是一個被濫用的職稱。這年頭多的是 Database 操作只會 CRUD 的前端工程師稱自己為 full stack,或是只會套 bootstrap 的後端工程師稱自己為 full stack。

最常用的語言剛好就是 JavaScript ,可以直接拿來寫 Chrome 的插件,但這還不夠,我還需要一個存放資料的 back-end。下面這個基本上就是我畫在紙上的草圖:

本來打算直接在 AWS 上開一個 EC2+RDS 放著,後來發現只是單純留言,也沒有要真正 render 一個網頁。這個 back-end 需要能達到兩件事情:

  1. 計算的能力
  2. 資料的持久性

首先是單純的運算能力,最終看上了 AWS 的另一個服務 AWS lambda,它是以 function 為單位,不會需要我去維護整台機器(serverless),而且當運算量變大時,我大 amazon 會自己幫我 scale-out。於是稍微研究了一下 serverless 這套 framework,也寫了一份筆記在這裡:

再來則是資料的持久性,我選擇了 DynamoDB,是個跟 lambda 搭配很常見的選擇。儘管它看起來就是簡單易用,但為了這個選擇其實下了不少功夫,一開始是因為對「最終一致性」有疑慮,所以去看了 CAP 理論:

後來再看了這本簡介分散式運算的書:

總歸對系統的架構有個理解後,才開始安心使用,儘管現在回頭看這兩份文本都可以跳過,但要做能 scale-out 的系統,對分散式運算如果一無所知的話,會沒有那個 sense,身為一個軟體人就不該對未知的東西姑息或害怕去學它。接著一切就緒後,我突然發現我少了一位設計師夥伴,基於不想在假日麻煩人,我上了 codepen 去看他們的 license:

codepen 是一個讓前端工程師放作品的地方,上面有蠻多好玩的設計以及如何實做的原始碼。有人會問跟 pinterest 有什麼差別?簡言之 pinterest 是比較偏向純設計師的。

簡單說一句話,就是 public pen 都是 MIT license 的,要使用的話,只要包含了他們原本的 license,就可以自由使用。雖然最後幾乎都只是參考概念,並沒有真正援用哪個 pen 上的東西,但身為一個軟體開發者,就應該遵守這些基本的規定,畢竟當真的有人要找你麻煩時,沒有不知者不罪這種事情。

如果對於這些法規方面以及技術有興趣的人,可以去 follow Muzik Online 首席工程師 Ant 的臉書,上面有許多能讓技術人有一些法規 sense 的文章,而且對於 Database 和系統架構,上面也很多東西可以看。

好了,現在我有:

  • 前端開發能力
  • back-end
  • codepen 上參考的 UI

再來只是需要時間就能把東西做出來了。

發布 Beta 版本

大家看到的版本,其實是有滿滿 bug 的 beta 版本,我只有讓身邊幾個朋友測試過,就先 po 在 soft_job 板上。

讓開發者以外的人先測過這一步至關重要,因為自己開發的東西一定會有盲點。

會這樣做的原因是因為我想知道這東西是不是真的有需求,當時 po 完文章就去睡覺,早上看到有三十推就覺得蠻開心,結果幾個小時候 TonyQ 將它轉到八卦版去,直接一個爆衝。但結局讓我又開心又害怕:

  • 開心的是這東西真的有需求,而且很有需求。
  • 害怕的是我覺得這東西還不夠成熟,怕一開始太難用就直接被拋棄。

令我意外的是, aws lambda 和 DynamoDB 完全撐住了流量,當初把這些東西交到雲端託管有了成效,後來去看 log 發現沒辦法留言,都是原本 code 裡面有 bug,跟 AWS 一點關係都沒有 XD 不過後續就一直修到昨天晚上為止,留言功能才算正式穩定下來。

收到回饋之後

接著除了大量的 bug 回報之外,也收到許多跟功能上有關的回饋。其實大部分的回饋我都認為做了功能絕對會更完善,但時間並不允許這樣做,所以問題並不在於「現在要做什麼」,而是「現在不做什麼」。

這裡感謝 TonyQ 以及榮尼王給我的許多建議。

因為背負著很多人的期待,我並不能想做什麼就亂做什麼,必須訂下一個明確開發的方向,就現階段而言,讓這個 extension 活下去是至關緊要的事情,因為已經有了第一批用戶(已註冊目前大概約四千多人),剩下的只是繼續累積。太激進、會讓人力銀行對這個 extension 採取行動的事情,都不該去做,因為目前還玩不起這個槓桿。

不過 github 上面有許多人提了一些有辦法解決的方法,總之,沒有「絕對不做」的事情,只有「現階段不做」而已,有興趣的人也可以去看看,集思廣益:Issue 討論區

商業化的迷思以及贊助管道

有蠻多人在提到這件事情要商業化,也有人覺得只要「不商業化」就先把你貼上「傻傻、不懂事」的標籤。但其實我一點都不排斥商業化,我只是單純的覺得這件事不適合,或者現在沒想到適合的方式。像是如果要在上面硬是建立一個什麼商業模式,(像是廣告什麼的)這東西最後看起來只會是一個擾民的垃圾。

而且當以獲利角度來做這些事情,我就不能單純站在勞工的角度去思考了。至於要永續經營,後續等真正穩定下來後,會放上小額捐款的連結,這件事會在擬定如何公布經費的使用以及規劃後才做,不在現在就先急著募錢的原因很簡單,因為我想讓捐錢的人真正弄清楚他們的錢為何所用,畢竟群眾募資不是大乞討,懂?

未來方向

這裡不談功能,最終的希望就是所有的勞方都會是天眼通的用戶。因為大家並不是一年四季都在找工作,但大家卻是一年四季都能上去做評論,有時候並不是說一定要面試過或怎樣才能做評論,短期內,可以揭露一些根本沒必要去的職缺,長期下來,經驗的分享才是這個 extension 最難發揮價值的地方,「老馬識途」這種事情,在職場上也是適用的,總之,如何吸引大家去做這件事,就會是接下來的主要課題。

一個軟體工作者的反思

終於寫到這裡了,前幾天看到了 Codetengu 上分享了這篇文章:

我也想到前陣子 Alpha Go 很夯時,阮一峰所寫的文章:

身為一個軟體開發者,能了解電腦能做到的就是大量自動化、去中介化,去取代掉那些機器可以取代的員工,企業為了達成這件事情,自然要雇用一堆軟體工程師來幫忙,所以軟體工作者也變成一個搶手的職業。所謂技術帶來的平等,是指「資訊上」的平等,我們的資訊流通因為網路和軟體越來越快,舉例像是:歐巴馬總統和我們一樣都能用 google 快速查東西。

這年頭不知道還有沒有人記得百科全書這東西

但在財富上卻不盡然,我們拿到越來越多薪水時,也讓越來越多的人失業,當此同時,除了繳了多一點點的稅,我們大多數人並沒有負起什麼社會責任。儘管軟體開發者理應是最有辦法讓想法付諸實現的人才對,畢竟軟體能夠運行在電腦這個已經稱霸全球的載體上,更別說我們還有了 Internet 這樣鋪天蓋地的通路,寫程式這件事雖然有時候我也會因為智商不夠用覺得好難,但是比起動不動要砸大錢的製造業,寫程式真的容易實現多了。

寫程式是世界的潮流沒錯,只是許多台灣創業家提到寫程式就很喜歡強調矽谷如何、如何,忽略了許多在本質上就有顯著差異的事情。

統計學裡面告訴我們:有顯著差異是要拒絕虛無假設的,這句話現在看來蠻有哲理。

我不會說面對國際市場是一件錯誤的事情,在商言商總是有許多額外的考量,畢竟連話說的不好聽,要怎麼讓人掏錢投資勒?只是很多問題,其實台灣有其因應的解決方式,而工程師本來就該是提出 solution 的人,而不是負責說空話的人,所以更應該要虛心學習用一個台灣人的角度來看向世界以及台灣,才能真正解決台灣的問題。

舉例來說:這個插件就是解決台灣特有的問題 XD,因為國外的求職平台沒有像台灣這樣被壟斷。中國那邊的招募平台也幾乎都有開放留言討論這個功能,資方跟勞方是積極在爭論對話的。所以這插件只有在這樣子的台灣才會有需求 XD。

題外話是其實台灣也有蠻多新的求職平台,像是 sudo,或是 yourator,都相當不錯,而且在資訊上也相對傳統的人力銀行透明很多,不過都是比較以新創或工程師為主。特別講到 sudo 是因為他們的留言功能更完整,(正因為以前就在那裡工作才更了解這些事情)裡面的就職顧問雖然是講話很愛中英交雜的 AIESECer,但絕對是真心要幫助工程師求職的:D

再來雖然現代人生活離不開電腦,但其實對於軟體相關的事務都是有疏離和懼怕感的,很多時候是因為身為人與機器的 Proxy 的我們沒有做好事情讓其他人有感。身為一個在軟體產業工作的人,這件事可能會蠻常見的,就是你有時候很難跟不寫程式的人敘述你到底完成了一些什麼 XD

舉例:

  1. 把什麼東西做了 cache 讓它更快
  2. 或是用了什麼 Design Pattern 提高了維護性

別人聽一聽常常是:「喔⋯⋯這樣啊⋯⋯」。但生活中到處都是我們能夠付出專業能力去改變的地方,工作之餘,還要有生活,生活之餘,我們還能改善其他人的生活啊 :D。當認為有正確的事情該做,就該運用系統化的角度去設計和解決,因為假如做出來不小心規模化,你的系統又扛得住的話,那可能就不小心改變世界了。

題外話是天眼通本來是個我跟別人講,別人只會說:「喔~聽起來還不錯啊」的 Project。XDD

再說我們身在這個年代,有各種雲端服務幫你搞定基礎建設(IaaS、SaaS、PaaS),還有各種框架幫你搞定 UI。基本上你只要有想法、計畫,再加上一段時間穩紮穩打的學習、練習,幾乎就能解開各種 Issue 了,不覺得很讚嗎?讚讚讚!

也期許自己未來是真正的 RD 工程師,

而不是出現 bug 只會 XD 的 XD 工程師:


Cookie 消失?試試看全新 AI 影像內容辨識:讓用戶看的內容決定看到的廣告

Google Chrome 即將淘汰幫助廣告主的工具—— Cookie ,它的離去將再一次地影響數位廣告產業。
評論
Photo Credit:<a href="https://www.shutterstock.com/zh/image-photo/ai-artificial-intelligence-big-data-internet-1075853384" target="_blank">shutterstock</a>
評論

透過GA分析進站者發現, Safari的新客數越來越多,難道這表示 iOS 的用戶數也跟著增加了嗎?注意了,這有可能是 Apple 封鎖第三方 Cookie 帶來的影響。隨著 Google 即將淘汰 Chrome 上的 Cookie ,這個幫助廣告主記住用戶受眾的小工具,將要再一次地影響數位廣告產業。

Photo Credit:驚點股份有限公司( FreakOut Taiwan )

後 Cookie 時代的廣告受眾如何鎖定?

各大廣告平台在過去幾年不斷地透過 Cookie 以及其它方式,悄悄收集使用者的用戶數據,隨著這幾年用戶的隱私權意識抬頭, Apple 與 Google 對於藉由 Cookie 辨識用戶資料的廣告投遞方式,持有不同的態度,這也將是所有廣告主的極大挑戰。當 Cookie 不復存在,要如何辨識使用者資料?

Cookie 消失了,或許會有新的數據辨識工具來取代,但是任何試圖跟蹤受眾的方式,都難以符合大眾對於保護隱私權的期望。另一方面,也極有可能無法再通過日趨嚴格的媒體監管限制。無論如何,數位廣告不能像過去一樣,無條件地使用類似 Cookie 的追蹤方式,來達到與現在同樣的廣告效果。

後 Cookie 時代內容辨識類型的廣告鎖定方式,將成為未來具指標性的投放策略。廣告與瀏覽平台或內文主題的高相關性,不僅能顯著提高受眾的互動度,更重要的是,完全不需要收集任何個人數據。

FreakOut Taiwan 不斷嘗試更友善的廣告投遞形式, 自 2016 年進入台灣市場的原生廣告,到 2020 年末引進「 Mirrors 」 AI 影像視覺內容辨識系統,都是以網路使用者的角度出發。「 Mirrors 」不需要使用傳統的受眾興趣設定,即可針對「目標受眾在觀看的影像內容」、「品牌自身競爭對手或相關指定系列產品出現的影片」來投遞 YouTube 上的影音廣告。

Photo Credit:驚點股份有限公司( FreakOut Taiwan )

AI 人工智慧影像技術突破,推動新一代內容辨識功能

傳統的內容比對廣告皆為自然語言處理 NLP 中心,基於「純文字」的比對來顯示相關廣告,如大家很熟悉的 Google AdSense 。但是,結合新興的 AI 演算和複雜的圖像辨識,已然能夠達到「影片」的內容偵測,透過增加多個比對層和基於自然語言處理 NLP 的基準定位,可深度學習並提供更精細的辨識洞察力。

舉例來說,若想要將汽車廣告投放給對汽車有興趣的人,我們要先從可能對汽車感興趣的受眾中開始推估,並且根據過去的經驗加入不同的興趣條件,最後針對素材更進一步地測試。透過 Mirrors ,我們可以讓廣告出現在有滿足特定條件的影片內,例如:在消費者觀看的影片中,出現汽車評測報告、自家品牌或競爭對手的 LOGO 、代言人等指定條件,再依照不同廣告主設定的預算判斷是否露出廣告。

藉由這樣的影像比對方式,可以更有效地根據消費者行為觸發廣告投遞條件,而不再是現行的用戶受眾數據。人的興趣是多樣且多變的,當對汽車有興趣的用戶在完成汽車的選購後,短期內將不會再瀏覽相關資訊,轉而瀏覽其他更具時效性的內容。透過消費者當下正在觀看的影片內容,取代消費者身上被貼上的數位標籤,將更貼近消費者本身的使用行為。

Photo Credit:驚點股份有限公司( FreakOut Taiwan )

Mirrors AI 影像辨識:用消費者看的內容決定廣告

2021 年台灣數位報告指出,台灣人在各網路內容服務中,最愛「網路影片」的比例高達 97.9%,遠超過 Vlog、串流音樂、網路廣播、Podcast 。

影音廣告早已是品牌經營的趨勢:根據 DMA 2019 年台灣數位廣告量統計報告指出,台灣各類型廣告中,影音廣告以 37.2% 的成長比例大幅領先奪冠。其中 YouTube 持續蟬聯台灣最常被造訪網站第 2 名(僅次於 Google ) ,在台灣各大影音平台中的觸及率及影響力不容小覷。

2021 年 FreakOut Taiwan 已與客戶合作,進行搭載新系統的 YouTube 串流內廣告投遞,在針對品牌及產品客製化的多層鎖定策略建議下,房地產廣告的 CTR 表現高於平均,並發現「人臉」群組辨識表現為佳,其中多為財經、名嘴等名人。而美妝品牌廣告 VTR 表現優異,則以品牌「 Logo 」、「人臉」群組有最出色的表現。

本文章內容由「驚點股份有限公司( FreakOut Taiwan )」提供,經關鍵評論網媒體集團廣編企劃編審。