GitHub 大幅調漲企業方案

GitHub 推出以 user 數量計費的方案:「Introducing unlimited private repositories」。舊的方案可以參考在「web.archive.org」這邊記錄下來的內容。

這個方案下的個人帳號會大幅受益:原先最低消費的 USD$7/month 是 5 private repositories,現在變成 unlimited private repositories。

而企業方案將會大幅調漲,雖然現有的 Plan 還是存在,但有種開始殺雞的味道了。

以前 USD$200/month 可以買到 125 個 repository,現在只能給 22 個人用。同時因為 GitHub 對 deploy key 的限制,跨 repository 時無法重複使用同一把 key,就需要用到真正的 user account,這點就變成額外的成本了。

看了一下內部的數字,不是多一倍兩倍的費用,而是多一個數量級...

HTTPS 的好處

Akamai 網誌上的 PR 文章「The move to an Encrypted Web」提到使用 HTTPS 的好處,其中的「Improve data integrity」這點不僅僅是對使用者有好處,另外站在這兩年把 KKBOX 轉向 HTTPS 化時,使得被 ISP 干擾的問題消失。

早期 KKBOX 的服務都是走 HTTP (包括網站與 API),三不五十就會遇到使用者抱怨登入會失敗,或是某些功能有問題。實際透過 TeamViewer 追蹤會發現 HTTP traffic 被 ISP 改掉了。

javascreener
取自「Comcast Wi-Fi serving self-promotional ads via JavaScript injection

從 2013 年買 CDN 服務時要求包含 HTTPS (圖片與 assets),然後升級 load balancer 並且先設定 HTTP 與 HTTPS 都可以用,然後到 2015 年一路改寫 (包括 server 的支援與 client 的改寫),到 2016 總算把大部份的服務 (API 與網站) 都搞定了。

這其實也歸功於目前其他大多數服務都已經上 HTTPS (包含了網站與 IM),所以 port 80 + port 443 已經變成現代防火牆一定要打開的部份,不然很多服務會沒辦法使用。比起十年前有些單位會擋 port 443 已經好很多。

對 RD 來說,是個換過去就不會想要換回來的情況...

網站發生錯誤例外的監控

GitHub 在 2009 年就開發了一套監控各種 exception 的系統,叫做 Haystack:「Exception Monitoring and Response」。

有些人是用 Airbrake,不過我們家 (KKBOX) 是用 Rollbar,目前是拿來收集各種前端的 javascript error,之後應該會把 PHP 也接上去吧。

以前都要自己刻這些服務,現在也不用自己架,付錢掛上去用就好...

順道一提的是,Rollbar 在台灣有代理商可以處理發票的事情,對於稅務處理上面方便一些。

KKBOX 徵人:軟體開發中心 (i.e. Client Team)

索引:


在寫自家的介紹時,特地跑去跟軟體開發中心的主管要 Client Team 的介紹,人家交稿的速度快多了... Q_Q

Anyway,這篇是由 Client Team 的主管所寫的介紹,一樣是所有的部門都有職缺 (人力銀行上未必有開),有興趣的可以提供 resume 到 recruit at kkbox.com 這個信箱。


軟體開發中心 (Application Develop)

在 KKBOX 裡頭,我們還蠻習慣以老派的 Client/Server Side 來稱呼不同技術背景的開發人員,Client Side 說穿了就是開發 App 的那群人,只要你喊得出來的主要平台,大概就是我們負責的。

軟體開發隨著功能的演進,程式碼就會變得又肥又大,自然免不了些壞味道,面臨設計架構的難題,我們希望內部開發者能夠清楚三件事情: Design Pattern,Unit Test,和 Refactoring。上述觀念應當不用多說什麼,幾乎都變成顯學了。我們期盼透過一些原則和流程來讓開發工作變得不會那麼難以維護。

Client Side 目前共有四個 App 開發部門和 SQA 部門:

  1. Windows 開發部: KKBOX 在早期開發時,當時主流的作業系統還是 Windows XP,所採用的開發框架是 MFC,儘管技術很老,但那是個什麼事情都可以自己打造的年代,我們也樂此不疲。會用到 C++/COM 與微軟早年推出的視窗各類技術 MFC/ATL/DirectShow 。說個秘密,我們也還最低限度的維護著 KKman 呢。
  2. .NET 開發部: 主要負責的是 Windows Store App 和 Windows Phone 的開發,採用的是微軟在下個世代主推的 Universal App 開發框架來打造 KKBOX 在三個 Windows 平台的體驗。這部門需要熟悉的程式語言是 C#,部門有兩位微軟 MVP 相當熟悉微軟的平台技術,很活躍於微軟舉辦的聚會。
  3. Android 開發部: 很明顯地,就是在 Android 手機作業系統上開發 App 的部門,除了手機之外,我們也在 Tablet / STB / Smart TV 各式裝載 Android 系統的裝置上開發。需要熟悉 Java 程式語言和 Google Android SDK。這部門的開發人員很常在 Android Taipei 上出沒,分享開發心得。
  4. iOS 開發部: 聽名字應該也不用多解釋,主要就是在 Mac/iPhone/iPad 上開發 App,為了掌握最新技術每年我們都會派人前往舊金山參加 WWDC。需要會的程式語言是 Objective-C,當然蘋果力推的 Swift 也開始加入開發行列,每個月也都在 CocoaHeads 聚會中跟其他開發者閒聊。
  5. 測試開發部: 俗稱 SQA 部門,著重依據測試的原理和方法來設計測試案例,因此像是黑箱測試方法的 BVA 和 ECP,以及 MBT … 等等都是在設計測試案例時,會用到的測試原理。內部有個小組專門負責研究與建置自動化測試框架,讓各個專案可以各自依照需求建立自己的測試系統。需要熟悉 Python 程式語言,同時我們也將日常得到的心得放在「科科和測試 Testing with KK」上,提供給同樣想把軟體測試工作做好的每個人。

順道一提,除了 KKBOX 以外,還有 KKTIX,Hami Music 和日本服務 Utapass,也都是上述開發部門負責的。所以你要真的那麼愛寫 App 的話,那這裡應該蠻適合你的。

KKBOX 徵人:平台營運處 (API Team)

索引:


續上篇的「KKBOX 徵人」,順便跟 Client Team 的同事徵文,等他寫完後也會貼出來讓大家知道 Client Team 目前找什麼人。

Server Team 這邊徵人的部份順著每個部門說明,這次先講平台營運處 (API Team)。

曲庫開發部

曲庫開發部,負責接唱片公司所提供的 API 以及 DDEX 資料,將這些資料半自動或是自動化整合到 KKBOX 的系統內。

另外這個部門在某些情況下,會需要寫程式特殊處理曲庫資料。舉例來說,前陣子金牌大風被華納音樂集團併購,這時候就有授權單位轉移的工作要做。

人工上架的系統也是這個部門開發,由公司另外的部門作業。

API 開發部

API 開發部,負責開發與維護 KKBOX 應用程式的 API。

平台開發部

平台開發部,負責系統建制。我用條列的方式試著列一些出來:(應該是列不完)

  • 搜尋引擎的設計與維運,目前現在是使用 Solr,正在研究翻新成 Elasticsearch
  • 與曲庫開發部合作,像是音檔轉檔與 DRM 機制。
  • 與 API 開發部合作,像是依照商業邏輯選擇使用我們自己租用的國際頻寬,或是使用 Akamai 供應音檔。
  • 各種通靈業務。

影音服務開發部

影音相關的研發,也是偏 Server Side 的部份。

找什麼樣的人?

不限於這些,可以是聯集也可以有其他技能:

  • 系統分析、系統設計 (SA & SD),包括了以上業務的分析與設計,主管會調度分配對應的項目。
  • Java 工程師 (以及資深工程師),目前主要是針對平台開發部的搜尋引擎。
  • PHP 工程師 (以及資深工程師),這邊提到的四個部門都有在找。
  • Full Stack Engineer,平台開發部與影音服務開發部都有找。

待續...

冨樫中...

KKBOX 徵人

索引:


下面提到的所有職缺都有在找人,有些下面說明的職缺在人力銀行上不一定會開 (招募效果不好的會暫時先關掉,再研究要怎麼改),有興趣的可以寄信到 recruit at kkbox.com 這邊,如果只是想要問些問題的可以寄給我 gslin at kkbox.com

一般在介紹我所屬的部門時會這樣介紹:KKBOX 是 Client & Server 架構,所以這兩塊分成兩個 team。

R&D 的部份,Client Team 有五個團隊,前面是正式名稱,後面「」包起來的是我習慣的分類:

  • Windows 開發部:Windows 應用程式開發與維護。
  • .NET 開發部:Windows Phone (App) 程式開發與維護。
  • Android 開發部:「Google Team」。
  • iOS 開發部:「蘋果 Team」,包含 Mac 應用程式開發與維護。
  • 測試開發部:包括了上述的自動化測試以及手動測試。

我所屬的 Server Team 有三個 R&D 團隊:

  • 平台營運處:「API Team」,包括了開發與維護 KKBOX API,以及去接唱片公司的 API (像是,唱片公司會以 DDEX 格式將音檔提供給我們)。另外 KKBOX 的各類 Infrastructure 也會與這個團隊有關,像是 Search Engine 的建制。
  • 技術開發處:「Web Team」,包括了官方網站 (www.kkbox.com) 以及應用程式內的 Web View 的開發與維護,另外與網站相關的技術 (像是 Node.js)。而很多使用 HTML5 技術開發的 App 也是屬於這個團隊在處理。
  • 資訊系統處:「Billing Team」,包括了 KKBOX 內部的資訊系統,以及所有與金流相關的系統。

然後因為我在 Server Team 打雜,所以下面全部都是針對 Server Team 的職缺在說明... (當然,Client Team 的職缺也是可以寄信到上面講的信箱)

Overall

R&D 有兩個地點,一個在台北南港軟體園區,另外一個在高雄軟體科技園區。台北南港軟體園區是總部,目前有 250+ 人,高雄目前應該是 30+ 人。

內部大多使用 PHP 5.4+ 的環境 (大多都 PHP 5.5 了),有幾台機器用更舊的版本,目前正在 migrate 到 5.5。

PHP Framework 的部份,新的專案用 Laravel 4.2,目前計畫要換到 5.0。舊一點的專案用 Zend Framework 1.12,再舊一點的就是傳統的 PHP 了。

除了 PHP 外,還有用 Java (Search Engine 這塊) 與 Node.js (Server Push 機制),不過以 PHP 佔大多數。

資料庫的部份,MySQL 都已經是 5.6 (Percona 的版本,有單機版與 PXC 版本)。

版本控制的部份都用 Git,最早期的專案放在 GitHub 上,後來的專案有些放在 Gitolite,最近則是在轉移到 GitLab 上,配合 Merge Request 用。

冨樫...

要詳細說明公司福利以及這三個部門的職缺,但沒什麼力氣了,先讓我冨樫一下吧,晚點再開新的文章來寫... O_O

昨天 (2015/01/27) 在高雄 K Square 的投影片

主題「KKBOX Innovation Chat #5 - 利用AWS開發及實作新創公司的基礎資訊建設」的投影片:(Startup IT infrastructure: Developing and Working with AWS)

在準備之前有問了 ericpi (主辦),主要是以 engineer 為主,然後次多的是學生。所以主題上偏技術一點。

而因為主題是 for startup,所以注重的方向與一般公司不太一樣。在舉例上面,主要是以 KKTIX 以及猜猜巧克力為主,對於 KKBOX 的著墨比較少。

現場 Q&A 很踴躍,用了不少時間在 Q&A 上,結果講完跟 ericpi 去吃飯時差點睡在餐桌上,回到家確認沒有緊急的事情就倒下去睡死了。

另外對不起現場聽眾的... 記得講到後面有點累,會發現講到一半「咦,這句中文怪怪的」,就重新再說一次,但好像還是怪怪的... (這代表應該有漏掉沒發現的部份)

最近找人... (然後,KKBOX 正在徵才)

看到布長輩提到:

剛開始用 104 的系統找履歷時,都用一些很爛的關鍵字搜尋:

  • php
  • mysql
  • ccna

最近找起來比較有心得了,用這些關鍵字:

  • github & bitbucket
  • slideshare & speakerdeck
  • 各 conference 的名字

還有一些相關領域的關鍵字拿來找也還蠻不錯的...

另外最後宣傳一下,敝公司找人,包括 client 開發與 server 開發都有缺。(我主要是 server 的部份,client 的部份我會轉給我同事)

有興趣可以用 gslin at kkbox.com 聯絡... (不過話說回來,我下星期去日本,cc 一份給 hr at kkbox.com 會比較好)