Avatar of 施承宏.
施承宏
軟體工程師
ProfileResumePortfolio
Posts
7Connections
Print
Avatar of the user.

施承宏

軟體工程師
  天生充滿好奇心,喜歡嘗試各種有趣的事情:一個人旅行、遊湖、浮潛,在旅行或是執行工作時習慣在腦海中先把事情規劃一遍,執行時才能更有效率的達成目標。在生活中,會有一些天馬行空的想法,喜歡拼湊各種毫無相關的事情,期待這些事情能夠磨擦出不一樣的火花。   休閒時間會看舞台劇、電影與漫畫,認為每一場戲劇或電影都能體驗到不一樣的人生,很容易融入角色情緒裡面,每次看著角色遇到危機與問題的處理方式及情感上的呈現,同時都會問著當時的自己會怎麼做。
Logo of the organization.
未來可期科技有限公司
屏東科技大學
Taiwan

Professional Background

  • Current status
    Employed
    Not open to opportunities
  • Profession
    Back-end Engineer
    Web Developer
  • Fields
    SaaS / Cloud Services
    Software
  • Work experience
    4-6 years (4-6 years relevant)
  • Management
    None
  • Skills
    Golang
    Gin Framework
    beego
    GraphQL
    Laravel PHP Framework
    React Hook
    Docker Compose
    Design Patterns
    MySQL
    Redis
    MongoDB
    Nginx
  • Languages
    English
    Beginner
  • Highest level of education
    Bachelor

Job search preferences

  • Desired job type
    Full-time
    Interested in working remotely
  • Desired positions
    後端工程師
  • Desired work locations
    Taipei, Taiwan
  • Freelance

Work Experience

Logo of the organization.

golang 工程師

Mar 2023 - Jun 2023
4 mos
撰寫機率單機小遊戲 (輪盤、叮咚球),使用graphql 當作 router 接口並使用 DTO 搭配驗證套件做 validation,內部邏輯層使用 grpc 傳遞,並自定義 error format 讓 grpc 傳出的錯誤包入 graphql 紀錄,並由 grapqhl 自訂輸出給前端的錯誤。 其中比較特別的是graphql 的scalar 可以自行定義相關輸出,讓 grpc 中的 *anypb.Any 可以變成 key value 的json 格式輸出。 在 function 上 搭配 any、泛型、delegate、reflect 讓 function共用性提高。

工程師

May 2021 - Mar 2023
1 yr 11 mos
1.簡易後台聊天室Golang、前端React,DB:Mysql、MongoDB,Cache:Redis,訊息佇列:RabbitMq 用websocket 做後台聊天室訊息即時更新,前端使用React hook框架搭配後端Golang的Melody、gin、cli套件做搭配,其中考量之後會有loadbalance的問題,增加RabbitMq 使用fanout讓所有伺服器的監聽者都可以接到相關資訊,考慮有多人使用同帳號,所以用MongoDB來存取對話紀錄。 2.爬蟲Golang搭配dgoogauth、Selenium、ChromeDriver 由於爬的網站是SPA,傳遞的API內容也被加密過,需要使用Selenium 搭配ChromeDriver以讀取瀏覽器資料的方式抓取資訊,加以整理後傳到Telegram 中。比較麻煩的是網站登入Google Authenticator (OTP 驗證 30秒),需要要先去 Google 設定取得金鑰,在搭配 dgoogauth套件產出OTP碼。 3.CDN後台維護與開發(原生PHP) 撰寫CRUD 搭配Nginx config組裝 (Certificate,Cache,User-Agent…),重構排程時curl的版本過舊,導致curl RESOLVE (domain對照特定IP)功能無法使用,為了不影響整體,直接蓋Laravel docker來重構排程。 4.後台權限系統(SPA) 後端API:Larval9( php 8.1 fpm)、DB:mariadb、cache:redis、Nginx 前端:react hook 後端(三層式架構)API 基本的CRUD、data validation、api format、驗證身份JWT、email註冊與驗證碼、多國語系,為方便串接加入swagger,為了統一環境把所有軟件都在 docker 中開發。 前端react使用useReducer搭配useMemo、useContext、SecureStorage 紀錄JWT、menu與選擇的多國語系,介面部分使用mui、datatable、useform套件來製作頁面與組合component,其中最麻煩的是side bar的menu,react 需要把遞迴過後的各個節點連結記錄下來,依照點選的menu展露項目。

軟體工程師

Oct 2020 - Jan 2021
4 mos
Laravel 撰寫API(踢人、登入、登出、驗證 (Facebook,Google,Apple) token….) 搭配Factory Design Pattern設計 Facebook->Oauth2,直接與平台驗證 Google->Oauth2,直接與平台驗證 Apple->Jwt,相關驗證還需要抓取RSA運算碼,才能做相關驗證 Unity 規劃與串接 (SDK) 登入 (Facebook,Google,Apple) 使用UniRx套件做多執行緒(非同步)搭配委派模式包覆平台SDK,實踐 Factory Design Pattern,依照定義好的InterFace功能 (Facebook,Google,Apple)個別實踐 測試FireBase 串接功能 SQL 組SQL用於 Google Bigquery 的 DataSet,產生行銷相關圖表 SQL procedure

軟體工程師

Mar 2020 - Sep 2020
7 mos
PHP(Laravel) API撰寫 使用DI注入與(Model→Repository , Service(Logic)→Controller(Output)模式 將code分離乾淨,減少舊code使用static的機會(聲明:Laravel 裡面用的 :: (雙冒號) 不是static ,而是用的是門面(Facades) )、搭配GuzzleHttp使用,提供比分、賽事房間資訊等等球賽網頁會看到的直播介面資料。 修改Laravel Session架構 (奇怪的事情) 公司中的API提供網頁與APP使用,但卻未走Token模式(登入狀態),被前人以Session模式放入Redis中代替,還搭配CSRF使用,讓每個Request都製造很多新筆數寫入Redis,導致使用的人不多,卻讓Redis炸開。 為了解決這問題,花了不少時間去修正底層(StartSession、SessionServiceProvider )與測試,其中還包含創建新的Cookie去綁定SessionId與重建(以DB或使用Cookie Cache)登入狀態,搭配Routing與MiddleWare做使用。
至於為什麼不趕快換成Token(JWT or Oauth2)模式,是因為目前太多code有去取Session的登入狀態去對應了,還有不想讓APP那邊修正太多的東西。 Command排程撰寫(重構與資料同步) 將就排程中逐筆修改資料的爛code與階層式迴圈,整理後做批次處理(使用mysql temp Table 搭配Collection (chunk)去做處理),資料多的時候不超出記憶體最大使用量,並在寫入DB時不超出最大寫入的字數。 Kernel排程監控 紀錄各排程執行起始時間與結束時間於Cache中,並在頁面上顯示排程執行時間、狀態與下次執行時間,並結合Telegram通訊軟體,在狀態錯誤時給予通知,讓OP部門更快得知排程有無問題發生,不要等到營運發現錯誤才去救火。 導入Swagger 到 Laravel 中撰寫文件 設定自動產生文件,搭配註解方式寫(@OA\),讓Swagger的套件每次文件頁面 reload 都能生成需要的Json檔案。

軟體工程師

Jun 2019 - Oct 2019
5 mos
C# (.net core) 遊戲後端API撰寫 儲值獎勵,抽獎,拉霸活動,發獎與定時清除記錄的console 應用.net core (C#)搭配ABP(Boilerplate)框架,已注入的方式使用class, 傳遞資料的方式則用AutoMapping搭配,製作好的DTO與前端配合, 顯示API則是用到Swagger套件,做簡易文件 而資料庫主要是用MYSQL搭配Redis做快取,連結與撰寫方式使用是EF搭配Linq,Lambda PHP(Codeigniter) 網頁後端 資料CURD,與多個server cache更新 應用PHP搭配CI(codeigniter)框架與簡易boostrap,Jquery製作, 需求有用到資料庫連線的切換,是繼承CI中的model重新加上修改, 而其中還有個特殊的需求是多個DB的Insert,則是以DB連線的迴圈搭配transaction製作 其中多個Redis cache的更新呼叫,應用到curl的方式傳遞封包集合,用一次的封包時間達到多個API的post

軟體工程師

Jul 2018 - Apr 2019
10 mos
會員系統API: 內容: 會員註冊、登入、帳密修改、說明文件製作,ajax 傳輸json(加密 (OpenSSL 產出RSA公私鑰匙)),解密後寫入或比對Token(資料庫) 技術 :PHP、JavaScript、AJAX、jQuery、OpenSSL 兆豐、元氣先生、三得利網頁(前後台)-網頁維護案: 兆豐 : 信用卡電文維護、後台其他上架小功能維護、增修(ASP) 元氣先生 : 訂單、資料列印頁面維護、增修,商品上下架維護、增修 三得利 : 商品上下架維護、增修 技術 : ASP、JavaScript、jQuery 禮坊網頁: 內容: 後台資料列表、增修、CSV下載、寄信,前台JQuery 技術 :ASP IP掃描程式  SSL專案: ● 專案內容說明:  為了提供憑證部門銷售相關到期日與客戶資料,寫一隻搜尋IPV4有無憑證並回傳whois內容,與相關後台製作、增修,資料庫調整、增修 ● 技術  :C#(winform、Console)、PHP、OpenSSL、Microsoft  whois

Education

Bachelor’s Degree
資訊管理
2010 - 2014