主要職責
深入研究數據庫内核相關技術,設計并實現數據庫管理系統
深入了解數據庫應用的業務需求,主導設計不同數據庫架構的應用軟件,并持續優化
根據業務需求設計數據庫邏輯和物理模型,開發數據庫生産環境所需要的存儲過程、函數、腳本等
參與數據庫生産環境的問題優化和解決
探索、研究新的數據庫架構發展方向
工作内容
數據庫開發工程師的日常工作是設計、開發數據庫系統和數據庫應用軟件,因此與軟件研發的過程一樣,會複蓋需求、設計、編程和測試四個階段:
需求:深入調研用戶市場需求,認清項目的應用場景,解決的問題,性能指标等,需要與數據庫系統使用方反複溝通,确定具體的需求。
設計:根據收集整理的需求文檔設計數據庫系統軟件的模型和架構,劃分模塊分别進行概要和詳細設計。
編程:按照模塊分工和設計文檔,進行編碼和調試。
測試:将開發完成的數據庫系統交給測試人員進行測試,主要使用的測試方法有黑盒測試、白盒測試、壓力測試、性能測試等,測試全部通過後即可等待發布。
當數據庫系統軟件完成發布後,數據庫開發工程師還需要跟進具體的生産環境使用情況,參與具體問題的改進和優化,提供解決方案。
技能要求
通用基礎技能要求
1)精通一種常用編程語言(C/C++、JAVA、PHP等),了解主流的框架、庫使用和原理
2)深入了解計算機數據結構和算法設計,具備Linux操作系統基礎知識
3)掌握基本的網絡編程知識,熟悉多線程編程及其技巧
4)熟練掌握Linux、web server、數據庫、緩存相關技術的使用,了解内部實現機制為最優
5)掌握數據庫基本原理和知識,熟悉SQL語法規則和特點
6)有開源數據庫(MySQL、PostgreSQL等)研究和開發經驗
高階要求
1)熟練掌握分布式系統理論并有着大量實踐
2)開源社區成員,為開源軟件提交過patch
3)精通Linux系統IO、鎖等調優技術
軟素質要求
1)有良好的英語閱讀能力,能夠閱讀英文資料
2)自我驅動,主動的學習能力和較強的動手能力
3)工作認真細緻,有責任心,勤奮踏實,善于思考問題
4)有時間觀念,獨立性強,溝通能力好,具有團隊合作精神
職業發展
人才來源
數據庫開發工程師的人才來源可以分為2個方面:應屆畢業生和社招。
1)應屆畢業生:對于應屆畢業生來說,要想成長為數據庫開發工程師需要具備一些軟件研發方面的技能,同時對數據庫理論基礎有一定了解,對于數據庫管理系統有一些實踐經驗,再加上較好的主動性、工作認真細緻、具有團隊合作精神即可;
2)社招:社會招聘主要可以從軟件研發和DBA兩個方面來篩選人才。對于之前從事大型分布式軟件系統研發的工程師,比較容易轉型為數據庫開發工程師,隻需要熟悉一些數據庫架構和理論基礎即可。而對于DBA來說,已經擁有大量的數據庫運維經驗,對于數據庫研發工作非常有幫助,此時再需要掌握一定的代碼編寫能力和分布式計算的基礎,即可轉型成為數據庫開發工程師。
職業發展方向
數據庫開發工程師的職業發展主要分為兩條線:技術方向和管理方向。
1)技術方向:根據研究領域的不同,主要分為數據庫架構師和數據庫運維技術專家兩個方向。
數據庫架構師:熟練掌握各種數據庫管理系統的架構和内部原理,能夠根據實際業務需求,設計出不同的數據庫應用系統架構,并在業務高速發展時,提供數據庫模型設計的優化建議和解決方案
數據庫運維技術專家:這個發展路線與高階DBA的發展路線比較相似。當數據庫開發工程師在跟進和解決數據庫生産環境問題的過程中,積累了大量的運維經驗,熟練掌握了大量先進的數據庫運維技術,比如分布式部署、性能監控、彈性擴容等,可以成長為數據庫運維技術專家,為各産品提供數據庫架構設計和優化建議。
2)管理方向:從數據庫開發工程師開始持續發展,積累了一定技術深度,并且通過與業務部門交互溝通鍛煉了較強的協調和推進能力,可以轉型為管理崗位。管理崗位的常見發展路徑包括經理、總監、CTO、CEO等,往往在小型創業公司管理崗位發展迅速,在中大型公司的發展速度相對較慢。
行業競争力
薪酬競争力
1)橫向對比:數據庫開發工程師屬于專項領域的高質量技術人才,市場需求旺盛,薪酬競争力較高,往往高于軟件研發工程師
2)縱向對比:随着經驗和技術深度的積累,越資深的研發工程師往往越值錢。但是公司規模不同,薪酬往往差别較大。由于小公司在數據庫研發領域起步晚,需求低,因此中小公司的薪酬往往略低于BAT等大型公司。
3)第三方薪酬調查報告:
《2013年數據庫工程師薪酬調查報告》
《Database Developer Salary》
市場需求
1)數據庫研發行業的市場價值:參考ITOM(IT Operation Management)2013年的市場規模是190億美金
2)人員需求:中大型公司尤其緊缺,初創公司需求量較低
技術能力
1)數據庫開發工程可以接觸到最前沿的數據庫系統,目前業界比較流行的數據庫系統主要分為關系型的和非關系型的,這些數據庫都成為當前國内外大型公司的底層存儲系統。
關系型數據庫:MySQL、Oracle、SQL Server、IBM DB2
非關系型數據庫(NoSQL):Redis、MongoDB、HBase、Cassandra
2)根據不同應用場景,數據庫架構又可以分為單機數據庫、集群式數據庫、分布式數據庫和雲數據庫等。由于經驗的不同,數據庫開發工程熟練掌握的數據庫架構往往不同,越高階的數據庫開發工程掌握和了解業界的數據庫架構前沿知識越豐富。