研發人員-教育訓練


有別於學校內作業是在可控制的環境下執行,無長期維護需求,相對來說『產品』永遠肩負著穩定執行與功能擴充兩大使命。除了程式必須夠強壯來面對各種艱難狀況 (Disk full, Network failed, Out of memory, CPU busy),還需有優異的 Data structure / Algorithm 概念才能有效率的處理鉅量資料。Openfind 堅持『產品』須經的起不同客戶、不同環境下之嚴格考驗,而將程式寫成「人看得懂」且未來具「可維護性」更是一門高深的藝術。 一位工程師進入 Openfind 前三個月將接受專職教育訓練,訓練目標主要包含技術能力提升、符合工業標準之程式設計、架構規劃能力、軟體工程精神、培養團隊合作能力、以及如何寫出「可被維護」的程式。一步步將您培養成資訊業界的 Top engineer。

  • Language Encoding (DBCD、Unicode、UTF-8)
    各種編碼方式各有什麼優缺點,如何在 Windows and Linux 之下做編碼轉換
  • Multi-thread programming in each OS platform
    Multi-thread 有何優點,寫 Multi-thread 常見的陷阱,Mutex、Semaphore、Critical Section、Event 在 Windows and Linux 之下各該如何撰寫,各有何優缺點
  • Socket programming
    TCP and UDP 各適合用在什麼場合,Windows and Linux 之下各該如何撰寫
  • Database programming
    Index 有何優缺點,View 有何優缺點,Trigger 有何優缺點,Stored procedure 有何優缺點,什麼是 transaction,什麼是 two-phase commit
  • DLL programming
    Static and Dynamic 呼叫方式各有何優缺點,該如何撰寫
  • Web-based programming
    Javascript、Dynamic HTML、AJAX、GET、POST、CGI、Urlencoding
  • Security programming
    Buffer overflow、Encryption、Hash、Canonical、Web-based security、SQL Injection、Command Injection、Cross-site Scripting
  • IPC
    常見的七種 IPC 方式各有何用途,在 Windows and Linux 之下該如何撰寫
  • Algorithm
    常見的 Sorting algorithms 各適合用在何種狀況、Searching algorithms、Pattern matching、Multi-pattern matching
  • How to do a good design
    設計一個模組、架構的時候該考慮哪些因素,才會讓你的程式強壯、有效率、可被人看懂、有未來性
  • How to write programs with enough quality
    Coding convention、Coding discipline

研發人員-職涯規劃


Software Engineer

新進員工,一開始除了不知道該如何達成目標,也缺乏足夠的執行能力,需要資深人員 / 主管協助,給定目標後由主管告知達成目標需要的各個步驟,然後主管再從旁教導每個步驟該如何執行,就像是嬰兒學走路,旁邊要有人隨時照顧。

Senior Engineer

工作一陣子後有能力自行解決問題,確定目標之後,除了清楚達成目標的所需步驟,也有足夠的熟練度完成每個階段,並有能力回頭訓練新人。

Architect ─ 遇到難關時挺身突圍,衝鋒陷陣讓部隊得以前進

專精於技術類的主管,平時不需帶人,當公司遇到技術難關時,帶領一個小隊突破技術瓶頸,做出prototype開出道路,讓後面的大部隊可以跟進。Architect 也要負責 design review,各產品團隊功能開發的design由Architect review 並 approve 之後,方能開始執行。

Product Manager ─ 戰場指揮官,綜觀全局指揮方向

PM 是一間軟體產品公司的發動機,這個職務決定了公司每條產品線未來半年 / 一年 / 兩年 的發展方向,因此 PM 必須瞭解市場的未來需求、競爭對手未來的可能計劃及動態,進而訂出產品發展本身的定位及市場區隔,或是緊咬競爭對手做割喉戰。一個好的 PM 就像優秀的戰場指揮官,綜觀全局指揮方向,讓己方戰力可以得到最大的發揮。

Pre-sale ─ 偵察敵情,在第一線做出正確判斷

產品銷售時常需要做深度的技術分析及介紹。舉例來說,客戶會詢問:「我的企業有5萬人分散在台灣、大陸、香港及越南, mail server 會有行動同步的需求,請規劃後告訴我總共需要幾台硬體、頻寬約需多少、需要多少儲存空間、load balance / fault tolerance 應該怎麼做?該如何確保系統安全?舊的 mail server 上所有帳號及信件該如何移轉?如何做到無縫系統移轉?」 這類問題就需要有經驗的 Pre-Sale 擔任規劃專案的角色,以專業的身分協助業務及客戶。

People Manager ─ 協助排除障礙,確保團隊能順利達到目標

做為一個團隊領導的角色,並不用是整個團隊當中技術最強者,領導者主要職責是確定所有的團隊成員能順利完成工作,幫助成員排除障礙,協助他們成長,這個領導者的角色同時要瞭解自己的手下,把合適的工作分給合適的人,一方面要維持整個團隊的士氣,一方面要對外溝通協調,確保團隊成員做的事情方向正確,而不是浪費大家的時間。一個好的 people manager,可以讓周圍所有人戰力大幅提升。

技術支援-教育訓練


唯有最優秀的人才,才能實際操作線上系統、處理客戶正在運作中的系統。由於 Openfind 優異的產品擁有穩定、高效能及功能豐富的特色,絕大多數客戶都應用在極大規模的系統中,因此 Openfind 的技術支援人員必須面對大規模的營運環境,迎接各式嚴峻的挑戰 -- 例如: 3 萬帳號要同時順暢收發信,或如 15 萬帳號存在於同一系統的多主機分散式架構中,或是管理資料中心進行虛擬化轉換、採購百萬級設備…等等。除了細心、負責的基本工作態度之外,為了讓技術支援人員能提供客戶 100% 可靠的服務,Openfind 提供超過 6 個月,包羅萬象的在職訓練,確保同仁有信心、更有深厚的技術,能面對各式臨場狀況,靈活解決問題,快速提升客戶滿意度,成為所有客戶最可靠的專業支援。

  • UNIX (Linux, FreeBSD) administration
  • Script programming
  • Internet services (Mail, DNS, Web, FTP, … ) maintenance
  • Internet services protocols (HTTP, SMTP, POP, IMAP)
  • High availability mechanisms
  • Server-level hardware and storage
  • Data center management and network deployment
  • Information security (encryption, anti-spam, social engineering, …)
  • Large-scale and distributed system
  • Customer service and communications
  • Quality assurance and performance tests
  • Presentation skills

技術支援-職涯規劃


Deliver Engineer

新進員工,一開始除了不知道該如何達成目標,也缺乏足夠的執行能力,需要資深人員 / 主管協助,給定目標後由主管告知達成目標需要的各個步驟,然後主管再從旁教導每個步驟該如何執行,就像是嬰兒學走路,旁邊要有人隨時照顧。

Senior Deliver Engineer

工作一陣子後有能力自行解決問題,確定目標之後,除了清楚達成目標的所需步驟,也有足夠的熟練度完成每個階段,並有能力回頭訓練新人。

Architect ─ 遇到難關時挺身突圍,衝鋒陷陣讓部隊得以前進

專精於技術類的主管,平時不需帶人,當公司遇到技術難關時,帶領一個小隊突破技術瓶頸,做出prototype開出道路,讓後面的大部隊可以跟進。Architect 也要負責 design review,各產品團隊功能開發的design由Architect review 並 approve 之後,方能開始執行。

Product Manager ─ 戰場指揮官,綜觀全局指揮方向

PM 是一間軟體產品公司的發動機,這個職務決定了公司每條產品線未來半年 / 一年 / 兩年 的發展方向,因此 PM 必須瞭解市場的未來需求、競爭對手未來的可能計劃及動態,進而訂出產品發展本身的定位及市場區隔,或是緊咬競爭對手做割喉戰。一個好的 PM 就像優秀的戰場指揮官,綜觀全局指揮方向,讓己方戰力可以得到最大的發揮。

Pre-sale ─ 偵察敵情,在第一線做出正確判斷

產品銷售時常需要做深度的技術分析及介紹。舉例來說,客戶會詢問:「我的企業有5萬人分散在台灣、大陸、香港及越南, mail server 會有行動同步的需求,請規劃後告訴我總共需要幾台硬體、頻寬約需多少、需要多少儲存空間、load balance / fault tolerance 應該怎麼做?該如何確保系統安全?舊的 mail server 上所有帳號及信件該如何移轉?如何做到無縫系統移轉?」 這類問題就需要有經驗的 Pre-Sale 擔任規劃專案的角色,以專業的身分協助業務及客戶。

People Manager ─ 協助排除障礙,確保團隊能順利達到目標

做為一個團隊領導的角色,並不用是整個團隊當中技術最強者,領導者主要職責是確定所有的團隊成員能順利完成工作,幫助成員排除障礙,協助他們成長,這個領導者的角色同時要瞭解自己的手下,把合適的工作分給合適的人,一方面要維持整個團隊的士氣,一方面要對外溝通協調,確保團隊成員做的事情方向正確,而不是浪費大家的時間。一個好的 people manager,可以讓周圍所有人戰力大幅提升。

Consultant ─ 在後方依據自己專業的經驗,隨時提供因應的解決方案

在特定領域有豐富的經驗,能信手拈來舉出過去其它客戶遇到的疑難雜症以及解決方法,以專業形象取得客戶的信任。客戶遇到特定狀況找上對應顧問 (資安問題、個資法問題、ISO27001問題等等),顧問首先診斷客戶的狀況(病情),然後提出解決的一系列步驟(處方),最後再由客戶執行(病人配合用藥)。就像醫生一樣,所有藥品和醫療儀器都不是醫生發明,也不是醫生自行生產,但是醫生針對不同的病情知道該採用那些方法來解決問題,這就是 consultant 的價值。

程式設計大賽


一年一度的程式設計大賽是 Openfiind 優良傳統,今年想玩點不一樣的!有別於以往,今年不只拚技術,更拚創意與未來的市場潛力,因此把原本的程式設計大賽加入了不一樣的元素:

  1. 原創性
  2. 市場價值
  3. 團隊組成
採用 3 + 1 人的組隊方式,3 個 RD/QA 預先分好組別後,每組去找第 4 個隊員。
第 4 個隊員沒有任何限制,可以是 PM、UX Designer 也可以是 RD 或者 SE...
搶人大作戰的過程,比的就是平常人際關係的經營了...
2 天的比賽過程,所有參賽者...展現驚人創意,處處有驚奇!

比賽題目

Facebook API、Google Data API、Open Data、行動應用、Openfind 產品整合。
在這五個領域方向裡面,至少結合兩種,設計規劃出具有創意的應用。應用領域跟方向不限。

比賽結果名次公布

既然是比賽,就會有輸贏,分數總是有高下,這次評分方式採用 4 位評審 + 7 組互評的方式進行。 競爭非常激烈,第一、二名只差了 1 分!比賽名次如下:
  • 第一名:窮得只剩下創意 (Megaman, John, Iris, Jeffrey),總分:266分
  • 第二名:HIJAckers (Ansel, Issac, Jack, Howard),總分:265分
  • 第三名:瑪西和他的快樂夥伴們 (Dylan, Willie, 詠民, Marcie),總分:249分
為了增加比賽評分的樂趣,臨時增加了章魚哥獎,看看哪組評分的排名跟結果最為接近,連這個獎項,競爭也超級激烈!
最後,兩組並列第一:

    章魚哥獎:
  • NTD (Venser、Ian、Nicholas、長宏)
  • Mysterious (Jimmy、Jamei、Howard Chiu、Arthur)

[ 更多幕後花絮.. ]