不同工程師階層定義
Staff Engineer(or Principal Engineer or Tech Lead):
On the technical side, the biggest difference is a staff engineer is able to identify and solve a technical problem that few others can. Specifically:
- Be able to implement the hardest part of a system/product
- Be able to ship high-quality work with best practices, like proper testing, well-planned rollout, and monitoring
- Be able to lead the effort of setting the direction for the team, like new season roadmapping
- Be able to spot the biggest pain point of the system/product/org and propose solutions. A solution with a clear deliverable and milestones and could take multiple years to implement.
- Most importantly, in addition to demonstrate the capability of leverage XFN’s colleagues(DS/design/PM/etc..). Staff Engineer also should be able to assess & validate their outputs.
On the “People Skill” side, a staff engineer should:
- Be a strong communicator, in both oral and written form
- Be able to leverage resources that are not assigned to the team
- Be able to recruit and onboarding new team member, both junior and senior
- Be able to influence org’s engineering culture, like adopt latest/best coding practice
Ref: https://blog.devgenius.io/junior-vs-senior-vs-staff-engineer-eaecea01440c
Senior Engineer
On the technical side, a senior engineer should:
- Be able to design, breakdown, and complete a project of a large scope with high-level productivity
- Proactively find problems of existing system/product without guidance and offer solutions
- Be able to lead a project with a small group of people, such as hosting weekly meetings, communicate with other partners in written forms
On the “People Skill” side,
- Make contributions to improve the engineering team. For example, activities like interviewing, or mentoring
- Be able to give on-point and actionable feedback to peers
- Be able to build X-teams and XFN relationships which will facilitate ongoing projects
Junior Engineer
On the technical side, this level’s engineer should be able to:
- Understand codebase and drive assigned request to improve it, such as migrating it to modern frameworks and adding missing tests
- Design well-organized code
- Independently complete medium to large features
On the “People Skill” side, there are not many requirements. The most important thing to demonstrate the capability of accomplishing tasks with other disciplines(design, PM, analyst).
不同部門定義:
Frontend engineers
定義:
負責網頁與使用者互動,開發設計使用者介面、以及編排網頁功能的流程、資訊的呈現以增進使用者體驗。
Ref:
https://www.jobsalary.com.tw/jobdescription.aspx?codeNo=140802
Mobile engineers
定義:
依照專案需求與團隊開發APP軟體,測試並維護負責APP評估、設計、規劃優化設計
Ref:
https://www.jobsalary.com.tw/jobdescription.aspx?codeNo=140810
Backend engineers
使用程式語言撰寫,在後端伺服器上運作的商業邏輯、資料庫處理和提供 API 給前端開發人員。
Ref:
https://www.jobsalary.com.tw/jobdescription.aspx?codeNo=140803
測試工程師(Test engineer or QA engineer (TE or QA))
定義:
針對生產流程中,各階段的產品性能進行測試,找出設計上的錯誤或問題予以改正解決
Ref:
https://www.jobsalary.com.tw/jobdescription.aspx?codeNo=180308
雲端工程師(Cloud Engineer):
定義:
雲端工程師是使用虛擬化軟件和雲端技術,規劃、設計和保養大型電腦的基礎網絡的人,能幫助新創公司迅速穩固市場。 雲端工程師的工作內容,簡而言之為監督和監控數據中心,或辦公室雲端網絡系統的安裝和提升;以及評估現有雲端網絡,並向管理層提議新設備,以優化服務表現。
Ref:
https://www.jobsalary.com.tw/jobdescription.aspx?codeNo=140604
參考資料:
https://blog.devgenius.io/junior-vs-senior-vs-staff-engineer-eaecea01440c
https://blog.devgenius.io/junior-vs-senior-vs-staff-engineer-eaecea01440c