美國軟體工程師的生活

Bill Cheng
7 min readApr 21, 2017

我是 Texas A&M University CS 碩班畢業生,大學主修是電機偏通訊網路,現職 ViaSat 軟體工程師。網路上已有許多文章討論怎麼準備面試和找工作,很少文章提及拿到 Offer 之後進公司的軟體工程師生活,所以我就在這裡詳細介紹我公司的日常。

工作內容

Agile 模式

我們公司運作是遵循 Agile 模式 開發。所謂的 Agile 模式就是每一到兩星期就會有一個新的版本軟體釋出,讓產品可以一直循環 (Sprint) 開發。美國現在主流的公司幾乎都是走這種開發模式,此開發模式非常的彈性也非常容易適應新的技術與問題,而我們公司一個 Sprint 為時兩星期。

Agile 模式有幾個比較特殊的地方是:

1.我們每天早上都會開15分鐘的 Stand-up meeting,顧名思義就是全程站著開會,站著開會的目的就是希望會議能在15分鐘結束,會議目的就是大家一個個報告三件事情:

(1) 昨天做了什麼?

(2) 昨天遇到什麼困難?

(3) 今天目標是什麼?

2.開會的時候 Scrum Board 會有 Ticket 作為每個人的工作任務(如下圖), Ticket 可能是新的 Features、Tasks、Bugs等等,會先被放在 To Do 欄位,獲得認領之後會放到 In Progress 和之後的欄位,這樣每個人都能知道彼此的工作內容和進度。

我大多八點半以前到辦公室,但同事和主管都不一定,有時候主管因為要跟印度的團隊開會所以很早就進辦公室了,沒有的話他都大約九點之後進公司。 早上開會結束之後就是大家各做各的事情,有時候會停下來聊一下天,但一般都是在自己的電腦前做事情。至於做什麼事情,沒有人會管你,只要你把分內工作做完,主管不會過問。像我的美國同事常常只工作一小時就兩三個人聚在一起聊天半個多小時,有時候甚至更久,聊天的內容更是有趣:從美國川普的政策到合氣道都有,有時候他們還會邊打圍棋邊聊天,中間主管都不會過問。

3. 每個星期都會有一到兩次 Backlog Grooming,Backlog Grooming 的目的就是要增加或刪減 Scrum Board 上的 Ticket。把這個 Ticket 加入的工程師會負責講解原因,同時團隊每個人都會有 Scrum Poker(如下圖),團隊每一位工程師都要用 Scrum Poker 表達自己對這個 Ticket 的難易度,取眾數作為這個 Ticket 的難易度,並以此作為規劃完成這個 Ticket 所需的時間 ,數字越大代表 Ticket 越難、需要的時間也越久。每次投票都會請給該 Ticket 分數最高和最低的兩位工程師講解他們為什麼給出這個分數,以防止有人亂出牌。

4.每兩個星期會個有一次 Sprint Retrospect 和 Sprint Start,這兩個都是在 Sprint 的最後一天。

Sprint Retrospect: 這個活動的目的就是讓工程師可以跟 PM 反應這次 Sprint 有哪裡覺得可以改進,像是覺得 Code Review 要改變形式或是覺得 Ticket 太難等等,都可以這時候反應。

Sprint Start: 每一次 Sprint 開始之前整個團隊都會一起坐下來討論下一次 Sprint 要放入哪些 Ticket,哪些 Ticket 比較棘手要先處理等等。

工作環境

每一家公司的工作環境都差很多。我的公司是開放式空間,除了主管有自己的辦公室以外,同一組的大約4–5人共用一間辦公室。我的公司奉行 Open Door Policy,員工可以隨便走進某個團隊的辦公室,要找人聊天或是看他們在做什麼之類的都沒問題。硬體設備則是會配給你 HP i7 筆電或者 15吋 MacBook Pro,外加兩個螢幕和一個 Docking Station。

工時

這沒什麼好說的,就是表定早八晚五,但我的團隊幾乎沒有人準時八點到,除非有人要跟印度團隊開會才會早於八點進辦公室,但也可以選擇在家裡跟印度團隊開完會再來上班,這樣子也可以提早下班。下班時間也沒有人會管你,只要你事情做完,你就可以回家,像我主管就常常三四點閃人。

至於 Work from home,我們公司並沒有明文規定可以 Work from home,但只要你有需求,像是不舒服等等,跟同事講一下就可以 Work from home 。假如有任何事情,像是接送小孩,看醫生,要去郵局拿東西,水電要來家裡修東西等等,都可以請假,不需要主管批准,只要有報備就好。病假則是沒有限制,想請病假就說一聲就好。

新人有15天年假,每做一年年假加一天。

職場文化

主管

我們公司文化非常的美式,有什麼事情都可以提出來,長官跟你講話把你當平輩,不會讓你覺得有壓力。需要什麼資源跟主管說,他都會儘量幫你要到,像之前我想換 Macbook Pro,跟主管講一下他就幫我要到了,但後來因為總部在做 Macbook 的新規格制定,所以拖了一兩個月我才拿到,我也就放棄 Mac 繼續用 Windows 了,畢竟環境、工具、和 VM 都設定好了,懶得重來。

同事

我們公司的工程師大約九成都是白人,而且平均年齡三十歲以下,所以非常好相處。當軟體工程師有個非常好的優點:軟體工程師普遍都是比較能接受新的事物(也就是比較liberal啦)!畢竟你都要追著新技術跑,假如太保守應該很快就會瘋掉。所以時常在辦公室裡面聽到他們在罵川普的政策等等,而且他們普遍都很有國際觀,工作起來完全不會有壓迫感,唯一的壓迫感可能來自於他們討論我沒看過的美國節目或是不熟悉的美國文化時跟不上而已。

想進美國軟體業工作者的建議

給在台灣沒工作經驗、想來美國念書找工作的學生

CS 現在對新人很現實,我看我周遭朋友都是有以下特點之一才找到「好工作」:

  • 幾乎一線的公司,只要 leetcode 刷得夠熟練,幾乎都有不錯的 offer,雖然我個人是對這種面試文化非常嗤之以鼻,但現實就是如此,所以建議可以趁來美國讀書前的空擋刷題,想找 intern 幾乎都是一落地沒多久就要開始找了,所以趕快用力刷吧。
  • Github 星星滿天飛,這樣也可以拿到不錯的 offer,但你 Github 星星滿天飛應該也不會煩惱有沒有工作😏
  • 有在玩 Open Source 或是平常有在自己寫一些小 Project 的人,然後完全不想刷題的人 (主要美國學生居多)。這類人拿到 FLAG 等級的 Offer 機會比較小。但最終也都會找到不錯的公司,可能都是去 Startup 或是面試是 Project 導向的公司。

給在台灣已經有 CS 工作經驗、想來美國念書找工作的人

有工作經驗的人,真的只要實力夠,在美國真的很容易找到工作。美國現在最缺的就是有經驗的強者,如果你是有工作經驗實力又不錯的,那恭喜你,Offer 會源源不絕😉

總結

美國現在是軟體工程大放異彩的時代,到處都是CS的工作缺,但請記得這不代表你來美國隨隨便便就能滿手offer,你要證明你的實力給公司看。至於如何準備面試這方面,已經有許多文章分享過了,不在這篇文章的範疇。

總而言之,要讓美國人對你刮目相看,就是要做出讓他們驚豔的東西。像是我進公司第六週就被主管指派去研究一個很新的技術,而我也成功在團隊前面 Demo。後來沒多久主管就派我去參加了這個新技術的Conference,要知道我當時只是一個剛進公司兩個月的新人,你就知道美國人多重視人才。

— EDIT —

刪除誤導文章的部份

我在這裡有澄清一下,我讓同事驚艷的主要不是因為我用 Vim ,而是我可以在短時間內,把這個技術實作出來,並把我們產品全部轉移到上面。

還有因為公司是寫網頁的,寫網頁的好像比較少人用 Vim,用 Vim 的確也沒多了不起。

回顧這幾年的人生歷程,我真心覺得我當初放棄台大、交大的研究所到美國讀書是正確的決定。在美國,我能夠時時學習最新的技術並兼顧生活品質,好好享受我的工作。

— EDIT —

我這篇並沒有要貶低台灣軟體業或是任何人,畢竟我連台灣業界都沒待過,只是聽我朋友敘述他們的工作環境,想分享其中的差異。我也期許自己未來有一天,當我有一定實力和學到一定的技術之後,能為台灣帶來一些改變。

Originally published at gist.github.com.

--

--