A Day in Agoda — Full Stack Software Engineer

เมื่อวานนี้หลังจากไปประชาสัมพันธ์ใน Facebook Group เกี่ยวกับการรับสมัคร Graduate Full Stack Software Engineer ของ Agoda ก็มีคนมาถามว่า แล้วสังคมการทำงานที่ Agoda เป็นยังไงบ้าง ก็รู้สึกว่าอยากจะเล่าให้ฟังเรื่องที่ไม่ต้องเป็น Tech เยอะๆ บ้าง เลยอยากจะมาแชร์กันว่าในหนึ่งวันที่ Agoda เป็นยังไงกันบ้าง

สถานที่ และ การเดินทาง:

สำหรับ Agoda นั้น มี Development Office หลักอยู่ใจกลางเมืองย่านราชประสงค์เลยครับ อยู่ที่อาคาร The Offices @ Central World เลย นั่นก็คือฝั่งสำนักงานของ Central World นั่นเอง สำหรับ Developer นั้นเราก็กระจายอยู่กันหลายชั้นมากๆ ชั้น 6 / 7 / 8 / 22 ชั้นละ floor บ้าง ครึ่ง floor บ้าง การเดินทางนั้น แนะนำให้ขึ้น BTS มาลงที่ สยาม หรือ ชิดลม แล้วเดินต่อมาที่ Central World จะดีกว่า สำหรับใครที่ต้องการขับรถมานั้น ทางบริษัทจะมี Choice ให้เลือกระหว่าง Parking Card ที่จะ Charge รายเดือน กับ Parking Coupon (ส่วนตัวแนะนำให้ใช้ Coupon) ซึ่งจะซื้อได้เดือนละไม่เกิน 22 ใบ สามารถจอดได้ใบละ 8 ชั่วโมงต่อวัน

1_eWydHuLqj7gh4AHwJd0mAw

Office / โต๊ะทำงาน:

ในวันแรกที่มา on board ทุกคนจะได้รับ Welcome Card + Kit 1 ea (ไม่มีรูปถ่ายเสียดายจุง) และ ทุกคนจะได้รับโต๊ะทำงาน พร้อมตู้ลิ้นชักเก็บของ , Docking station 1 ea + จอ(Monitor) อีกคนละ 2 ea และ ทุกคนจะนั่งรวมกันหมดทุกตำแหน่ง ไม่ว่าจะเป็น Director/DevManager/Develper/QA เท่มะ แต่ปกติผมไม่ค่อยได้ถ่ายรูปที่ออฟฟิศเท่าไหร่ ลองดูบรรยากาศไปก่อนละกันนะครับ

1_8MvoKkJPRVsCbanG88cQ0g--1-

ทีม และ การทำงาน:

ที่ Agoda นั้นทำงานกันด้วย Agile (มั้ง) บางคนอาจจะสงสัยว่าอ้าวไม่ Agile เหรอ ผมบอกเลยว่า Agile สิ แต่เรา focus ที่ Business Agility มากกว่าทางฝั่ง Technical หรือต้องบอกว่าที่ Agoda นั้นการทำงานใช้ Ceremony และ Practice หลายๆอย่างของ Agile แต่ในส่วนของการจัดการ priority นั้นบางส่วนมาจากทีม Product Owner ซึ่งจะมีผลต่อการตัดสินใจในการทำงานแต่ละ Sprint เป็นอย่างมาก ซึ่งแต่ละทีมใน Agoda นั้นมีอิสระในการเลือก approach ในการทำงานของทีมในแต่ละ project ได้เอง เช่น บางงานเราอาจจะใช้ Kanban บางงานเราอาจจะใช้ Scrum ขึ้นอยู่กับ context และความเหมาะสมของงาน

โครงสร้างของทีมในฝั่ง Frontend นั้น เราก็จะแบ่งออกเป็น Feature Team (Verticals) ที่จะทำงานในแต่ละ Features ของ Agoda ส่วนที่ว่ามีทีมอะไรบ้างอันนี้ไม่น่าจะเล่าให้ฟังได้เพราะค่อนข้างเป็นเรื่องภายใน และ Engineering Team (Horizontals) ที่ทำงานกับทุกๆส่วนของ Agoda แต่จะเน้นไปในทาง Engineering มากกว่าตัว product feature เช่น เรื่อง performance, engineering problem เป็นต้น

ทีม Member นั้นก็มีความหลากหลายครับ ในแต่ละทีมนั้นจะเน้นความหลากหลาย ทั้งในด้านเชื้อชาติ อายุ เพศ ความสามารถ และภาษา แน่นอนว่าประมาณครึ่งนึงในทีมเป็นคนไทย เพราะออฟฟิศตั้งในไทยนี่แหละ แต่ว่าภาษาที่ใช้ในการทำงาน 75–80% เป็นภาษาอังกฤษ เพราะเวลาทำงานมักจะต้องมีชาวต่างชาติด้วยเสมอๆ แต่ไม่ต้องกังวลไปนะครับ สำหรับคนที่ภาษาไม่ได้ระดับเลิศเราก็รับนะครับ ขอให้พอสื่อสารได้ เรามี course ภาษาอังกฤษดีๆให้เรียนนะ :D

1_xZm28TgQ0HidN2ewNqvVBA--2-

Daily routine:

เริ่มต้นด้วย Standup ยามเช้า เวลาขึ้นอยู่กับแต่ละทีมกำหนดกันขึ้นมา ผมทำมาด้วยหลายทีมมีตั้งแต่ 09:30 ไปจนถึง 10:30 เพราะว่าบางคนที่ cross-functional มากๆ อาจจะต้อง involve กับหลาย project LOL. ปกติเราใช้ JIRA ในการ collaborate ระหว่าง team member และช่วยให้ Dev Manager ตลอดจน product team เห็น visibility ของ product ว่าเป็นยังไงบ้าง

หลังจากนั้นก็เป็นเรื่องของแต่ละคนแล้วว่าจะจัดการชีวิตตัวเองยังไง ส่วนใหญ่ก็จะวนเวียนอยู่กับ task ของตัวเอง และการ collaborate กับเพื่อนร่วมงาน หรือแม้แต่ศึกษาของที่ต้องใช้ใน task ของตัวเอง ปกติแล้ว developer ที่นี่จะต้อง self-manage ตัวเองได้ระดับหนึ่ง เพราะไม่ค่อยมีใครมาคอยตามงานเราเท่าไหร่ ยกเว้นบางทีมที่ Development Manager รักและเอาใจใส่เป็นพิเศษก็จะมีการมาถามไถ่เยอะกว่าคนอื่น ตรงนี้สำหรับบางคนอาจจะมองเป็น Micro-managed แต่ผมมองว่ามันมี benefit เหมือนกันนะ การได้คุยกันบ่อยๆเป็นเรื่องดี ดีกว่าเราทำไปแล้วไม่ได้คุยกันเลย ปรากฏว่าทำมาคนละอย่างกัน LOL อย่างไรก็ตาม อันนี้ขึ้นอยู่กับ style ของ Development Manager แต่ละคนเลย ตอนที่สัมภาษณ์มักจะถูกถามอยู่แล้วว่าทำงานกับสไตล์การทำงานแบบนี้ได้ไหม ซึ่งควรตอบตามตรงนะครับ เดี๋ยวจะมา suffer เปล่าๆ

ส่วน Agile ceremony ต่างๆที่เราทำที่นี่ก็ไม่ต่างกับที่อื่นเท่าไหร่ เรามีการทำ backlog grooming ก่อนเริ่มวางแผนแต่ละ sprint, เรามี retrospective เพื่อปรับจูนให้ทุกคนเข้าใจกันมากขึ้น ให้มีจังหวะการทำงานที่เข้าขากันมากขึ้น เรามี planning ซึ่งบางทีมอาจจะใช้ poker plannin บางทีมก็ไม่ แล้วแต่สไตล์ แล้วในบาง project ที่เราคิดว่าไม่อยากใช้ Scrum เราก็ใช้ Kanban หรือแม้แต่ Waterfall LOL

ค่าใช้จ่าย:

คงไม่พูดถึงเรื่องค่าใช้จ่ายในการเดินทาง เพราะค่อนข้าง Vary สำหรับแต่ละคน คงพูดถึงค่าอาหาร ค่าขนมดีกว่า สำหรับค่าอาหารที่นี่ขึ้นอยู่กับว่า เราอยากใช้วันละเท่าไหร่ เพราะที่นี่มีทางเลือกพอสมควรตั้งแต่

  • Food Court ที่ชั้น 7 ซึ่งเฉลี่ยก็อยู่ที่มื้อละ 75–100 บาท(อาจจะถูกกว่านั้น)
  • ร้านอาหารที่ชั้น B1 ฝั่ง Office ก็จะถูกลงมาอีกหน่อย 50–75 บาทนี่พอได้เลย
  • ศูนย์อาหารที่ตึกอัมรินทร์ อันนี้ก็ราคาไม่ต่างกันเท่าไหร่ 75–100 บาทสบายๆ
  • Food court ที่ สตช. ฝั่งตรงข้าม ราคาถูกพอๆกับ ชั้น B1 แต่มีร้านเยอะกว่า และเหมาะกับวันที่อยากเดินเล่น

ถ้าไม่กินหรูมาก ค่าอาหารกลางวัน จะตกอยู่ราวๆนี้ครับ แต่ว่าถ้าเทียบกับเงินเดือนที่ Agoda Offer นี่ เก็บได้สบายๆ โดยไม่ต้องคิดมากเลย แต่สำหรับคนที่อยู่มาสักพักแล้ว จะเริ่มกลายเป็นแบบนี้ TooHungryException

1_l5h6RkF3Qgegz52U2BWgQg--1-

หลักนิยมในการพัฒนาของ Agoda:

ที่ Agoda นั้นเรามักจะถามอยู่เสมอว่า “How do you know your task is done ?” ใน design review เพราะสิ่งที่เราสร้างขึ้นมานั้นมันจะมี impact ต่อผู้ใช้งานหลายสิบล้านคนที่เข้ามาในแต่ละวัน การที่เราพัฒนาของขึ้นไป เราต้องคิดเสมอว่า definition of done คืออะไร และ เราจะรู้ได้อย่างไรว่ามันเสร็จแล้วจริงๆ ดังนั้นสิ่งที่สำคัญนั้นคือวัฒนธรรมในการที่เราจะพูดคุยกันเพื่อถามกันก่อนว่าอะไรคือสิ่งเหล่านี้

definition of done
KPI เพื่อบอกว่าเราจะวัดว่างานของเรา success ได้อย่างไร
How to achieve your KPI with your works/methodology ?
และ เมื่อเราได้รายละเอียดเหล่านั้นแล้วเราก็จะเริ่มการทำงานในสไตล์แต่ละคน แต่ที่เราพยายามบอกทุกคนเสมอๆคือ ขอให้ F*ck It, Ship It และ Build, Measure Learn เราเชื่อว่าทุกความพยายามมีผลลัพธ์ขั้นต่ำสุดคือเราได้เรียนรู้อะไรอยู่เสมอๆ และเราสามารถปรับปรุงมันให้ดีขึ้นได้กว่านี้

1_5M39kELQB4M8E6DFvygGnA

ความรับผิดชอบของ Full Stack Developer:

หลักๆแล้วในความรับผิดชอบของ Fullstack ที่นี่คือ From Code to Deploy นั่นเอง หมายถึงเราต้องทำทุกอย่างตั้งแต่พัฒนาไปจนเอา feature ที่เราทำขึ้นมาขึ้นไปบน production และสนับสนุน operation ดังนั้นเราจึงทำมากกว่าแค่พัฒนา แต่เราต้องคิดถึงกระบวนการในการพัฒนา การใช้ CI/CD ไปจนถึงการ Deploy และ Monitor เมื่อ feature ของเราได้ go live ไปแล้ว แต่ไม่ต้องตกใจไปนะครับ เราไม่ได้ expect ว่าเมื่อคุณเข้ามาแล้วคุณจะทำได้เลย สิ่งที่คุณต้องทำคือ บอกว่าคุณไม่รู้อะไรบ้าง แล้วเราจะช่วยให้คุณไปคุยกับคนที่จะช่วยคุณได้ ที่นี่ เรา willing to help ถ้าคุณ speak up :P

เครื่องมือที่ใช้ในการทำงานของ FrontEnd:

หลักๆแล้ว ในทีม FE นั้นจะทำงานกับ Stack ที่เป็น .Net และ JavaScript เป็นหลักครับ ภาษาที่ใช้ก็จะมี C#, JS ซึ่งตอนนี้เราค่อยๆเปลี่ยนเป็น TypeScript และทำงานบน React เป็นหลัก ส่วนเทคโนโลยีอื่นๆที่เราอาจจะต้องไปเกี่ยวข้องนั้นก็มี MS SQL อันนี้ค่อนข้างแน่นอนว่าจะต้องได้ใช้ทุกคน และก็ Couchbase สำหรับ Caching tier ส่วนของ Data นั้นมีแนวโน้มว่าเมื่อทำงานไปได้สักระยะหนึ่งทุกคนจะต้องได้วิเคราะห์ข้อมูลจาก Hadoop เองแน่นอน และจำเป็นต้องใช้งาน Elasticsearch ด้วยแน่ๆทั้งในฐานะผู้ใช้ และ producer

นี่รวมไปถึง Developer ทุกคนจะได้เรียนรู้เกี่ยวกับการสร้าง metrics สำหรับการ monitor ที่เหมาะสมกับ feature ของแต่ละคน ซึ่งหลักๆเราก็จะใช้ Grafana สำหรับสร้าง Dashboard ในการ monitor ผลงานของเราเองร่วมกับ Data source หลากหลายเพื่อรองรับความต้องการข้อมูลขนาดใหญ่ของเราเอง

บรรยากาศในทีม และในออฟฟิศ:

อันนี้ค่อนข้างเป็นเรื่องที่ถามกันเยอะ สำหรับผมเองผมชอบบรรยากาศที่นี่นะ เป็นบรรยากาศที่มีความเป็น multi-national เพราะฉะนั้นถ้าเอาความเคยชินแบบเดิมๆมาวัด ที่นี่อาจจะไม่ค่อยคุ้นเคยกับคนส่วนมาก ที่นี่ คุณสามารถเดินไปเถียงกับ Manager ได้ถ้าคุณคิดว่าวิธีที่ Manager คุณบอกให้ทำมันผิด และ ถ้า Manager เค้ารับรู้ว่าเค้าผิด เค้าก็พร้อมจะขอโทษ และคุยกับคุณว่าจะปรับปรุงกันยังไง เพราะฉะนั้นที่นี่ เราจะเห็น Dev ที่อายุน้อยกว่า Speak up เมื่อเค้าไม่เห็นด้วยกับคุณ (ถ้าเค้า open mind นะ แต่บางคนก็ไม่พูดนะ) เพราะฉะนั้นสิ่งหนึ่งที่คุณต้องเตรียมตัวมาคือความ Open Mind และ ความพร้อมในการเรียนรู้ความแตกต่าง เราไม่ค่อยได้เจอกับการที่ Manager ตัดบทแล้วบอกว่า “พี่คิดมาดีแล้ว” และ ignore ข้อเสนอแนะของเราเลย แต่เราจะเจอการที่เพื่อนร่วมงานมาคุยกัน และมองหาวิธีแก้ไขกันมากกว่า

สำหรับบางคน เมื่อมองกลับกัน มุมที่ไม่ดีก็มีนะครับ แต่ค่อนข้างเป็นเรื่องส่วนตัวมากกว่า เห็นอยู่หลายครั้งเหมือนกันที่ความแตกต่างในวัฒนธรรม ภาษา และวิธีคิดทำให้เกิดดราม่าก็มีเหมือนกัน

วันหยุด และ สวัสดิการ:

วันหยุดที่นี่ มีเยอะพอดูครับ วันหยุดพักร้อน 12 วัน/ปี เพิ่มขึ้นตามอายุงานและทบไปปีต่อไปได้ ลาป่วย 30 วัน/ปี ลาดูแลครอบครัว 2 วัน/ปี ลากิจ 2 วัน/ปี ลาคลอด (mothernity ไม่แน่ใจว่ามี pathernity หรือยัง) ลาบวช และ ลาแบบไม่รับเงินเดือน

สวัสดิการก็มีทั้งประกันกลุ่ม ซึ่งเลือกได้ว่าเป็น เมืองไทย/AETNA และมี reimbursement อื่นๆอีก​(จำไม่ได้) มีส่วนลดของร้านต่างๆใน CTWค่อนข้างเยอะ เช่น Wine Connection ลดค่าอาหาร และ เครื่องดื่ม (จริงๆลดหลายร้านมากกกกกก)

และก็มีส่วนลดพิเศษในการจองโรงแรมด้วย Employee Discount อันนี้ต้องมาลองเอง LOL

ไม่รวมถึงเรื่องกิจกรรมอื่นๆตลอดปี เช่น AC/DC หรือ บางคนเรียก QDR คือ งานปิดร้านใน Groove กินเบียร์ฟรีทุกๆ quater

1_DKgPf-kQhvNtb8bqilStUg--1-

หรืองานเลี้ยงประจำปีสุดอลังการ ระดับปิด Asiatique เพื่อจัดงานปีใหม่ :D

1_iBdwrEKaWXY-OxbaANxCtA--1-

สำหรับปีนี้ Agoda เปิดโอกาสให้น้องๆที่จบการศึกษาใหม่ ไม่มีประสบการณ์มาก่อน สมัครเข้ามาร่วมงานกันในตำแหน่ง Graduate Full Stack Software Engineer ซึ่งจะให้ทั้งโอกาสในการทำงานใน Scale ที่พูดได้ว่าแทบไม่มีที่ไหนในเมืองไทยจะให้โอกาสแบบนี้ได้อีกแล้ว รวมถึงโอกาสที่จะได้ร่วมงานกับเพื่อนร่วมงานจากมากกว่า 60 สัญชาติ ที่จะให้ทั้งโอกาสในการฝึกฝน technical และ soft skill อีกทั้ง offer ที่ competitive มากๆๆๆๆๆๆๆ ใครสนใจ กดลิงค์นี้เลยครับ → https://boards.greenhouse.io/agoda/jobs/1104002?gh_src=np77ihi31#.Wr9QvdNuZjV