DEV Community

Jack Vatcharat
Jack Vatcharat

Posted on

กว่าจะมาเป็น Software Developer ในบริษัทข้ามชาติ ที่เจ้าของเป็นคนฝรั่งเศส!

กว่าจะมาเป็น Software Developer ในบริษัทข้ามชาติ ที่เจ้าของเป็นคนฝรั่งเศส!

สวัสดีครับ ผมชื่อแจ๊ค ในบทความนี้จะมาเล่าประสบการณ์ก่อนที่จะมาทำงานที่บริษัทปัจจุบัน PALO IT (Thailand) ที่มีบริษัทแม่ตั้งอยู่ที่ฝรั่งเศสครับ ท้าวความไปตอนเด็กผมชอบภาษาอังกฤษมาก แม้จะเรียนมัธยมสายวิทย์-คณิต แต่ผมมักจะฝึกฟังภาษาอังกฤษผ่านการเรียนวิชาอื่นๆ เช่น คณิต ก็จะมีช่อง Khan Academy กับเว็บ MathIsFun.com ที่เข้าไปบ่อยๆ เลยเป็นการปูพื้นฐานให้เรียนมหาวิทยาลัยคณะวิศวกรรมคอมพิวเตอร์ภาคอินเตอร์ครับ

KBTG

KBTG

พอเรียนจบมาผมได้ทำงานที่ KBTG เผื่อใครไม่รู้จักนะครับ KBTG (KASIKORN Business-Technology Group) เป็นบริษัทพัฒนาเทคโนโลยีของกสิกร เรียกง่ายๆ ว่าบริษัทลูกน่ะแหละครับ และนับว่าโชคดีมากที่ได้ที่นี่เพราะอยู่ใกล้บ้านผมที่สุดและสมัยนั้นรถไฟฟ้า BTS ใกล้บ้านยังไม่เกิดครับ 555

ทำที่ KBTG ได้ 2 ปี มีทั้งใช้ ReactJS, React Native, NodeJS, NestJS, Prisma, Go web framework อย่าง Echo

Smart watch

โปรเจคที่ชอบสุดตอนอยู่ KBTG คือโปรเจคด้านสุขภาพ ซึ่งต้องเขียนแอพแล้วต่อกับ Apple Health เลยพบว่า Apple ไม่เหมือนเจ้าอื่นๆ คืออย่างพวก Fitbit, Garmin จะเก็บข้อมูลพวก heart rate (อัตราการเต้นของหัวใจ) การนอนหลับ สถิติการออกกำลังกายที่ server ของเค้าและเราสามารถดึงข้อมูลผ่าน API ได้เลย ส่วน Apple จะเก็บที่ iCloud ของ user จริงแต่นักพัฒนาไม่มีสิทธิ์ดึงได้ จึงเป็นความท้าทายที่เราต้องเขียนให้แอพดึงข้อมูลตอนเปิดแอพ แสดงผลบนแอพ แล้วเก็บที่ database ของเรา

Allianz Technology Thailand

Image description

หลังจากนั้นผมก็ย้ายไป Allianz Technology Thailand ด้วยเหตุผล 3 ข้อ

  1. เพื่อนแนะนำว่า work-life balance ดีมาก (พิสูจน์แล้วว่าจริง )
  2. ที่ KBTG ไม่มีต่างชาติให้คุยภาษาอังกฤษด้วย ผมเจอคนเวียดนามนะครับ แต่เค้าอยู่คนละโปรเจคเลยไม่ได้คุยกันในการทำงาน
  3. หาประสบการณ์ใหม่ๆ

ตอนทำที่นี่เป็น frontend developer และเขียน Angular อย่างเดียว ไม่เคยเขียนมาก่อน อาศัย On-the-job training เลยครับ

ที่นี่ใช้ Scaled Agile Framework (SAFe) ซึ่งเหมาะมากกับบริษัทใหญ่ที่มีหลายทีมทำโปรเจคเดียวกัน เพื่อไม่ให้บทความยาวเกินไป ขอไม่อธิบายลงละเอียดถึง framework นี้นะครับ

PALO IT (Thailand)

Image description

ทำได้อยู่ 1 ปี คุยกับเพื่อนร่วมงานเลยรู้จักคนที่ย้ายไป PALO IT (Thailand) ติดต่อคุยกับเค้า คิดว่าน่าสนใจดีด้วยเหตุผล 3 ข้อ

  1. อยากใช้ MacBook Pro ตอนอยู่ Allianz ใช้คอม Lenovo CPU เป็น AMD Ryzen 5 และจอ resolution 1366x768p ถ้าไม่ต่อจอแยกคือดูแล้วปวดตามาก

    ผมทำงานที่ Allianz ตอนช่วงโควิด บริษัทอาจจะลดค่าใช้จ่ายพอดีครับ พี่ที่ทำงานใช้ HP จอยังเป็น full hd (1920x1080p) เลย

  2. ยังชอบเขียนแอพอยู่ ตอนอยู่ Allianz เขียนเว็บด้วย Angular v8 ซึ่งเก่ามาก ตอนนั้นล่าสุดน่าจะ v12 แล้ว

  3. อยากเขียน backend บ้าง ตอนอยู่ Allianz เป็น frontend developer จึงเขียนแค่ frontend อย่างเดียว

ผมแอบลังเลก่อนยื่นสมัครงานอยู่เพราะเรื่องนึง คือพี่ที่ทำงานก็เคยทำงานบริษัทขนาดเล็กมาก่อน แล้วเล่าให้ฟังว่าเคยเจอว่าบริษัทหมุนเงินไม่ทัน ขอจ่ายเงินเดือนครึ่งนึง หรือบางที่เลื่อนจ่ายเงินเดือนก็มี โชคดีว่าเพื่อนที่รู้จักทำที่นี่มาปีกว่าแล้ว + บริษัทนี้ไม่ได้ก่อตั้งโดยคนไทยแต่ก่อตั้งโดยคนฝรั่งเศสในปี 2009 และมีออฟฟิศกว่า 10 สาขาทั่วโลก แปลว่าตัดคำว่า startup ออกได้

ตอนผมสัมภาษณ์มี 2 รอบ รอบแรกเป็นคนไทย รอบที่ 2 เป็นคนฝรั่งเศส ทั้งคู่สัมภาษณ์เป็นภาษาอังกฤษและมีโจทย์เขียนโปรแกรมให้ทำ ผมขอสปอยว่าแตกต่างจาก KBTG ที่ใช้ Codility อยากรู้ว่าโจทย์สัมภาษณ์คืออะไรให้สมัครเลยครับ 555

โปรเจคที่ PALO IT (Thailand)

เกริ่นมานาน ขอเข้าส่วนที่ผมชอบมากกับการทำโปรเจคต่างๆ ในบริษัทนี้นะครับ ถ้าเป็นโปรเจคเขียนแอพบนมือถือที่ผมทำอยู่ ในทีมมีถึง 30 คน ได้ใช้ภาษาอังกฤษทำงานทุกวัน ต่างชาติที่มีคนฝรั่งเศส คนเยอรมัน คนฟิลิปปินส์ คนฮ่องกง คนจีน เขียนแอพด้วย React Native และเขียนหลังบ้านด้วย Java Spring Boot ครับ ซึ่งไม่ได้จำกัดว่าทุกโปรเจคเราจะใช้ framework เดียวกัน อยู่ที่การตกลงกับลูกค้าว่าเค้าต้องการอะไรเพื่อไป maintain ต่อครับ

ที่นี่เราจะเป็น full stack developer กัน คือทำได้ทั้ง frontend และ backend ในโปรเจคผมจะเน้น frontend มากกว่าเพราะ requirement ต่างๆ จะหนักทางนั้นครับ

PALO IT application development

และนี่คือ system architecture อย่างง่าย

System Architecture

  • BFF ไม่ได้ย่อมาจาก Best Friends Forever นะครับ 555 ย่อมาจาก Backend For Frontend ที่ไม่เรียก backend เฉยๆ เพื่อให้เข้าใจว่าทำมาเพื่อแปลงข้อมูลสำหรับส่งให้ frontend โดยเฉพาะ เช่น เปิดแอพหน้านึงต้องไปต้องเรียกหลังบ้าน 3 เส้น หน้าที่ของ BFF คือเรียก 3 เส้นนั้น เพื่อให้ frontend เรียก BFF เส้นเดียวครับ

  • Downstream API services คือระบบหลังบ้านของลูกค้า

ตอนพัฒนาแอพบนเครื่อง

Image description

End-to-end testing

Image description

เพื่อที่จะทำ frontend app ให้มี bug น้อยที่สุด dev ทุกคนจึงต้องเขียน E2E (End-to-end testing) เพื่อต่อกับ simulator (จำลอง downstream api) และยึดตาม acceptance criteria ของ story นั้นๆ หลายคนคงเดาว่า "แบบนี้ก็ต้องมีเครื่องไว้รัน e2e ทุก story สิ" ใช่ครับ เราจะมีเครื่องไว้รันและหมั่นคอยเช็ค report ทุกวันว่าการทำ feature ใหม่ๆ ไปทำให้ของเก่าพังมั้ย

Q: รู้ได้อย่างไรว่า Downstream API ต้องการ request/response body หน้าตาแบบไหน เพราะมีหลาย service มาก?
A: เรายึดจาก API spec ที่ Business Analyst เตรียมให้ครับ หลังจาก sprint demo จบก็จะมี QA เตรียม data ไปทดสอบอีกทีบน UAT

Q: เราทดสอบแอพไปต่อ UAT เองได้มั้ย
A: ได้ครับ วิธีเดียวกับที่ปล่อยแอพให้ tester ทดสอบคือผ่าน App Center ข้อดีของเจ้านี้คือปล่อยให้โหลดได้ทั้ง iOS และ Android
Enter fullscreen mode Exit fullscreen mode

Backend

ฝั่ง backend ก็มีเขียน test ต่อกับ simulator เช่นกัน เป็นการทดสอบว่า logic ถูกต้องไหม เช่น รับข้อมูล A จาก downstream ประมวลผลบางอย่างแล้วควรตอบกลับด้วยข้อมูล B และเราตกลงกันว่า test coverage ต้องเป็น 100%

Management

Image description

แน่นอนว่าทีมที่ใหญ่ก็ต้องมีการจัดการที่ดี มี 4 squad แต่ละ squad มี 4-5 คน ก็จะมี scrum master, tech lead และ developer เพื่อดูแล feature ในหมวดนั้นๆ ทุกวันก็มี daily standup ก่อนที่จะเอา story เข้า sprint ก็มี story refinement ก่อนเริ่ม sprint ก็มี sprint planning พอจบ sprint ก็มี sprint retrospective เรียกได้ว่าใช้ Agile methodology ค่อนข้างเต็มรูปแบบเลยครับ

Work from home มั้ย?

Remote working

คิดว่าหลายคนต้องการคำตอบ ผมเลยแบ่งเป็นหัวข้อใหม่เลยครับ 555 คำตอบคือ Hybrid หมายถึง WFH เป็นหลัก และเข้า office 1 ครั้ง/2 สัปดาห์เพื่อ demo ให้ลูกค้าดู ทั้งนี้ขึ้นอยู่กับโปรเจคนั้นๆ ว่าจำเป็นต้องเข้าออฟฟิศบ่อยแค่ไหนด้วยครับ


โปรเจคนอก PALO IT (Thailand)

ThailandCan

Image description

ผมได้โอกาสร่วมพัฒนาเว็บไซต์ https://thailandcan.org/ โดยเฉพาะ landing page ที่ design ใหม่หมดโดย designer ของ PALO IT เอง ก็เป็นโอกาสดีในรื้อฟื้นทักษะการเขียน CSS แบบ responsive ให้ support ทั้งจอคอม แท็บเล็ตและมือถือครับ ตอนเขียนแอพคำนึงแต่มือถือ 555

Workshop

นอกจากโปรเจคที่ได้ทำแล้ว มีโอกาสได้ก้าวออกจาก comfort zone ด้วยการไปช่วยพี่ Paco (Tech Lead) จัด Advanced Prompt Engineering workshop ในงาน KBTG Techtopia 2024

Image description

และก็เป็นจุดเริ่มต้นของการจัด workshop เองที่งาน JS Bangkok 2024 ในหัวข้อ From Nodes to Prompts: Exploring Prompt Engineering with Rivet

Image description

ถ้าใครพลาดงานไหนไปก็ไม่เป็นไรครับ สามารถกดดูใน GitHub ได้เลย


ขอบคุณที่อ่านมาถึงตรงนี้ครับ หากใครอยากรู้เรื่องอะไรเพิ่มเติมสามารถพิมพ์คอมเม้นถามได้เลยนะครับ ถ้าตอบได้ก็จะตอบครับ และยังมีโปรเจคอื่นๆ ที่น่าสนใจอีก ไว้มีโอกาสจะมาเล่าให้ฟังนะครับ

Top comments (0)