百瑞精鼎身為全台灣最大的CRO公司,資料處理的相關職位也是非常多元的,包含Data management, Statistical programming, Biostatistician 部門等等。在我們的Statistical Programming部門裡還隱藏一個神祕的職位,叫做Application Programmer。這個職缺可說是可遇不可求,非常少人知道但卻在我們公司扮演著極為重要的角色。
今天我們請到上海的Chaos以及台北的Alexandar來介紹這個極為神秘的角色,目前這個位子也正在招聘當中,我們需要R語言的高手,如果看完文章躍躍欲試,也非常歡迎各位小夥伴們踴躍投遞!
📌 請與我們分享您的背景及為何加入Parexel Statistical Programmer team吧!
💬 Chaos: 「我所學專業為概率論與數理統計,在課程中接觸統計軟體SAS,並深深喜歡上了用此語言程式設計,於2013年6月加入Parexel Statistical Programmer team,後於2018年5月開始做application programmer的工作。」
💬 Alexandar: 「我研究所是念流行病學的,當時主要是做癌症研究。後來在疾管署研檢中心的工作過程中有接觸到臨床試驗,因此對臨床試驗領域感到好奇,又剛好聽說Parexel有在應徵Statistical Programmer,所以也是誤打誤撞加入這個產業。」
📌 Application Programmer的工作內容有哪些? 日常工作是什麼樣子的呢?
主要的工作內容是開發協助統計分析團隊及研究團隊日常工作所需要用到SAS macro或工具,當有任務進來的時候,指定的Application Programmer(Assigner)會跟問題提出方(Reporter)合作,對涉及到的工具做出更新改善以確保問題能被妥善解决。比如: 產出圖表的SAS macro、QA檢查工具、臨床試驗監管應用工具等。
- SAS macro開發及維護
- Script的開發及維護
- 系統或者平台的開發及維護
- 解決統計分析/研究團隊在前述的工具中遇到的疑難雜症
- 對於每個工具的開發,都要嚴格符合完整的標準。
- 程式設計語言能力會相當扎實。
- 解决問題能力强(比如,短時間開發新工具,解决Macro的Bug,及支持新加功能)。
- 工具的聚合能力。例如: 一個新工具由多個子工具聚集在一起,一個APP有多種程式設計語言編寫。
📌 最常合作的部門有哪些? 會有跨國合作的機會嗎?
Application Programmer會跟各個國家的Study Team,CCG Team,CSM Team,Medical Coding Team緊密配合,支持並解决這些團隊的需求或問題。當然我們團隊中也有美國、英國、印度的同事,所以內部討論就屬跨國合作的範疇了。以內部流程來說,當我們有佈署需求的話會需要和DevOps team接洽,我們也會向Data Science team學習他們開發的模式或方法。
📌 擔任Application Programmer最有挑戰性以及最有成就感的事情?
💬 Chaos: 「針對挑戰的部分。我認為在一個應用程序中會包含多個小程序,Application Programmer需要確保各個程序集成在一起並良好運行,這會是一個很有挑戰性的工作! 但同時很高興聽到開發的工具可以順利地工作,並幫助同事們提高了工作效率。」
💬 Alexandar: 「看到自己做的application/script/macro release to production 並且被研究團隊和統計分析團隊使用的時候,會覺得自己做的事情是有意義的。」
📌 你覺得這個職位需要具備什麼個性特質以及技能?
會建議至少要熟悉除SAS外的任一種程式語言,並稍微了解Linux、Git版本管控、單元測試和佈署的概念,甚至了解任一種網頁框架,例如: R Shiny。除了可以比較了解工作內容,有了這些基礎概念才有辦法和其他co-worker溝通。我們比較像是”Engineer” ,而不單單只是一個”Programmer”,你必須對你負責的Project有全局的視點和考量,從而對你的Project有個藍圖,最後才能可以像建房子似的從地基開始一步步將其完成。
除了程式語言之外,英文能力也相當重要,很多時候我們需要和提需求的人、co-worker溝通,良好的溝通可以幫助你釐清問題、歸納出需求並解決問題,另外,撰寫文件也是工作內容的一部分,好的英文能力有助於提升工作效率。最後是細心,除了程式碼的格式外,在編寫程式時你必須要能想到各種出錯的可能,包括在寫各種錯誤處理、單元測試等,能不能考慮到各種使用上的問題/情況也是很重要的。
📌 在Parexel,Application Programmer的同事有哪些可能的職業發展?
Application Programmer的職業發展比較多元,可以發展成為Senior Application Programmer(高級應用程序程式師)、Software Consultant(軟體顧問)、Technical Lead(技術負責人)等。
🔆 給未來新夥伴的建議?
在這個職位,你可以有機會和不同國籍的人合作 、對話、交流、溝通;你可以有機會磨練你的程式語言技能,目前我們會使用的程式語言有SAS,R,Python,bash,Perl,JavaScript (React.js and Next.js) 等。
你可以有機會學習前後端程式設計、佈署、版控、CI/CD、單元測試等等;你可以有機會負責一個開發計畫,實踐如何做好專案管理;如何和不同部門溝通、如何和需求者討論才能找出最佳的方案等等,因此可以先試著了解這些項目的概念。