Gofive Tech Stack 2024: Building the Future of Software

Decha Kenthaworn
Gofive
Published in
3 min readAug 27, 2024

ที่ Gofive ของเรา มีเป้าหมายที่ชัดเจนในการยกระดับการพัฒนาซอฟต์แวร์ให้อยู่ในระดับเวิลด์คลาส ตามพันธกิจของเราที่ว่า “We create world-class software experience”

เรามีการใช้ Technology Stack ที่ทันสมัยมีการอัปเดตเวอร์ชันล่าสุดเพื่อให้มั่นใจว่าเครื่องไม้เครื่องมือที่นำมาใช้อำนวยสะดวกในการพัฒนาซอฟต์แวร์ และการใช้ AI Tools เพื่อเพิ่มประสิทธิ์ภาพให้กับทีมพัฒนาของเรา ซึ่งจะมีรายละเอียดตามภาพ ดังนี้

Gofive Tech Stack 2024

Frontend Excellence เพื่อให้การพัฒนาในทั้ง Web และ Mobile ที่สามารถออกแบบมาเพื่อมอบประสบการณ์การใช้งานที่ราบรื่นในทุกแพลตฟอร์ม

  • Bootstrap: ใช้ในการพัฒนา UI ที่เป็น responsive ด้วย CSS และ JavaScript frameworks
  • Angular (TS): ใช้ในการพัฒนาเว็บแอปพลิเคชันด้วย TypeScript ซึ่งทำให้สามารถสร้างโค้ดที่มีโครงสร้างที่ชัดเจนและขยายขีดความสามารถได้ง่าย ซึ่งทีมก็ได้นำ Micro-frontend Architecture โดยใช้ Angular Elements เพื่อให้สามารถพัฒนาในแต่ละ Module เพื่อนำไปใช้ในหลาย Products ของเราได้โดยที่ไม่ต้องเขียนโค้ดใหม่
  • LINE Front-end Framework (LIFF): WebView ที่สามารถรันเว็บไซต์อยู่ภายในแอป LINE ได้โดยตรง เพื่อช่วยให้ลูกค้าของเราที่ใช้งาน LINE อยู่แล้วสามารถเข้าถึง Web Application ของเราได้ง่าย
  • Next.js: เป็น framework บน React ที่รองรับการทำงานในรูปแบบ Server-side Rendering (SSR)ใช้ในการพัฒนาแอปพลิเคชันเว็บที่ไม่ใหญ่มากและต้องการการแสดงผลที่รวดเร็วและ SEO ที่ดี
  • Storybook: ใช้ในการพัฒนาและทดสอบ UI components โดยสามารถดูและทดสอบ component แต่ละอันได้อย่างอิสระและกำหนดเป็น Design System กลางและจัดทำ Document เพื่อให้ง่ายต่อการนำไปใช้งานในแต่ละ Products ของเราเราเช่นกัน
  • Kotlin, Firebase, Swift, Flutter: ใช้ในการพัฒนาแอปพลิเคชันมือถือ ทั้ง Android (Kotlin, Firebase) และ iOS (Swift, Firebase) รวมถึง cross-platform (Flutter) ซึ่ง Flutter เองก็เป็น Stack ใหม่ที่เรามาพัฒนาเพื่อต้องการลดระยะเวลาในการพัฒนาตอนนี้ก็ได้ทดลองกับแอปใหม่ในชื่อ empeo Lite ที่สามารถดาวโหลดได้ทั้ง App Store, Google Play และ Huawei AppGallery
  • ML Kit: ใช้ในการเพิ่มความสามารถด้าน Machine Learning ให้กับแอปพลิเคชันมือถือที่ช่วยให้การวิเคาะห์ในการสแกนใบหน้าใน Feature การ Workin การทำงานในระบบ empeo มีความแม่นยำ

Robust Backend & Libraries ที่รอบรับการทำงานทั้งประสิทธิภาพ (Performance), การขยายของระบบเพื่อรองรับการเติบโต (Scalability) และความเสถียร์น่าชื่อถือของระบบ (Reliability)

  • C#, .NET Core: ใช้ในการพัฒนาแอปพลิเคชัน backend โดย .NET Core ด้วยที่ทีมเราเติบโตมาจากจากการใช้ Tools หลายอย่างของ Microsoft ใช้มาตั้งแต่ .NET Framework จนปัจจุบันเราใช้ .NET 8 ซึ่ง Microsoft เองก็พัฒนาตัว Framework ออกมาอย่างต่อเนื่องโดยเฉพาะเรื่องของ Performance และการทำงานข้ามแพลตฟอร์มได้เป็นอย่างดี
  • Node.js: ใช้สำหรับการพัฒนาเซิร์ฟเวอร์ที่ต้องการประมวลผลแบบ asynchronous ด้วย JavaScript ซึ่งตรงนี้เรามาในการทำงาน real-time ร่วมกับ socket.io ที่ช่วยให้ระบบ chat ของเราทำงานได้อย่างรื่นไหล
  • RabbitMQ: ใช้เป็น message broker เพื่อจัดการและกระจายข้อความระหว่างแอปพลิเคชันหรือ Service ต่าง ๆ ของเรา
  • socket.io: ใช้ในการพัฒนาการสื่อสารแบบ real-time เช่น แชทหรือการแจ้งเตือนในเว็บแอปพลิเคชัน

Data Management & Reporting การจัดการข้อมูลที่มีปริมาณที่เยอะและความปลอดภัยของข้อมูลและนำข้อมูลไปแสดงรายงานในรูปแบบ Visualization

  • Microsoft SQL Server: เป็นฐานข้อมูลหลักที่เราใช้ในทุก Products ของเราซึ่ง Host อยู่บน Azure
  • Redis: ใช้เป็นฐานข้อมูลแบบ in-memory เพื่อเพิ่มความเร็วในการเข้าถึงข้อมูลชั่วคราวหรือ cache เพื่อลดโหลดที่จะวิ่งเข้าไปยังฐานข้อมูลหลักข้อมูลบางอย่างที่ไม่ได้มีการอัปเดตอยู่บ่อย ๆ แต่จำเป็นต้องเรียกใช้เราจะ cache ไว้
  • Power BI: ใช้ในการสร้างรายงานและการวิเคราะห์ข้อมูลอย่างมืออาชีพและมีความยืดยุ่นมาก ๆ เรานำมาใช้ในการ Integrate กับทุก Products ของเรา

Comprehensive Testing Tools เพื่อให้มั่นใจว่าในทุก ๆ Products ของเรามีคุณภาพเป็นสิ่งที่ไม่สามารถละเลยได้เราได้ใช้ชุดเครื่องมือทดสอบที่จะทำให้แน่ใจว่าโค้ดทุกบรรทัดมีความเชื่อถือได้และมีประสิทธิภาพ

  • xUnit.net: ใช้ในการทดสอบโค้ดใน C# โดยเฉพาะ unit testing
  • Appium: ใช้ในการทดสอบแอปพลิเคชันมือถือแบบ automation สำหรับแพลตฟอร์ม iOS และ Android
  • Playwright: ใช้ในการทดสอบ end-to-end ของเว็บแอปพลิเคชันซึ่งเรานำมาใช้ทั้ง UI Test และ API Test
  • K6: เป็นอีกเครื่องมือทดสอบประสิทธิภาพ (Performance Testing) ที่เน้นไปที่การทดสอบโหลด (Load Testing) ของระบบ โดยเฉพาะสำหรับการทดสอบ API และแอปพลิเคชันเว็บ K6 ได้รับการออกแบบให้ใช้งานง่าย รวดเร็ว และสามารถรองรับการทดสอบในสเกลที่สูงได้

Cloud & Monitoring for Modern Infrastructure เพื่อให้ระบบของเรามีความสามารถในการขยายตัวและการทำงานอย่างต่อเนื่อง เครื่องมือคลาวด์และการตรวจสอบจะทำให้ระบบของเราทำงานได้อย่างราบรื่นและปลอดภัย

  • Azure Kubernetes Service (AKS): ใช้ในการจัดการ containerized applications บน Azure
  • NGINX: ใช้เป็นเว็บเซิร์ฟเวอร์หรือ reverse proxy ที่มีประสิทธิภาพสูง
  • Sentry: ใช้ในการติดตามและแจ้งเตือนข้อผิดพลาด (error tracking) ของเว็บแอปพลิเคชันที่เราเอาไว้ตรวจสอบดูว่าหน้าไหนของเว็บเราเมื่อผู้ใช้งานมีการโหลดที่ช้าจะต้องถูก Improve Performace ให้ดีและรวดเร็วมากยิ่งขึ้น
  • Exceptionless: เป็นอีกเครื่องมือสำหรับการติดตามข้อผิดพลาด (error tracking) และการตรวจสอบประสิทธิภาพ (performance monitoring) ของ​ Web API ในแบบ real-time ซึ่งถ้าเกิด Exception ที่ไม่พึงประสงค์เราจะทราบปัญหาและรีบดำเนินการแก้ไขโดยทันที
  • Application Insights: เป็นบริการจาก Microsoft Azure ที่ช่วยในการตรวจสอบและวิเคราะห์ประสิทธิภาพและการทำงานของแอปพลิเคชันแบบเรียลไทม์ซึ่งแน่นอนว่าถ้ามี API เส้นไหนที่ช้าหรือทำงานผิดปกติแล้วทีม Dev เราจะทราบปัญหาและรีบเข้าไปดำเนินการแก้ไขอย่างเร่งด่วน
  • Cloudflare: ใช้ในการป้องกัน DDoS, เพิ่มความเร็วเว็บไซต์ และการรักษาความปลอดภัยโดยรวมของทุก ๆ Products ของเรา

Streamlined DevOps กระบวนการ Development Operations ของเราออกแบบมาเพื่อช่วยการพัฒนาและส่งมอบ Products ของเราให้ลูกค้าที่ใช้งานได้อย่างต่อเนื่องเป็นไปได้อย่างราบรื่นในทุกขั้นตอน

  • Azure DevOps: ใช้ในการจัดการ CI/CD, การควบคุม source code และการทำงานร่วมกันในการพัฒนา Products ของเรา
  • GitHub: ใช้ในการจัดเก็บและควบคุม version ของ source code รวมถึงการทำงานร่วมกันสนับสนุนการใช้งาน Git Flow ได้อย่างมีประสิทธิภาพ ซึ่งปัจจุบันเรากำลังย้าย Code จาก Azure DevOps ที่ใช้งานอยู่บน On Premise ของเราไปใช้บน GitHub ทั้งหมด
  • GitHub Actions: เป็นฟีเจอร์ของ GitHub ที่ช่วยให้เราสามารถสร้างและรันกระบวนการอัตโนมัติ (workflows) ภายใน repository ได้โดยตรง ฟีเจอร์นี้ได้รับความนิยมเป็นอย่างมากเนื่องจากช่วยให้การทำงานในการพัฒนาซอฟต์แวร์สะดวกและรวดเร็วยิ่งขึ้น โดยเฉพาะในเรื่องของการทำ Continuous Integration (CI) และ Continuous Deployment (CD)
  • CircleCI: เป็นหนึ่งในเครื่องมือที่ใช้สำหรับการทำ Continuous Integration (CI) และ Continuous Deployment (CD) ปัจจุบันเราใช้กับทีม Mobile Application
  • DeepSource: เป็นเครื่องมือที่ช่วยในการตรวจสอบคุณภาพของโค้ด (Code Quality) โดยอัตโนมัติ ซึ่งจะทำงานคล้ายกับเครื่องมือ linting และ static analysis แต่มาพร้อมกับฟีเจอร์ที่ล้ำโดยเฉพาะ Auto Fix ที่จะให้เรา Refactor code ได้อย่างรวดเร็ว เมื่อก่อนเราก็ใช้ SonarCloud ดีแต่แพงไปหน่อยก็เลยมาเปลียนซึ่ง DeepSource ก็

Collaboration & Productivity Tools การทำงานร่วมกันอย่างมีประสิทธิภาพเป็นกุญแจสู่ความสำเร็จของเรา เราใช้เครื่องมือที่ดีที่สุดเพื่อให้ทีมของเราเชื่อมโยงกันและทำงานได้อย่างมีประสิทธิภาพ

  • Jira Software: ใช้ในการติดตามการทำงานและจัดการในทุก ๆ Products ของเราและรวมไปถึงการแจ้งปัญหาจากลูกค้าเพื่อช่วยให้ทีม Customer Success ติดตามปัญหาที่เกิดขึ้นได้ง่ายและสะดวกมากยิ่งขึ้น
  • Microsoft Teams: ใช้ในการสื่อสารและทำงานร่วมกันภายในทีมด้วย Gofive เรามีทีมงานที่ต้องทำงานร่วมกันทั้ง 2 สาขา จำเป็นมากที่เราต้องประชุมร่วมกันในทุก ๆ วัน รวมไปถึงการนัดหมายประชุมกับลูกค้า
  • Figma: ใช้ในการออกแบบ UI/UX แบบ collaborative ที่ยอดเยี่ยมมากทุกคนจำเป็นต้องใช้ไม่ใช่แค่ทีม Designer เท่านั้นเพราะมีส่วนของ Dev Mode ที่ช่วยให้ทีมพัฒนาสามารถเปลี่ยน UI ให้เป็น Code ได้อย่างง่ายดายช่วยลดระยะเวลาในการเขียนโค้ด
  • Apidog: ใช้ในการจัดการ API Document ทั้งการทดสอบและการสร้างเอกสารเพื่อให้การทำงานทั้ง Backend และ Frontend เป็นไปอย่างราบรื่นและเรายังนำมาใช้กับ Open API Document ของเราด้วยเพื่อให้ลูกค้าที่ต้องการเชื่อมต่อ API กับเราสามารถเข้าใจได้ง่าย
  • Notion: ใช้ในการจัดเก็บเอกสารและข้อมูลต่าง ๆ ภายในทีมและมาตรฐานต่าง ๆ ของเราเพื่อให้ทุกคนในทีมสามารถทำงานตามมาตรฐานหรือกระบวนการที่เรากำหนด

Cutting-Edge AI Tools ที่ Gofive เราใช้พลังของ AI เพื่อเสริมประสิทธิภาพการทำงานและส่งมอบประสบการณ์ใช้งานที่ดีให้กับทุก ๆ Products ของเรา

  • ChatGPT เราใช้ถามทุกอย่างที่เราไม่รู้ เรียกได้ว่าใช้แทน Google ได้เลย มันง่ายมากถ้าเรามี Backlog แล้วเรานึก Logic ที่จะเขียนโค้ดไม่ออก
  • GitHub Copilot เป็นตัวช่วยในการเขียนโค้ดเราได้อย่างรวดเร็วและช่วย Refactor Code ที่มีปัญหาให้เข้าใจง่ายมากยิ่งขึ้น
  • Gemini เป็นตัวช่วยที่ดีมาก ๆ ที่มาพร้อมกับ Android Studio เพื่อให้ทีม Mobile เขียนโค้ดได้ง่ายและรวดเร็วมากยิ่งขึ้น
  • Azure AI Document Intelligence สำหรับการประมวลผลและการวิเคราะห์เอกสารซึ่งเรานำมาใช้กับการตรวจสอบสลิปเมื่อมีการชำระค่าบริการของเรา

สำหรับทีมพัฒนาที่ Gofive เราจะได้ทำงานกับ Tech Stack ที่ทันสมัย สร้างสรรค์นวัตกรรม และสร้างโซลูชันซอฟต์แวร์ในระดับระดับเวิลด์คลาส ไม่ว่าคุณจะเชี่ยวชาญใน Angular มีความเชี่ยวชาญใน C#,.NET หรือมีความหลงใหลใน AI ที่ Gofive มีเครื่องมือและสภาพแวดล้อมที่ช่วยให้คุณเติบโตอย่างมืออาชีพ

เรากำลังมองหาคนที่มีความสามารถและพร้อมที่จะสร้างความแตกต่างอยู่เสมอ หากใครแวะมาอ่านแล้วสนใจที่จะได้ทำงานกับเทคโนโลยีที่เราใช้ และต้องการเป็นส่วนหนึ่งของทีม [Pegasus, Spartan, Unicorn, Luna] ที่นี้เราจะมีชื่อทีมเท่ ๆ และให้ความสำคัญกับความคิดสร้างสรรค์ การทำงานร่วมกัน และการเรียนรู้อย่างต่อเนื่อง นั้นและมาถูกที่แล้ว เราต้องการคุณ สามารถสมัครงานกับเราได้ที่ https://jobs.empeo.com/Gofive ใส่ Ref ไว้ด้วยแนะนำจากพี่เดย์ แล้วเจอกันครับ

--

--

Decha Kenthaworn
Gofive
Editor for

รักในการเขียนโค้ดและสนุกกับการเรียนรู้เทคโนโลยีใหม่ ๆ อยู่เสมอ ครอบครัว คือแรงบรรดาลใจ