今年3月底,我正式離開工一科技,總共待了一年兩個月左右,這是我在台灣的第一份正職工作。
有關工一科技
工一科技是一間專門做建築城市 digital twin solution 的公司,何謂建築城市 digital twin,白話一點就是讓數據與現實中的建築城市本體做搭配,讓數據有更多活用空間。
通常針對建築我們會將建築模型導入 Web 3D Viewer,讓 IoT Sensors 的資料與模型一同呈現,同時模型使用 Building Information Modeling,讓模型本身也自帶資訊,讓數據不只只是疊在模型上,而是數據也能與模型本身的資訊去達到更大效益。
城市部分我們會導入 Cesium Map 或是其他開源 Map resources,讓 GIS (Geographic Information System) 資訊與數據互相產生化學效應。
業務層面多為與政府或企業配合打造城市、機場、大樓數據平台,不太像一般接案公司,工一多了更多 domain knowledge,有了多年數據平台開發經驗,工一歸納出了這類型數據平台常見的功能,一步一步開始打造自家的產品。
工一給予工程師自由發揮的空間很大,基本上在時程內可達成且 QA 都過的情況下,你想試什麼新技術,老闆都很支持。
我的職責
5G救護車急診室系統
初期我負責與中華電信合作的5G救護車急診室系統,當時為了快速與設計師對每個元件的樣式,開始導入 Storybook 進這個專案,這個系統的前端是我自己負責所以我選擇我最熟悉的框架 React.js 搭配 MaterialUI,呈現救護車到院路徑使用 Mapbox 以及他們釋出的 Direction SDK,其實以功能面來看,這個平台沒啥難度,加上 PM 與業主方需求確認得很明確,前後端開發一直都是很順利,不過中間遇到後端工程師離職,而我有後端開發經驗,所以後期我負責全端開發,不過那位後端工程師把架構都設計得很明確,所以開發起來都很順。
產品開發
其實我本來就是要負責產品 RD,只是前面的案子需要我去支援,案子結束後我就開始專注在產品研發上。前面有說到,工一掌握過去合作的經驗後已經歸類出大多數工程需要的 PMIS (Project Management Information System) 需要哪些功能,而過去這些功能也都針對不同案子需求開發過,為了不要 refactor 過去做過的功能,我們導入 microfrontends 架構,同時後端也改至 microservices。接續我就開始著手 microservices、microfrontends 架構設計,慢慢也開始開發新服務:
- file-service: 具有版本回朔功能的檔案儲存系統,其中支援文檔編輯以及試算表編輯。
- flow-service: 流程審核系統
- form-service: 表單系統
因為其餘同事多為會 Vue.js,因此為了後續維護考量,新的系統我皆使用 Vue.js 開發。
整合
我們使用 Single-SPA 去整合 microfrontends,因此需要一個母容器去引入其餘 microfrontends,這個母容器功能很簡單,登入、routing及專案層級的資料管理,因此我們使用 MVC 架構的 AngularJS 去開發這個母容器。整合時常會遇到一些小問題,但也讓我慢慢學會怎麼將微服務架構設計得更 Loose coupling,在此推薦一本書 建構微服務 。
整合告一段落後,我也正式離開工一了。
感想
我很幸運能夠進到產品 RD 團隊,在這個團隊沒有時間壓力,但需要有能力設計架構、所有服務以及預測整合後會發生的行為。
技術面,我在工一這一年因為各種考量,所以在開發上多學了 Vue.js 以及 AngularJS,到後期我可是一天在玩前端3A大作的人XD,此外也更熟悉 microfrontend 背後的原理。
架構設計面,因為產品面開始是全端開發,所以在微服務架構設計上,以及微服務間怎麼溝通、減少溝通成本等學到了不少。
公司文化面,因為整合微服務這塊收穫不少心得,因此我主導了一次讀書會分享,慢慢帶起了讀書會文化。此外,因為老闆很忙再加上團隊人數不多,沒時間或人力去設計太完善的面試流程,我在離職前,因為整合微服務告一段落,開始有時間去設計整個面試流程,透過與不同職位的同事訪談該職位在工一所需能力心智圖,進而依照心智圖去個別設計面試內容,並提出未來能夠有更多讓面試者與不同職位的同事做 pair interview,讓團隊每個人都能參與面試。
至於為何離職?
我針對土木產業開發軟體應該也有三到四年經驗,其實一直很想去其他產業看看,可能偶爾會覺得捨棄在這產業的 domain know-how 是一件可惜的是,但也說不準這些經驗還是可以繼續在其他產業貢獻的。
最後,很感謝每位工一的同事,大家感情好到就像在大學與一群朋友邊幹話邊唸書一樣,很高興我的第一份工作是在工一科技。