ไปฝึกงานที่ Pronto Tools (กันเถอะ)

React class by Kan Ouivirach in Pronto Tools

Pronto Group

ชื่อบริษัทไม่ได้มีส่วนเกี่ยวข้องอะไรกับกางเกงยีนส์นะครับ

เริ่มจากภาพรวมขนาดใหญ่กันก่อน Pronto Group คือบริษัทไอทีสัญชาติอเมริกัน ที่ขับเคลื่อนการบริการลูกค้าด้วย WordPress โดยทีมแบ่งออกเป็น 2 ส่วนหลักๆ คือ Pronto Marketing และ Pronto Tools นั้นเอง

Pronto Marketing จะทำหน้าที่รับผิดชอบในฝั่งของ Marketing, SEO, Take care ลูกค้าทั้งหมดเลย

Pronto Tools ส่วนทีมเรานั้น เป็นนักพัฒนาสุดเท่ ที่คอยสร้างเครื่องมือต่างๆ ที่ Support ให้กับทีม Pronto Marketing อีกทีนั้นเอง (ส่วนเท่ยังไงนั้น ต้องอ่านต่อนะ…)

Pronto Marketing and Pronto Tools

Pronto Tools

เกริ่นเรื่องโครงสร้างบริษัทเสร็จแล้ว เรามาเริ่มเจาะลึกทีมของเรากันดีกว่าว่าเป็นยังไงกันนะ?

สำหรับวัฒนทำ เอ้ย วัฒนธรรมของทีมเราคือ Agile นั้นเอง ที่พิเศษไปกว่านั้นคือเรามี Product Owner (PO) มานั่งอยู่กับทีมด้วยนะ!

โดยทีมย่อยของ Pronto Tools ที่ผมได้เข้าไปร่วมใช้ชีวิตนั้น คือทีม iPhoenix ที่จะบอกว่าเรามาสาย Back-End ผสม Infrastructure หน่อยๆ ก็ได้ เพราะเทคโนโลยี และหลักการที่เราใช้มีคร่าวๆ ดังนี้

  • AWS เราใช้ Cloud บน Amazon เยอะมากครับบบ หลาย Service มาก เช่น EC2, EFS, Route 53, ELB, S3, ElasticCache, RDS เป็นต้น
  • Python (django) เขียนกันเยอะมากกก เยอะแค่ไหนรอดูกัน
  • Container แน่นอนนน เมื่อเราไม่อยากปวดหัวกับ Environment ที่แตกต่าง เราก็ใช้ Docker ในทุกๆ Project เลย ย้ำ ว่า ทุก Project จริงๆ อะไรจะสบายไปกว่าการ Pull code ชาวบ้านแล้วสั่ง docker-compose up อีก
  • Reversioning ขาดไม่ได้แน่ๆ ครับ ในเมื่อเราทำงานกันเป็นทีม ต้องมีการทำ Reversioning โดยเราเก็บไว้บน Github กัน เมื่อใครรับผิดชอบ Feature ไหนก็ checkout branch ออกไป เมื่อทำเสร็จก็สร้าง Pull request กลับเข้ามา
  • TDD Test-driven development นั้นคือการเขียน Test ก่อน แล้วไปเขียน Code แล้วทำการ Refactor Code แล้ววนกลับไปเขียน Test ทำแบบนี้ไปเรื่อยๆ ครับ จะทำให้ในทุกๆ การทำงานของ Code เรานั้นมี TestCase คอยควบคุม !! ในอนาคตหากใครเข้ามาแก้ Code ส่วนนั้นๆ แล้วให้ผลลัพธ์ไม่เหมือนเดิม TestCase ก็จะฟ้องเองว่าเกิดจากอะไร แบบนี้สบายใจได้เลย ว่าเราจะไม่ทำให้โครงสร้าง Project เราเสียหาย
  • Stand-up meeting ในทุกๆ เช้าเราจะมาล้อมวงกัน แล้วให้แต่ละคนเล่าว่า เมื่อวานทำอะไร วันนี้จะทำอะไร มีอะไรอยาก Update ให้คนในทีมฟังบ้างไรงี้ จะได้รับรู้ความเคลื่อนไหวของทั้งทีม
  • ….. พักเบรกแปป อ่านมาเยอะแล้วเหนื่อย อันนี้เป็นเบรกตอนบ่าย 3 ทุกวันของที่บริษัท
  • เบรกเสร็จแล้ว อ่านเทคโนโลยีกันต่อ
  • Kata programming ในตอนเช้าเราจะมีการทำ Kata นั้นคือการเขียน Code ด้วยโจทย์เดิมในทุกๆ เช้า เขียนเสร็จแล้วลบทิ้ง ลบทิ้งแล้วเขียนใหม่ ทำวนไปครับ! ทำแบบนี้ทุกวัน เปรียบเสมือนการเล่นกีฬาต่างๆ ถ้าหากเราฝึกซ้ำแล้วซ้ำอีกในท่าเดิมๆ กล้ามเนื้อก็จะจดจำแล้วนำมาใช้ได้โดยอัตโนมัติ !
  • Pair programming คือการที่เราใช้คอม 1 เครื่องแต่มี developer 2 คน! ให้คนนึงพิมพ์ไป แล้วเราก็ดูไปด้วย แบบนี้เราก็จะได้รับรู้เท่าๆ กันว่างานเป็นยังไง อธิบายแทนกันได้ด้วยนะ
  • Slack เราคุยงานกันใน Slack ครับ! ไม่ได้ใช้แชทสีเขียวๆ คุยงานแน่นอน มี Bot แจ้งการทำงานต่างๆ แล้วส่งกลับมารวมไว้ใน Slack อยากค้นหาอะไร หาจากที่นี่ได้เลย
  • Jenkins เป็นเครื่องมือทำ Continuous integration (CI) คุณลุง Jenkins เนี่ย มีหน้าที่ทำให้งานเราราบรื่น ตั้งแต่ Checkin code เรามาจาก Github เอาไปทำ UnitTest แล้วไป Build Image (docker) แล้วเอาไป Deploy ขึ้น Staging Server ให้เราเสร็จ !! ไม่ต้องทำอะไรเลยกับ Server สบายจริ๊ง เพิ่งรู้โลกมาถึงจุดนี้กันแล้วก็ตอนได้ฝึกงานที่นี่แหละครับ
  • CircleCI นี่เป็นของแถม ทีม iPhoenix ของเรายังไม่ได้ใช้หรอกครับ แต่ผมแอบไปสร้างให้ทีม SimpleSat ใช้งาน (อวดนั้นเอง) เจ้านี่แตกต่างจาก Jenkins ตรงที่ทางผู้ให้บริการจะเป็นคนจัดการฝั่ง Server ให้เอง ! แค่เราเขียน Config file เอาไว้ใน Repository ของเรา แล้วนำไปผูกกับ CircleCI เวลาที่มี Trigger มา เจ้า CircleCI ก็จะทำการ test, build, deploy ให้เลย เราไม่ต้องวาง Server เอง
  • Airflow โดยเครื่องมือตัวนี้เนี่ย เรานำมาทำเป็น Worker สำหรับงานต่างๆ เช่น หากเราแก้ไข Config NGINX 1 ไฟล์ แต่เรามี Server ที่กระจายอยู่ทั่วโลก เราก็จะสั่งให้ Airflow เนี่ยไปทำการ Copy แล้วโยนไฟล์แทนเราไปยัง Server ต่างๆ ทั่วโลกเลย สบายจริ๊ง

…และนี่คือภาพยืนยัน ที่เราเขียน Python กันเยอะมาก!

Code stat when internship in Pronto Tools.

Python เยอะมากกกกก ส่วนที่เห็น Yaml เยอะๆ นั้น คือฝีมือจากการแอบไปเขียน Config CircleCI ให้ทีม SimpleSat ครับ

… และแน่นอนผมใช้ Atom คนเดียว เพราะคนอื่นใช้ vscode, vim กันหมดครับ ฮ่าๆ

อ่านมาถึงตรงนี้ความ Cool เริ่มเกิด ความเท่เริ่มมา นี่แค่เทคโนโลยีเอ๊งงงง อะไรจะสนุกขนาดนี้ นี่มันสวรรค์ชัดๆ

Pronto Mac

… ใช่ครับ ทุกคนใน Pronto Tools ใช้แมค 5555

Pronto Life

หลังจากอ่านเทคโนโลยีกันยาวๆ ไปแล้ว เรามาดูส่วนของการใช้ชีวิตกันดีกว่า ว่าที่นี่เป็นยังไง

  • การแต่งกาย ใส่อะไรมาก็ได้ครับ อย่าใส่ชุดนักศึกษามาฝึกงานก็พอ (เรื่องจริงนะ 5555)
  • MacBook บางคนอ่านแล้วคิดว่าถ้าไม่มีแมคแล้วจะฝึกงานที่นี่ได้เหรอ? ได้สิครับ ที่นี่มี MacBook ให้ทุกคนยืมได้แน่นอนจ้า
  • เวลา ที่นี่ถ้าหากใครจะทำอะไร ไปไหนกี่โมงก็แจ้งกันไว้ครับ เพราะเราไม่ใช่แค่ทีมแล้ว เราเป็นครอบครัว ไปธุระไหน, เที่ยวไหนก็ขอให้บอก ให้ทีมรับรู้ ทำงานให้เสร็จตามเป้าหมาย ไม่ใช่อยู่ๆ หายไปก็พอ
  • อาหาร และเครื่องดื่ม ดูภาพเลยดีกว่า
Sabai Sabai Meeting

อันนี้เป็น Meeting ในทุกๆ สิ้นเดือนครับ เรียกว่า Sabai Sabai Meeting มากันทั้งบริษัทเลยยย

Morning salad >//<

เป็นสลัดของทุกเช้า ที่ถ้าหากใครอยากทานก็มาจัดแจงกันเองได้เลย

หยิบตามใจครับ 😆😆

  • ความสนุก ตามภาพเช่นเดิม
Futsal with Kaidee

นี่เราไปแข่งฟุตซอลกับบริษัทขายดีครับ แต่…. ไม่มีรูปนักบอลเลยเนี่ยสิ

Pool at Pronto Marketing

มีโต๊ะพูลให้เล่นครับ อยากเล่นตอนไหนก็มาได้ เล่นไม่เป็นก็ขอให้พี่ๆ ช่วยสอนได้ครับ

Pronto Internship

เป็นมากกว่าแค่ฝึกงานจริงๆ..

อ่านมาถึงตรงนี้ ต้องมีคนอยากสมัครมาฝึกงานบ้างแหละ! มาดูกันเตรียมตัวยังไงก่อนมาสมัครฝึกงาน

  • ทำใจ ทำใจดีๆ เข้าไว้ครับ มั่นใจ! แสดงออกให้ทุกคนเห็นว่าถ้าพี่ๆ รับเราไปฝึกงานเนี่ย นอกจากเราจะไปกิน สลัดฟรีในตอนเช้า, พักเบรกด้วยผลไม้ตอนบ่าย 3, เล่นพูลระหว่างวันแล้ว เราสามารถทำอะไรให้บริษัทได้บ้าง ! ที่นี่ไม่มีคำว่าเด็กฝึกงานห้ามแย้งผู้ใหญ่ครับ หากเรามีความคิดเห็นในส่วนไหนว่าทำแบบนั้นจะไม่ดี หรือเรามีทางที่ดีกว่า เราเสนอไปได้เลยครับ นี่คือวัฒนธรรมที่นี่ ทำให้ทุกคนสัมผัสได้ถึงจิตวิญญาณของนักกินสลัดฟรีตอนเช้าให้ได้ เดี๋ยวพี่ๆ ก็เปิดรับน้องๆ เองครับ :)

แล้วพบกันที่ Pronto Tools ครับ ^____^