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 徵人

索引:


下面提到的所有職缺都有在找人,有些下面說明的職缺在人力銀行上不一定會開 (招募效果不好的會暫時先關掉,再研究要怎麼改),有興趣的可以寄信到 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

NomadList 的「最佳遠端上班城市排名」

應該是某天 Hacker News Daily 的連結,堆在瀏覽器上面:「NomadList」:

The best cities to live and work remotely, based on cost of living, weather, internet speed and other metrics. By @levelsio

比較的標準包含了生活消費、氣溫與網路速度... 如果不設條件搜尋,前三名是清邁、台北、曼谷?hmmm...

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

看到布長輩提到:

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

  • php
  • mysql
  • ccna

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

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

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

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

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

關於 Android 授權 (License) 的爭論:Linus Torvalds 的說法

昨天提到的「header file 與 GPL(v2) 的「衍生作品」...」,Linus Torvalds 也跑出來講話了:「Android: Sued by Microsoft, not by Linux

It seems totally bogus. We've always made it very clear that the kernel system call interfaces do not in any way result in a derived work as per the GPL, and the kernel details are exported through the kernel headers to all the normal glibc interfaces too.

他也不認為 header file (也就是提到的「kernel system call interfaces」) 會造成 GPLv2 內所提到的 derived work。

header file 與 GPL(v2) 的「衍生作品」...

Slashdot 上看到 Richard Stallman 在 2003 年 1 月對於 GPLv2 header file (當時只有 GPLv2,沒有 GPLv3) 對於作品是否有「感染力」的看法:「RMS On Header Files and Derivative Works」,也就是「如果我用了 GPLv2 的 header file,是否我的 code 因此就要使用 GPLv2」的問題。

Richard Stallman 在找了律師談過之後,引用 header file 不足以成為 GPLv2 裡面定義的「衍生作品」(Derivative work):

Our view is that just using structure definitions, typedefs, enumeration constants, macros with simple bodies, etc., is NOT enough to make a derivative work.

這篇剛好回應最近有人質疑 Android 因為使用 GPLv2 header file 而軟體本身使用非 GPLv2 授權的問題:「Android Faces Serious Linux Copyright / Copyleft Issues with GPL」:

Google used Linux headers, but did not release Android under the same GPL2 license, which is the most basic precept of GPL. (Android is released under the Apache Commercial License.)