Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Taipei.rb 201612 紅寶石工程師在澳洲生存之道

2,111 views

Published on

分享當初去澳洲找工作的原因,求職的甘苦談,以及軟體開發的工作環境跟台灣的異同。也分享在雪梨工作上學習到的東西,分享一個好工程師需要有的能力。最後也會分享澳洲軟體業的生態的觀察與分析,澳洲工作機會的分布、求職生態、產業生態、薪資行情,希望能對有考慮澳洲工作的人一些概念。

Published in: Engineering

Taipei.rb 201612 紅寶石工程師在澳洲生存之道

  1. 1. 紅寶⽯石⼯工程師 澳洲⽣生存之旅 ⿈若鵬 Jimmy (Ro-Pun) Wong @imagegospel
  2. 2. 台灣 2009.07 2008.09 2011.06 2013.07 2012.01 ➤ 四處打雜,遊歷⼤⼩公司,從傳統製造業轉向軟體業
  3. 3. 澳洲 2014.082013.08 2016.04 ➤ 從菜⿃邁向資深⼯程師
  4. 4. 故事怎麼開始
  5. 5. 澳洲?紅寶⽯石⼈人有飯吃嘛?
  6. 6. 謝謝 RUBYCONF TW ➤ RubyConf TW 2012第⼀ 次嘗試提供英⽂演講 ➤ 許多紅寶⽯旅⼈來台造訪 ➤ Sebastian是個在澳洲打⼯ 度假的德國籍紅寶⽯⼯程 師
  7. 7. 澳洲?原來來處處是⼯工程師!
  8. 8. 2013.08 遠端⾯面試
  9. 9. ⽑毛遂⾃自薦!
  10. 10. 四處⾯面試 ➤ Envato: 澳洲規模最⼤的新創紅寶⽯公司(墨爾本) ➤ Siteminder: 澳洲新創,有美國創投資⾦(雪梨) ➤ BigCommerce: 澳洲新創,類似Shopify,有美國創投資⾦(雪梨) ➤ PWC: 國際顧問公司,內部的產業創新部⾨(雪梨) ➤ Reinteractive: 紅寶⽯顧問公司(雪梨) ➤ JobReady: 紅寶⽯顧問公司(雪梨) ➤ Ennova: 紅寶⽯顧問公司(布⾥⼠本) ➤ Lawpath: 在incubator的新創,3⼈公司(雪梨) ➤ 還有其他 …
  11. 11. 四⾯面凱歌 ➤ 公司的軟體管理⽅式 敏捷(agile) ➤ 測試 太重要 ➤ 線上演算法測驗 請加油 ➤ ⿊板現場畫資料庫結構 別出包 ➤ Behaviour Driven Development 蝦咪挖歌 ➤ 難搞的⼈頭獵⼈ 賣相不好,下次再⾒!
  12. 12. 2014.07 再次⾯面試
  13. 13. 我要作 資深⼯工程師!
  14. 14. 各種的⾯面試⽅方式 ➤ 給你6⼩時,讓你幫公司現有的系統寫⼀個feature ➤ 功能開發、測試、code review、merge PR ➤ 給你演算法考題回家寫,寫好後現場⾯試來談程式碼 ➤ 現場debug ➤ 現場加功能和測試 ➤ 現場⿊板上畫資料庫結構
  15. 15. ⾯面試為何難
  16. 16. 台灣⼈人⾯面試的困難 ➤ 選⼈流程嚴格又慢 ➤ 英⽂ ➤ 聽不懂⾯試官的怪腔 ➤ 表達不順暢 ➤ 履歷表 ➤ ⽂化差異 ➤ 缺乏澳洲⼯作經驗
  17. 17. ⼼心得 ➤ ⼯作機會多,⼈才很少 ➤ 資深軟體⼯程師少,⼤都「國外」進⼜ ➤ 澳洲⼯程師素質參差不齊 ➤ 找第⼀份⼯作,好像回到剛畢業的⽇⼦ ➤ 紅寶⽯的圈⼦很⼩,久了會發現朋友們都在那幾家公司 ➤ 履歷好,識⼈廣,就變成⼯作來找你 ➤ PS: 紅寶⽯的世界很透明,公司都在這:https://github.com/ rails-oceania/roro/wiki/Australian-Companies-using-Ruby-on- Rails
  18. 18. ⼯工作⼤大不同?
  19. 19. “說⾯試難的不少, 但說⼯作難的並不多 -在澳洲⼯作的台灣⼯程師
  20. 20. ⼤家都是歪國⼈!
  21. 21. ⽂文化交流 ➤ 跟20個國家的⼈⼯作過 ➤ 了解各國地理民情 ➤ 聽奇怪的英⽂腔 ➤ 吃各國的食物 ➤ 德國蝦⼦的故事
  22. 22. ⼈人種⼤大不同 ➤ 不僅東西⽂化不同,每個國家也不⼀樣 ➤ 表達⽅式⼤不同 ➤ 法國⼈:超級直接 -「妹啊妹阿」、「啊撲通」 ➤ 英國⼈:客氣但是直接 ➤ 愛爾蘭⼈:腔真的超級難懂 ➤ 印度⼈:表達意⾒比較不直接
  23. 23. 尊重彼此,顧及感受,互相信任,重視⽣生活 ➤ ⿎勵與肯定的⽂化 ➤ 節奏慢 ➤ 對於錯誤相對⽽⾔寬容 ➤ PM: Are you happy with our discussion? ➤ Manager: Are you comfortable with your workload? ➤ 請長假是很常⾒的,超過⼀個⽉也很普遍
  24. 24. 遲到的故事 ➤ 與其針對⼈,不如⽤系統的⽅ 式解決
  25. 25. 什什麼是加班? ➤ 朝九晚五的⽣活 ➤ 節奏很慢 ➤ 5點⼀到,Manic就說:該回家了! ➤ 很容易達到期待 ➤ 為何「敏捷」會被推崇︖ ➤ 因為主管要在節奏慢的情況下,還要能完成軟體專案!
  26. 26. 軟體⼯程師⼤受歡迎:獵⼈頭無所不⽤其極
  27. 27. 學到了了什什麼 5點該下班啦
  28. 28. 定義「資深」 ➤ 俗氣點說,「資深」⼯程師就是「好」⼯程師 ➤ 對產出的信⼼,並協助團隊前進 ➤ 各種硬實⼒與軟實⼒的成熟度 ➤ 基本開發功、code review與測試 ➤ 熟悉市⾯上的技術,分析問題,拿捏最佳解 ➤ 軟體開發流程、透明化與⽂件化 ➤ 主動討論,勇於分享所知,承認⾃⼰的不⾜(Best Idea Wins)
  29. 29. 定義「資深」 硬實⼒力力 軟實⼒力力 AWS NOSQL Ruby on Rails ReactJS 測試策略 為⼈考慮 敏捷⼯具 謙虛 Continuous Deliver 系統專家 管理專家 SQL 解決問題⽅案
  30. 30. 基本功 ➤ Code Review很重要 ➤ 助⼈為快樂之本︖ ➤ 給你機會熟悉系統的這個部分 ➤ Production出事時,你能更迅速debug ➤ Code Review的重點 ➤ 我能在5~15分鐘內看得懂︖ ➤ 測試的標題,看作者有沒有漏掉scenario ➤ 對所有看不懂的地⽅提出問題,這樣作常常中獎 ➤ 重要的PR會去看specification,確認作者沒有弄錯
  31. 31. 有系統性解決問題的能⼒力力 ➤ local hosting -> AWS (stability and scalability) ➤ SQL -> NOSQL (dynamoDB) ➤ Monolith -> Micro Service (nodeJS) ➤ 外部廠商移轉 ➤ 如何有信⼼的在300個model的code base,測試又丟三落四的情 況下作新feature
  32. 32. 案例例:外部廠商轉移 ➤ 如何確保客⼾完全感受不到任何變化︖ ➤ 如何確定資料的正確性與⼀致性︖ ➤ 不斷challenge⾃⼰ Proxy 新外部系統 舊外部系統 新網站 舊網站 銀⾏ 財務報表系統 商業智慧系統
  33. 33. 個⼈人不要單顧⾃自⼰己的事 ➤ ⼯程師會有⼀種⼼態,為要專⼼解決⼿上的問題,忽略其他地 ⽅發⽣的事情 ➤ 分享彼此解決問題的⽅式,以及技術交流,是增進系統經驗, 以及增強溝通與邏輯能⼒的極佳⽅式
  34. 34. ““不要忽略軟實⼒的重要”
  35. 35. 「敏捷」死了了嘛?
  36. 36. 「敏捷」管理理是在成長的 ➤ 敏捷管理︖ ➤ agile manifesto ➤ 從這個概念演伸出很多的框架,像scrum、kanban ➤ ⾃我成長的團隊 ➤ 快速得到顧客、各部⾨回饋,確保做的是適切的
  37. 37. 敏捷管理理 ➤ agile manifesto ➤ 衍⽣出框架,像scrum、 kanban ➤ ⾃我成長的團隊 ➤ 快速得到顧客、各部⾨回 饋,確保做的是適切的
  38. 38. KANBAN ➤ 減少軟體管理上的資源浪費
  39. 39. KICKOFF ➤ Kickoff ➤ PM、Developer、Tester坐下來,⼀起確認票的需求有清楚 的被寫出,測試流程定義清楚 ➤ 沒有Kickoff不可以寫程式 ➤ 避免溝通上的資源浪費
  40. 40. 要可靠?寫測試 ➤ 澳洲的⼈⼒貴,⼈⼯QA稀少 ➤ 維持產品品質 ➤ 寫軟體的紀律,並當⽂件 ➤ 測試策略:希望能解決什麼問題︖
  41. 41. SCRUM ➤ Project Kickoff 專案開幕 ➤ Break project into deliverable stories 建⽴故事 ➤ Sprints ➤ Retrospective 檢討會 ➤ Sprint demo 成果發表
  42. 42. PROJECT KICKOFF ➤ 客⼈的感受
  43. 43. PROJECT KICKOFF ➤ 你怎麼設計這個系統︖
  44. 44. STORIES ➤ 討論客⼈會想要的需求,定義MVP ➤ 可以直接上線的獨⽴功能
  45. 45. SPRINT ➤ 定義Sprint長度,也許是1到3周 ➤ 在這個Sprint中,我們要 ➤ 選出最重要的票 ➤ 投票,定義⼯作量 ➤ 規劃合理的產出
  46. 46. RETROSPECTIVE ➤ 回顧: ➤ 做的好的地⽅ ➤ 遇到的困難 ➤ 學到的事情 (Lesson Learn) ➤ 希望可以有的
  47. 47. SPRINT DEMO ➤ PM、Developer、Tester、Sales、Marketing、Technical Writer 都會來 ➤ Developer會分享產出,團隊的成員都可以提供回饋 ➤ Marketing和sales都很⾼興能清楚看到產出,讓他們要應對客⼾ 時更有信⼼
  48. 48. 結語:敏捷真的有⽤用? ➤ 在⼀個平⾏的組織裡,同事都有共通的默契,效果很好 ➤ 在⼀個官僚體制重的組織裡,常常流於形式,成效有限
  49. 49. 其他議題 ➤ Solution Architecture 定義解決⽅案的架構 ➤ 讓開發者擁有full ownership ➤ Continuous Delivery ➤ 你能在多短的時間完成⼀個release ➤ Production就是最終測試機
  50. 50. 紅寶⽯石⼯工作分析
  51. 51. 45% 45% 5%
  52. 52. 薪資 ➤ 台灣年薪百萬的等級,差不多就是澳洲的年薪⼗萬的等級 ➤ 雪梨、墨爾本的範圍⼤約在6~13萬 ➤ 布理事本⼤約是5~10萬 ➤ 離開市區就沒紅寶⽯⼯作了
  53. 53. 公司類型 ➤ 紅寶⽯顧問公司(Reinteractive) ➤ 接⼤⼩公司的紅寶⽯專案,你需要是紅寶⽯⾼⼿ ➤ 國際軟體顧問公司(ThoughtWorks) ➤ 崇尚Pair Programming、TDD、BDD ➤ 使⽤各種軟體語⾔ ➤ 有可能需要加班
  54. 54. 公司類型 ➤ 創投資⾦投入的新創(Invoice2go) ➤ 產品公司,可以專注於好好開發功能 ➤ ⽤多種軟體語⾔開發,全能型⼯程師比較好⽤ ➤ ⼤公司的IT單位(Fairfax Media) ➤ ⽼系統的問題嚴重,系統改善緩慢 ➤ 學習處理legacy code
  55. 55. 公司類型 ➤ 新創孵育中⼼(Pollenizer) ➤ 補教業 ➤ 很多澳洲⼈想學coding,尤其是當紅的紅寶⽯還有 Javascript,因此補習班林⽴。當補教師的薪資不比⼯程師 差。
  56. 56. 臉書群組:「台灣開發者在澳洲」歡迎加入!!
  57. 57. 歡迎發問!

×