LV. 16
GP 203

【心得】美國軟體工程師的職稱與職責

樓主 柯基 sakura955054
31 -
加入現在這間美國大型軟體公司也已經三年多了
想稍微分享一下個人觀察到美國的軟體公司的職稱與職責

基本上很多大公司的職位都會像是以下所呈現,從低到高
1. 軟體工程師 (Software Engineer)
2. 軟體工程師2 (Software Engineer II)
3. 資深軟體工程師(Senior Software Engineer)
4. 首席軟體工程師(Principal Software Engineer)
5. 再往上很多公司的職稱會出現分歧。 不過這些職等通常是一般人一輩子達不到的位置就不討論了

在每間公司內部對於這些職位的職責都有相對應的定義
不過這些都屬公司機密文件
所以我在此分享的只是我個人的觀察結果


1. 軟體工程師 (Software Engineer)
新加入軟體業的菜鳥,有基礎紮實的軟體工程知識。
對於交辦下來的需求或是新功能可以穩穩地完成,但是對於程式的性能比較不注重。
不熟悉的領域需要與同組的前輩討論,確定大方向,遇到卡住的城市會需要與其他工程師討論。


2. 軟體工程師2 (Software Engineer II)
有一定經驗的工程師,對於交辦下來的功能或需求會有想法。通常對於一些問題會提出不同的解決方案,在與上司討論其中的優缺點再去擇一解決問題。
在自己的部門中可以勝任 go to person 來回答其他組別的問題,或是解決各種產線(Production environment) 上的問題
有一定的能力從無到有的開啟小型專案,並解決其中的許多挑戰,關鍵時候仍需與資深工程師討論會尋求幫助


3. 資深軟體工程師(Senior Software Engineer)
在部門中的中堅力量,對於任何不熟悉的領域與專案都有辦法在短時間學習並解提供各種解決方案。有能力自行從各種文件,專案範例,教學,迅速的學習所需要知識並汲取其中的精華來解決各種問題。
在技術方面可以引領團隊並做出重大抉擇,決定產品的走下
在跨部門會議中可以代表自己的組別出席並做出決定
在這個職等也開始有機會成為管理職,帶領團隊對產品做出重大貢獻

比較有趣的事情是,資深工程師會是很多軟體人這輩子最高的職稱。
很多資深會每隔幾年就換部門或是換公司,去尋求不一樣的環境或是挑戰,每個地方也都很歡迎資深工程師的加入。


4. 首席軟體工程師(Principal Software Engineer)
技術方面,在某些特定領域擁有特別的專長,在上層管理職做出大型專案決定時,會向他們諮詢技術方面的問題。在團隊中有著難以取代的技術與能力,並且是重要產品中的核心技術領導者。
管理方面,所帶領的小組在大型團隊中有著不可或缺的功能,能夠明確的指出所帶領小組的未來方向,並引領大家一步一步的達成目標。

稍微值得提的是,首席工程師不一定要當管理職,也可以專注於技術方面,但是他們所做出的貢獻是重大到可以達到跨部門,跨產品的。
另外首席工程師比較難去轉部門換領域的,因為他們已經是那個領域中的佼佼者。除非放棄從心開始學,否則相對較難去一個不同的領域。


5. 在往上的世界我就跳過,個人雖然私下有認識一些更高層的軟體工程師,但在沒有共事的情況下也不好隨意討論


之後我會在分享一般軟體工程師的職涯路徑
和一些觀察到的實際案例
希望可以幫助到大家


31
-
未登入的勇者,要加入 2 樓的討論嗎?
板務人員: