[Memo] After being a Mozillan for one month

 Image Credit

( Summit 2013 at Santa Clara, 點原圖來找找看我在哪裡)

Amazing Place

懶骨頭、Aeron 椅、Mac 系列、歡樂的 MozSpace、天天取之不盡的下午茶大軍(也要看菜單,通常全麥麵包配葡萄乾都我在吃 xD)、永遠不會空的冰箱 … 等,這些基本公司福利就不提了,這對於每天瘋狂用腦寫程式的工程師來說,真的是一種救贖。有的時候在位子上待累了就會和同事跑去坐在 MozSpace 的高腳椅上面,轉換心情再出發!

(因為找不到 4F 的照片,拿 5F 的來充當一下 xD)

Large Scale Software Development

台灣區主要是負責 Firefox OS (又稱 FxOS)的開發,但是這個專案不只是台灣區的員工在開發,是全世界的人都可以一起開發貢獻的,而我之前說實在的沒有很多這種大型開發的經驗,最多也才 2 ~ 3 人同時開發而已,連 Conflicts 都很少看到 … 所以在這邊我學習到了如何數百人同時開發一個 Project on Github,這當然也有很多額外衍生出來的 Policy 要遵守,像是:

1. One PR must be accompanied by a bug on bugzilla
2. Squash commits into one commit in a PR
3. Add a bunch of Unit Tests

除此之外,因為專案太大,所以我們是 by App (就是手機上的那個 App 沒錯)來開發,而每個 App 都會有幾個它專屬的 Owner 及 Peer ,這些人通常都是該 App 的主要開發者或是維護者,也是最了解該 App 程式碼的人。通常,你的 Bugfix 要 land 之前,都必需經過這些人來 Review,只有通過 Review (就是 r+)的程式碼才有資格被 land 進去我們的專案裡面。

不過我覺得這邊也有一點缺點,通常就是 Review 的量和 Reviewer 不成比例,很常看到 Reviewer 們一邊要解很多 must-be-fixed bug 還要應付從世界各地如雪花般飛來的 Review Request,所以通常整個 Review 的流程會被拖的很長,不過這也是為了要維持 App 程式碼一致性的犧牲吧。

Summit 2013 In Santa Clara

身為 Mozillian 最酷的一件事情就是可以參加 Summit !!(其實不只 Summit,還有很多機會要到處飛來飛去 Cowork XD)這次的 Summit 真的是讓我印象深刻,而最深刻的莫過於那屬於 Mozilla 自己的文化。我們 Open Source、我們到處推廣、我們做很酷的東西同時我們也一直改變著世界。

在 Summit 裡,你可以看到很多人都是 Volunteer ,也有很多人都是學生或是非資訊領域的人。而把我們聚在一起的,就是這種 Mozilla 的文化,在這裡人人平等,不論種族膚色,我們都是一群人,一群推動著世界前進的人。這邊最特別的就是他們會用很多 Group Discussion 的方式來進行活動,你會發現通常都是亞洲人比較不敢發言(我也是 …),但是

這次大會的活動中可以看到很多正在實驗中或是還不能對外正式公佈的專案,當中讓我印象最深刻的有以下幾個:

1. Shumway – a Flash VM and runtime written in JavaScript
2. OpenBadge – A online service that you can collect your certificated badges
3. Together.js – A service for your website that makes it surprisingly easy to collaborate in real-time

他們實際的作用就如後面的說明文字一樣,如果有興趣就點進去了解更多細節吧 xD 這篇不是技術文,ahaha

感想

真的要說感想好像也不太對,這應該比較算是一種體悟吧。雖然我大學時期接觸很多社群活動,但是多是技術性質的,而 Mozilla 散發出來的感覺卻不太一樣,就算你不是 Developer,你也是可以一起加入大家,一起做點什麼。如果你是學生,那你也可以以校園大使的身份加入 Mozilla,把打 LOL 或是魔獸的時間省下來多做點有意義的事情,你會發現其實人生真的多了很多空間與方向。

我覺得就算哪天我不在 Mozilla 工作了,它的精神也將永遠伴隨於心。期待在商業利益掛帥的現實社會中,你、我都能夠闖出一片清流,用自己的雙手及行動力去改變些什麼,哪怕只是一個文字、一個程式甚至是一場參與,你會發現,慢慢地世界就開始被我們改變著,朝著我們心中的烏拖邦前進。

[Memo] Dream bigger, because you deserve it indeed

Image Credit

前言

這一篇文章,我已經構思許久,打從辭職後我就開始記錄我的心境轉折還有遇到的所有事情。四個月過去了(這篇文章是寫於 2013/8/21,而我辭職的時間是 2013/4/19,剛好滿四個月),我也依照著我自己心中的想法走到這一步,也才有這篇文章的出現,就讓我和大家分享這四個月我學到的東西吧。

很多人不了解,為什麼我會從人人稱羨的 T 公司離開,其中工作經歷還只有短短的十個月。有兩個原因,第一個原因是我在幾個月前就安排了一個為期七天的長假,和我當兵的好朋友書玄一起去菲律賓體驗 Couchsurfing 的文化,而 4/19 的半夜就是我們出發的那一天。第二個原因是,因為上層的改組決定,讓原本一起工作的團隊被迫中止,打散所有人到各個部門去。雖然我的 Manager R 真的很賞視我,但是因為工作的性質和我未來規劃(及個人專長)有所落差,所以最後就因為這兩個原因離開了 T 公司。也許真的很可惜,但是人生就是這樣充滿轉折吧?而我的人生,也是因為這一次勇敢的辭職,有了改變。

原來,我喜歡旅行

在 Manila 的那七天,我和 Kobe 認識了很多到很好的菲律賓朋友,我們一起 Couchsurfing,一起和整個 Manila 的 CS 社群租下整台 Jeepney 去玩傳說中的 Pagsanjan Fall,一起誤打誤撞跑到了高山 Mt. Ping-as(下圖),一起去體驗當地的夜店,一起在整個只有我們兩個台灣人的體育館內打羽毛球,一起去 Taal Volcano 看那奇妙的火山地形,一起去看那永生難忘的 Manila Bay 的日落。

好多好多的旅行衝擊,讓我找到失去興趣的自我(寫程式原本是我的興趣,但是在變成工作之後就漸漸消逝了)。原來,「旅行」是一件我很喜歡做的事情,而它可以衍生成為我的一個興趣,讓我在下班(寫程式)之餘調劑身心,成為我生活的另一個重心。

從菲律賓回來之後,旅行這件事又衍生出一個名為 TwoBackSurfers 的團隊,就是我、書玄還有翔 Sir 三個人的小小團隊,我們開始到處去旅行,還花了七天以 Couchsurfing 的方式去環島,除此之外也開始做我們自己的衣服、自己的吊牌、自己的網站、自己的影片甚至是經營自己的 Facebook Page。很多人曾問過我「為什麼你要做這麼多吃力不討好的事情」,但我總是笑笑的沒有回答,因為我也不知道為什麼,但是我打從心底卻認為這是一件我由衷想做而且必需去做的事情。

「原來,我喜歡旅行,如此而已。」

創業?真的不是這麼簡單

而工作方面,我才知道,原來所謂的「辭職創業」,不是簡簡單單一兩個人當口號用喊的,而是要真的下去做過一些明確的市場調查,而且真的要有短期斷糧的決心才可以,我當時就是抱著一種嘗試的心態在做這件事情,才了解到原來現實世界和你想的根本就不一樣。你每天最擔心的問題就是「今天有沒有錢吃飯」,然後還要承受少數親朋好友給你的無形壓力,而這些真的都是壓死人的稻草。

我這個時候才知道身邊的那些創業朋友是以多大的壓力在生活(應該無法想像),也了解到自己在做這個決定時沒有思考清楚的問題。

雖然最後我們放棄了,但是未來,也許是幾年、幾十年後,當我有足夠的人脈、有足夠的錢不怕短時間內斷糧並且還有一個可行計畫的話,我還是會再試一次,再從轟轟烈烈的戰場中學到更多的事物吧。(我很建議大家去看猴子靈藥在書中討論「辭職創業」的這件事情,特別是打算要「辭職創業」的人,我就是看了然後不信邪,硬是要自己走一次證明他的論點讓自己痛過才學到教訓)

轉機?

之後,我剛好有機會和台灣的天才級駭客 C 一起遠端共事,雖然工作是以接案類型為主,但是因為裡面有許多跨國的案子,所以多了很多機會要自己和外國人透過信件溝通,這時,我才了解到在大公司的我,已經開始習慣說一做一的部隊化管理,所以很多時候不懂得變通,其中有幾次還造成 C 的困擾,但還是很感謝他願意花時間教我,讓我不止在技術上,甚至是溝通、時程規劃之外的事情上有所成長。

「雖然,我離他們的世界還很遠,但是至少我有這個機會在他們的背後跟著,一起朝著下一個未知的世界前進,也早已讓我心存感激了。」

可惜的是,C 也認為我這樣子以 part-time 的方式工作很難養活自己,因此他建議我該是時候考慮一下去尋找下一份穩定的工作,先讓自己免於斷糧危機才能夠有更多的空間與時間來做自己想做的事情。我想了想也覺得合理,所以我認為該是開始思考尋找下一份工作這件事情了。

面試

就在七月環島完後,我覺得差不多是時候開始投履歷了,因為唯有穩定的工作才能維持我到處旅行的計畫,也才能生存下去。所以七月中開始我就在求職網站上面尋找所有有關「前端工程師」的工作機會,而依面試順序最後統整出六間公司的一些資訊,希望能幫助到有需要的朋友(如果看不懂就直接跳過吧,這邊都是技術的東西)

1. Richi – Web Developer

 

通常大家都知道有這間公司的存在,但是卻不知道他們在做什麼,他們目前最知名的服務就是線上的紅利點數交換平台,不過他們最近開始要發展新型態的業務,但為了達到這個目標所以會需要異業合作,而前端工程師會需要花 40% 的心力維護平台,然後花 60% 的心力來因應不同的業務需求來客製化網站或是平台,並且是以小型編制的方式來和不同的人員合作。

就技術面來說,因為面試我的技術主管是從 Y! 公司來的,所以在前端的領域著墨很深,很多問題我覺得都問到了「點」上,因此如果是以學習成長空間為考量,因為這邊的人都是之前待過 T、Y!  … 等許多大公司,所以他們也有很多東西可以讓你挖,整體來說是可以學到很多的。而我也覺得他們接下來要發展的新型態業務是非常具有潛力的,就長遠來看是一件相當值得投資看看的公司。

結果:得到 Offer 。

2. iNDIEVOX – Software Engineer

 

有在玩音樂的人都知道 iNDIEVOX 專攻的是音樂電子商務的領域,辦公環境也相當特別,會讓你有一種身處在咖啡廳的錯覺,到處都是音樂相關的唱片、海報還有相關產品。福利就是和一般的公司一樣依勞基法規定,除此之外就是很多時候會拿到很多和廠商合作的公關票,所以對於喜歡音樂的人來說這真的是一個很好的環境。而面試雖然和主管討論了很多有關於前端的問題,但是因為他們的職位比較需要的是專注在後端的人,所以最後我的資料就被 bypass 到友站「streetvoice」,這一部份我之後會再詳談。

結果:因為和他們要的人不太一樣,所以被轉介到友站 Streetvoice。

3. Vpon – Frontend Engineer

 

因為以前在 T 公司的時候就看我們的神手 iOS 工程師 I 分享過 Vpon 他們廣告平台的一些資料,所以對於他們公司有一定初步的了解了,才想去應徵,同時想看看這間公司到底是怎麼樣的一個公司。我不得不直說,可能是因為他們對於我的學經歷有一定的認同,所以這是唯一一間沒問我任何技術問題的公司。

這間公司專注在行動廣告投遞,每天處理的訊息量只能用驚人來形容,而他們要尋找的是一位可以帶顉前端團隊的 Leader,並打造下一代的行動廣告投遞平台。說實在的我對於這個機會相當感到興趣,因為平時很少有機會可以接觸到大量資料。除此之外,這個職位也相當具有挑戰性,可以自己設計一個全新的平台及供開發者使用者 3rd libraries。

雖然如此,但公司認為我到職的可能性比較低,除非我確定會到職才會和我談更多細節並發佈正式的錄取通知。但對我來說,交通真的是一個很大的問題,文湖線和我住的地方相差甚遠。而我幾年前也曾經體驗過那人擠人的忠孝復興轉車惡夢,所以就決定放棄這個機會了。

結果:有拿到口頭 Offer ,但是因為交通的關係所以我最後放棄了。

4. FlipTop – Frontend Engineer

 

這是一間專注在分析大量社交資料的美商公司,而我有一位曾經一起合作過的 W 學長在裡面工作,所以當我在 PTT 得知他們要徵前端工程師的資訊時其實我還蠻開心的,一來是因為美商福利很好(可以參考他們的官方網站)、二來是我對於分析社交資料這件事情相當感興趣。但和公司聯絡上之後其實讓我有點失望,雖然他們開出來的職位是前端工程師,實際上面試的過程卻都是專注在後端及演算法的部份。

可能是因為 FlipTop 的系統是用 Scala 打造出來的,所以前端和後端的部份結合的有點密切,因此就算是前端工程師也要了解如何使用 Scala Lift。我覺得這是可以理解的,畢竟這是由整間公司所選擇的解決方案,只是以現階段的我來說,(Scala)能力就會和他們預期的人有所落差,雖然我用簡單的方式實作出來一個 workable 的平台,但是似乎和他們想要的不太一樣,被要求在 Performance 上面要有所成長。之後我就覺得,公司的「前端工程師」和我想像中的「前端工程師」有點落差,所以我就和他們說明我的決定後中止了接下來的測驗。

結果:提前結束前測就沒有後續了。

5. Streetvoice – Frontend Engineer

 

還記得前面我說到,我的資料被 iNDIEVOX bypass 給 Streetvoice 嗎 ?這是因為, Streetvoice 和 iNDIEVOX 的投資者都是中子集團,所以他們的辦公室是在同一個地方,不同區塊罷了。在業務上面,Streetvoice 和 iNDIEVOX 的不同點在於,他們主要發展的是獨立音樂的社交平台,因此整個網站的開發有很大的一部份是專注在這個平台上面。

而和他們的技術長聊天後發現,他們的團隊給予開發者很大的自由,在這邊大家可以玩新的技術並實作在新的產品上也可以一起腦力激盪來實作一些有趣的小 Project,相對於一成不變的工作環境來說,是有比較大的彈性的。

我想可能是因為我在 iNDIEVOX 已經被他們的技術長面試技術一輪的關係,所以 Streetvoice 的技術長也完全沒有問我任何技術的問題,可能覺得再多問一次很花時間,所以我們都把時間拿來討論公司未來的發展等等。

結果:聊完天的當下就直接得到口頭 Offer,並在數天後收到他們寄來的 Offer letter。

6. Mozilla – Frontend Enginner

 

對於前端工程師來說,Mozilla 這間公司是沒有人不知道的。大家都知道 Mozilla 基金會對於推動網頁標準這件事情不遺餘力,而其下產品 Firefox 更是改變 Web 的重要推手之一。其實我覺得真的是蠻幸運的,一來是因為剛好 Mozilla 為了要開發  Firefox OS 所以正在到處尋找人才,二來是因為我的 Resume 並沒有因為只有十個月短短的資歷而被刷掉,所以才有機會進行接下來的前測。

首先我真的要說,我覺得 Mozilla 的前測真的很有水準,因為題目是要求我要在一個星期內用 Native API (不能用 jQuery 等第三方 libraries )實作出一個 Autocomplete 的 plugin。剛好我很久以前就想做 Autocomplete 很久了,這次就順水推舟來實做一個自己的 plugin 吧。

在實作的過程中我才發現到,原來我們是多麼的依賴那些 libraries,光是 toggleClass / addClass / removeClass 這幾個極度常用的 function 都要自己先實作出來才有辦法繼續做下去,除此之外,還要自己去實作 ajax / getJSON 等 function 來溝通存取資料,這真的是要親自下手才知道原來這些 libraries 是多麼的偉大,處理掉這麼多繁雜的事情才能讓我們這些開發者以如此便利的方式操作元件,並專注在自己的 business logic 之上。最後,我也順利的通過所有面試。

結果:在最終面試結束後的隔天中午接到電話錄取通知。

最後

這四個月來,有許多不為人知的心酸,有苦、有累、有歡笑、也有淚水,但很開心的是我身邊還有這麼多人支持著我,如果沒有大家,就不會有今天的這篇文章,也不會有今天的我了。

知道為什麼我把文章的標題下為「Dream bigger, because you deserve it indeed」嗎?因為我總是覺得,不論當下的事情是好是壞,對未來的自己一定都是一個轉機。而年輕的我們,千萬不要忘記作夢的能力,也不要把自己的夢做小了,通常,如果那件事真的是你朝思暮想的夢,很有可能,你已經具有一定的能力去實現他,只是你自己不知道而已,放手勇敢去做吧。

不要害怕去嘗試,怕的應該是沒去嘗試的自己,如果當時辭職後沒有經前同事 L 學長提醒,我也不敢主動去嘗試那些人們眼中遙不可及的公司,也就沒有這麼多有趣的面試故事可以分享了,真的很感謝他。

即使未來人生的路上到處充滿著未知與挑戰,但至少我發現,我已經一步步朝著我高中時既定的目標在前進了,無愧於心,這樣也就夠了吧?

最後,我只想說一聲,

「謝謝你們。」

-moz-eragonj: true;