August 23, 2023

ประสบการณ์โดน layoff จาก google

(อาหารมื้อสุดท้ายก่อนโดน layoff)


เดิมทีตั้งใจจะเขียน blog แบ่งปันประสบการณ์หลังจากทำงาน google ครบ 2 ปี
เผอิญมีเรื่องเด็ดเกิดขึ้นก่อน คือ เราโดน layoff เมื่อต้นปี
ซึ่งจังหวะนั้นอีกแค่ไม่กี่เดือนก็จะครบ 2 ปีที่ google

โพสนี้เลยต้องเปลี่ยนชื่อหัวข้อหน่อย
และก็เลยมีเรื่องให้เล่าเยอะขึ้นด้วย

อยากจะเล่าให้ฟัง 4 เรื่อง

  1. ประสบการณ์ทำงานที่ google เกือบสองปี
  2. ประสบการณ์วันโดน layoff
  3. ประสบการณ์หางานใหม่
  4. ข้อคิดที่ได้จากประสบการณ์นี้

คิดว่ามีข้อคิดดีๆอยู่ประมาณนึงนะ


บทที่ 1. ประสบการณ์ทำงานที่ google เกือบสองปี


ถ้าเป็นเรื่องการทำงานแล้ว
ทำงานเกือบสองปีที่นี่ เรียกว่ามีโปรเจคหลักๆ 3 โปรเจค

  • โปรเจคที่ 1 google cloud profiler library
  • โปรเจคที่ 2 backend migration
  • โปรเจคที่ 3 stack unwinding

โปรเจคที่ 1 google cloud profiler library

ชีวิตที่ google เราอยู่ในทีมที่ทำ profiling tools ที่เป็น default ของ google
(จริงๆมีอีกหลายทีมที่ profile ด้วยตัวเองถ้ามันไม่ตอบโจทย์ default)

ทีมต่างๆก็จะใช้ service ของทีมเราในการตอบคำถามว่าหลักๆว่า
"ทำไม server ของฉันจึงหิว cpu หรือ memory ฯลฯ"

นอกจาก user ซึ่งเป็นพนักงานภายใน google เองแล้ว
เราก็ยังมีลูกค้าภายนอก ซึ่งก็คือลูกค้า google cloud ด้วย
เราก็เลยมี library ให้ลูกค้า google cloud ใช้

ปัญหาอยู่ที่ว่าทีมเรา พอผ่านไปประมาณระยะเวลานึง มีการโยกย้ายคนในทีมกันเล็กน้อย
ฉะนั้นกลายเป็นว่าเหลือแค่ 2 ในทีมที่รู้เรื่องและมีเวลา maintain library พวกนี้
คือ เรากับเพื่อนร่วมงานอีกคนนึง
และเรากลายเป็นคนหลัก ที่จะต้องแก้บั๊กแทบทุกอย่างที่เข้ามา

ซึ่ง library มันมี 4 ภาษา go python java nodejs
และทุกครั้งที่มีบั๊กอะไรเข้ามา
เราก็จะต้องปรับสมองใหม่ทุกๆครั้งที่ต้องย้ายภาษา

และบั๊กในหลายๆครั้ง ก็เกิดจากสิ่งที่ไม่ได้ซับซ้อนแต่เกิดบ่อย
เช่น การที่ library เราใช้ library อื่นแล้ว library พวกนั้นมันอัพเดท
แล้วการอัพเดทนั้นมันกระเทือน library ของเรา

พอเกิดปัญหาพวกนี้ขึ้น
เราก็มักจะต้องหยุดงานอย่างอื่น
เพื่อมาซ่อมสิ่งที่เจ๊ง เพราะ library update พวกนี้
ทำให้รู้สึกว่างานตรงนี้มันไม่ได้ท้าทายและสนุกอย่างที่เราคาดหวัง

ทุกๆครั้งที่เราคุยกับ manager (เรามี 1-1 สัปดาห์ละครั้ง)
เราก็จะบอกเค้าว่า เออ งานเนี้ย มันเสียเวลาเราไปเท่านี้นะ
แล้วตัวงานมันเหมือนจะไม่ใช่ประเภทที่ทำให้เรามี career growth ได้มากขนาดนั้น

หัวหน้าและเพื่อนร่วมงานเราอีกคนก็เห็นด้วย ก็เลยมาคุยกัน
สุดท้าย ทีมเราก็เลยพยายามย้ายงาน google cloud library ทั้งหมด
ย้ายเจ้าของให้กับทีมที่เฉพาะทางด้าน cloud ไปเลย

ส่วนทีมของเราที่เฉพาะทางด้าน profiling tools
ก็จะได้มาเน้นเฉพาะลูกค้าภายในบริษัท
และทำอะไรที่ทีมเรามีความรู้เฉพาะทางดีกว่า

โปรเจคที่ 2 backend migration

งานใหญ่ๆ อันถัดมาที่เราได้ทำให้ทีมก็คือ
การย้าย backend ของเราไปใช้ service อีกอันนึง

อารมณ์ประมาณย้ายค่าย ถ้าเราใช้ gmail แล้วเราต้องย้ายไป outlook
แต่เป็นในโลกของ service ที่เป็น distributed system

โปรเจคนี้ค่อนข้างสนุกอยู่
ถึงแทบจะไม่ได้เขียนโค้ดเลย
แต่เรียนรู้เรื่อง distributed system และ best practice เยอะมาก

เนื่องจากว่าเราต้องย้าย service ของเราทุกอันไปใช้ของใหม่
เราจึงต้องทำความเข้าใจ service ของเรา ตั้งแต่ frontend ยัน database
เพื่อเราจะได้ย้าย config file ทุกอย่างให้ถูกต้อง
ต้องทำเรื่องขอ permission ขอ quota ใหม่ ฯลฯ

แถมจะต้องทำทุกๆอย่างต้องทำโดยไม่ให้กระทบ availability ของ service
มันก็จะเลยมีการต้องคุยกับทีมว่า
เราจะ release ทีละกี่ % วันไหนของสัปดาห์อะไรงี้
ต้องเขียนโค้ด เพื่อใช้ backend ใหม่และ backend เก่าไปพร้อมๆกันได้
จะได้ทะยอยย้ายได้ อะไรงี้

คิดว่าโปรเจคนี้ ทำให้เราพร้อมที่จะไปลุย
กับการสร้าง service ภายใน google ด้วยตัวเองอย่างไม่มีปัญหาละ

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

โปรเจคที่ 3 stack unwinding

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

นอกจากนั้นก็จะมีโอกาสได้เลื่อนตำแหน่งสูงขึ้นด้วย
ถ้าโปรเจคประสบผลสำเร็จ

ตอนนั้นเราสนใจสิ่งที่เรียกว่า stack unwinding
ซึ่งหลักๆก็คือ สิ่งที่ OS ทำ (หรือบางที library ก็ทำ)
เวลาที่เราอยากจะเห็นว่า โปรแกรมที่มันรันอยู่
ณ จังหวะนี้ มันเรียก function ไหน

เช่นถ้าโปรแกรมเรามี function f เรียก function g เรียก function h
ถ้าเราพยายามไปส่องโปรแกรมระหว่างมันรันอยู่
ก็อาจจะได้ stack หน้าตาประมาณ f -> g -> h

ทั้งหมดนี่หลักๆ เพราะว่าสำหรับทีมที่ทำ profiling tools แล้ว
การเห็น stack จะช่วยให้เรามองเห็นว่า
function ไหนหิว cpu หรือ memory ฯลฯ
แล้วเราจะได้เข้าไปซ่อมแซมถูก

ซึ่งงานด้าน stack unwinding ขนาดบริษัทอย่าง google ซึ่งค่อนข้างใหญ่ ก็ไม่ค่อยมีใครแตะเท่าไร
คนที่แตะก็เป็น rare item และเป็นผู้เชี่ยวชาญระดับโลก
เราก็เลยตื่นเต้น ที่อาจจะได้ทำงานร่วมกับคนพวกนี้
และเรียนรู้อะไรใหม่ๆเยอะๆ

และงานนี้ยังมีปัญหากับบริษัทอยู่
และถ้าแก้ได้ก็จะมีประโยชน์ให้บริษัทค่อนข้างเยอะอยู่
เพราะ ช่วยในเรื่องของการประหยัดค่าใช้จ่าย

เราก็กำลังเรียนรู้สนุกเลย
เริ่มได้คุยทำความรู้จักกับผู้เชี่ยวชาญภายในบริษัท
เก็บข้อมูล อ่านนู่นอ่านนี่

แต่เสร็จแล้วอยู่ๆ ก็โดน layoff
ชีวิตใน google ที่กำลังจะตื่นเต้นของเรา ก็เลยจบลงแค่นี้

ค่อนข้างเสียดาย เพราะ คิดว่า งานในอนาคต เราก็คงจะไม่ได้เลือกทำงานที่มันแตะด้านนี้ละ
แต่บ่นไปก็ไม่ได้อะไร มาเล่าเรื่องอื่นต่อก่อน


เรื่องการอยู่เวร (oncall)

ชีวิตอยู่เวรของเราที่ google ค่อนข้างจะสมบุกสมบัน
(ใช้คำถูกป่าววะ ภาษายิ่งกากอยู่)

ถามว่าอยู่เวรทำอะไร หลักๆก็
ต้องตอบคำถามใน internal forum ต่างๆนานา
(อันนี้ดีนะ ได้ความรู้ และเข้าใจ user ขึ้น)

ต้องเป็นคน release service และคอยคุมว่าสำเร็จไหม
ถ้าไม่สำเร็จ มันเป็นเพราะอะไร

เวลาที่ระบบมันมี notification เช่น integration test fail
หรือ server restart ถี่เกินไปในระยะสั้นๆ
เราจะต้องเป็นคนเข้าไปหาคำตอบคนแรก ไม่ว่าจะเกิดขึ้นกี่โมงก็ตาม
ซึ่ง อี ข้อนี้แหละ มันดูดวิญญาณเราไปได้เยอะอยู่

จากที่ถามเพื่อนร่วมทีมทุกคน
เวลาอยู่เวร ไม่มีคนไหนซวยเท่าเราแล้ว

ทุกครั้งที่เราอยู่เวร มันมักจะ jackpot มีปัญหาตอนเช้าตรู่
เคยเจอปัญหาตอนเที่ยงคืนวันนึง
ต้องตื่น ตี 4 วันนึง
ต้องตื่นตี 5 อีกวันนึง
แล้วก็มีที่เกิดขึ้นตอนหลังเลิกงานทำให้นัดเจอเพื่อน (เป็นมื้ออำลาสำคัญ) เลทไป 2 ชั่วโมง

และหลายๆครั้ง วันสำคัญๆของโลก มักจะตรงกับที่เราอยู่เวร
เช่น วันที่ golang release version ใหม่
วันที่ nodejs deprecate version เก่า
วันที่ ssl certificate มีปัญหา (ละแม่งเรื่องพวกนี้ประมาณ 10 ปีจะมีปัญหาที)
ถึงขนาด manager เห็นด้วยว่าทุกครั้งที่เราอยู่เวร สัปดาห์นั้นมักมีเรื่องตื่นเต้นเสมอ

ทุก 1-1 เราก็จะเล่าให้ manager ฟังว่าสัปดาห์นี้โปรเจคหลักไม่ไปไหนเพราะติด oncall
แล้วก็เริ่มบันทึกว่ามันกระทบเวลากับโปรเจคหลักเท่าไร

ซักพัก ทีมเราก็เลยมาคุยกัน ว่าแทนที่จะ oncall 24/7
ก็เปลี่ยนเป็น oncall เวลาทำการเท่านั้นดีไหม

ก็มีการคุยกับเบื้องบน ฯลฯ สุดท้ายเค้าก็ approve ให้เป็น oncall เวลาทำการเท่านั้น
ชีวิตเราดีขึ้นเยอะมากหลังจากสิ่งนี้เกิดขึ้น


เรื่อง workshop

ทุกๆครึ่งปี ตัวบริษัทจะมี internal conference
ที่รวบรวมคนที่ทำงานด้าน performance มาแชร์ความรู้กัน
และหลักๆก็จะมี tech talk กับ workshop

เราก็ได้มีโอกาสทำ workshop เกี่ยวกับการ profile โปรแกรม
เพื่อทำให้โปรแกรมเร็วขึ้น
เราได้ทำ workshop อยู่ 2 รอบ

อันนี้มันก็ดึงเวลาจากการทำงานหลักไป
แต่ก็เป็นอะไรที่สนุกดีเหมือนกัน
เพราะเราก็ชอบการอธิบายและการสอนนะ
เราก็ถือว่าเราจะได้โตในด้าน public speaking และ การสอนมากขึ้น

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


เรื่องการ mentor

ตอนเราเรียน ป เอก นอกจากจะเป็นนักวิจัยแล้ว
เราก็ได้มีโอกาสเป็นผู้ช่วยสอน (teaching assistant) ด้วย

ซึ่งความสุขเล็กๆที่เราได้จากการทำหน้าที่นี้ ก็คือ
การได้ช่วยนักเรียนแก้ปัญหาต่างๆ
เพราะว่าการที่ได้เห็นนักเรียนตื่นเต้นจากการเข้าใจเนื้อหา

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

ที่ google ก็มีโอกาสได้ทำด้านที่เรียกว่า mentorship ในหลายๆรูปแบบ
ที่เราได้มีส่วนร่วมก็คือ โอกาสได้ช่วยดูแล

  • เด็กฝึกงานหนึ่งคน
  • พนักงานใหม่ fulltime ทีมใกล้ชิด หนึ่งคน
  • พนักงานใหม่ fulltime ทีมไม่ใกล้ชิด หนึ่งคน

สำหรับเด็กฝึกงาน เค้ามาประมาณ 3 เดือนตอนช่วงหน้าร้อน
ทุกวันเราก็จะถามเค้าตอนเช้า ว่า
มีติดตรงไหนหรืออะไรให้ช่วยไหม

หลายๆครั้งเค้าก็อัพเดท status เฉยๆ
และอีกหลายๆครั้ง เค้าก็ให้เราช่วยดูและช่วยอธิบายตรงที่เค้าติด

และก็มีเรื่องอื่นๆ เช่น การช่วยวางแผนว่าควรเน้นงานไหนก่อนหลัง
หรือการเตรียม presentation ตอนฝึกงานเสร็จ ก็ช่วยติวและให้ feedback เค้า

หลังจากโดน layoff เค้าก็ส่งข่าวมาว่า
เค้าได้ทำงาน fulltime ที่ google แล้ว
ถ้าว่างๆอยากนัดเจอ
ค่อนข้างดีใจนะ ที่เค้านึกถึงเราตอนเค้าได้เป็นพนักงาน fulltime
อยากจะมองเข้าข้างตัวเองว่า เราเป็น mentor ที่ดี

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

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

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

แรกๆเราก็นัดเจอกันสัปดาห์ละครั้ง มานั่งดู lecture วิทย์คอม และช่วยตอบคำถามเค้า
หลังๆเราใช้เวลาแลกเปลี่ยนเรื่องราวนอกที่ทำงานกันซะมากกว่า
และหลังจากเราตกงาน ก็ยังคุยกันเรื่อยๆ เรื่องชีวิตนะ

สรุปว่า ไอ้การ mentor เพื่อช่วยคนอื่น
มันก็เหมือนจะกลับมาช่วยตัวเราเองซะมากกว่านะ
เพราะกลายเป็นว่าได้เพื่อนใหม่ซะมากกว่า


เรื่อง work from home vs office

(ออฟฟิศบางที่แต่งสวยดีนะ มีรถตุ๊กตุ๊กด้วย)

เราเข้า google ปี 2021 และตอนนั้นเป็น work from home เป็นหลัก
มันช่างต่างกับประสบการณ์ตอนฝึกงานตอนนู้นปี 2015, 2016, 2017
เพราะสมัยฝึกงาน เราได้เข้า office
ไปเจอผู้คนไปเจอโรงอาหาร ไปเจอเพื่อนฝูงแบบตัวเป็นๆ

บอกตรงๆว่า การเข้า google ช่วง covid ระบาด
ทำให้ไม่รู้สึกเหมือนอยู่ google ขนาดนั้น

มันขาด "ความสนุก" ของ google ที่เรารู้จักมา
เทียบกับหลายๆปีก่อนหน้านี้

เราขอโบ้ยความผิดให้เรื่อง work from home
เพราะ "ความสนุก" ที่เรานึกถึง คือ การได้พบปะเพื่อนในทีม นอกทีม
ได้นั่งในออฟฟิศที่สีสดๆเหมือนสนามเด็กเล่น
(เหมือนจะไม่สำคัญ แต่ให้ผลทางจิตใจนะ)
มีจังหวะพักเที่ยง และเห็นคนเลือกกันว่าจะกินโรงอาหารไหนดี (คล้ายๆชีวิตมหาลัย)
ได้เห็นวัฒนธรรมของบริษัทชัดเจนกว่า เพราะไม่ได้เจอคนแค่ผ่านวีดีโอ
อะไรต่างๆเหล่านี้

หลังจากเริ่ม fulltime ที่นั่นตั้งแต่ 2021
และทำงาน work from home ผ่านไปปีกว่าๆ
ก็ถึงประมาณเดือนเมษาปี 2022 เค้าถึงให้กลับ office สัปดาห์ละ 3 วัน

ตอนนั้นค่อนข้างดีใจที่ได้กลับออฟฟิศนะ
ถึงแม้การเข้าออฟฟิศแปลว่าจะต้องขับรถเยอะก็ตาม

การเข้าออฟฟิศมันก็มีข้อดีข้อเสียประมาณนี้นะ

ข้อเสียสำหรับการเข้าออฟฟิศก็คือ

  • บ้านเราไกล เสียเวลาเดินทางเยอะ
  • ตดไม่ได้ เกรงใจเพื่อนร่วมทีม
  • เปิดเพลงออกลำโพงไม่ได้
  • บางทีที่ทำงานเสียงดัง สมาธิน้อย

ข้อดีสำหรับการเข้าออฟฟิศ ก็ประมาณ

  • เจอเพื่อนผู้คนบ้าง ได้กินข้าวกัน ได้คุยเรื่องจิปาถะ หลังออกจากห้องประชุม
  • ได้เดินขึ้นลงบันได ไปกินข้าว ไปเข้าห้องน้ำ ผลาญ calories มากกว่าอยู่บ้าน
  • เห็นเพื่อนเลิกงาน เราก็รู้สึกไม่ผิดที่จะเลิกงานบ้าง (เวลา work from home บางทีรู้สึกผิดว่าเราเอาเปรียบเพื่อนไหม เวลาเลิกงาน)
  • ได้ใช้สิ่งที่ออฟฟิศมอบให้อย่างเป็นประโยชน์ เช่น ห้องประชุมกว้างๆ แอร์เย็นๆ ชากระป๋องในตู้เย็นที่ไม่ต้องซื้อเอง
  • ที่ออฟฟิศบางทีมีเสียงดัง สมาธิน้อย
  • ไม่ต้องนั่ง ssh เข้าเครื่องที่ใช้ development แล้วทำทุกอย่างผ่าน command line

(เดินขึ้นลงบันไดทุกวัน สุขภาพดีเลย)

หลังจากที่เข้า office สิ่งที่เราอยากที่จะทำมานานแล้ว คือ
การนัดเจอเพื่อนคนไทยกินข้าวบ้าง

ตอนที่เราเคยฝึกงานที่ google การได้เจอเพื่อนๆคนไทยมันคือสิ่งที่น่าจดจำ
เราก็เลยอยากให้ตรงนี้มันดำเนินต่อไป

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

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

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

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

ชีวิตพนักงานเงินเดือนที่ไทยเรามีทั้งสังคมครอบครัวและสังคมเพื่อนค่อนข้างสมบูรณ์
ชีวิตพนักงานเงินเดือนที่คาลิฟอร์เนียของเรา สังคมครอบครัวสมบูรณ์เหมือนเดิม แต่สังคมเพื่อนเราลดลงไปเยอะมาก

แล้วพอโดน layoff ซะก่อน ตรงนี้ก็เลยไม่ได้สานการสร้างสังคมตรงนี้ต่อ
เลยค่อนข้างเซ็งเป็ดจุดนี้เป็นพิเศษ


สิ่งที่ประทับใจ

ประสบการณ์เกือบสองปีที่ทำงานที่ google ก็ได้เห็นสิ่งที่บริษัททำได้ดีและประทับใจนะ

อย่างแรก คือ infrastructure เช่น การหา server เพื่อเราจะได้ deploy service
หรือเรื่อง observability ต่างๆ เช่น ที่ google เรียกได้ว่า น่าจะอันดับต้นๆของโลก
หรือเรื่อง library ไม่ว่าอยากจะทำอะไร ก็มี library คุณภาพพร้อมแล้ว

ไปสัมภาษณ์งานใหม่ที่ไหนพอถามเรื่อง infrastructure
เค้าก็มักจะบอกกันว่า "ที่นี่ค่อนข้างดี แต่ยังไงก็ไม่เทียบกับ google หรอก"
(ที่ที่ไปสัมภาษณ์ เรามักจะได้คุยกับพนักงานเก่า google ที่ย้ายไปทำที่บริษัทนั้นๆ)

อย่างที่สอง คือ คุณภาพ code เราชอบมากที่นี่
การรีวิว code ต้องมี 1 เรื่องความถูกต้อง และ 2 คุณภาพ code
และมี document และ forum ภายในจำนวนมาก
ที่แชร์ความรู้และส่งเสริมวัฒนธรรมการเขียน code ที่ดีในบริษัท

ยกตัวอย่างเช่น ถ้ารู้จัก abseil ซึ่งมีการแชร์ความรู้ c++
มันก็กำเนิดมาจาก document ภายในของ google ที่เอาส่วนที่แชร์ได้มาแชร์ให้ public

อย่างที่สาม คือ ผู้เชี่ยวชาญ
ไม่ว่าจะเรื่องไหนก็ตาม บริษัทขนาดยักษ์แบบ google มีผู้เชี่ยวชาญแน่นอน
มีโอกาสมากมายที่จะได้เรียนรู้จากคนเหล่านั้น
อยากรู้เรื่อง kernel จัดให้
อยากรู้เรื่อง statistics จัดให้
อยากรู้เรื่อง java virtual machine จัดให้ ฯลฯ

อย่างที่สี่ คือ "ความเปิดเผย" ข้อมูลภายใน สำหรับคนภายในกันเอง
หมายถึงว่า ไม่ว่าใครก็ตาม สามารถอ่าน code review หรือ bug ของคนอื่นและมีส่วนร่วมได้
ก็ต่อเนื่องจาก เรื่องคุณภาพ code และเรื่องผู้เชี่ยวชาญนะ
เพราะถ้าเราอ่านอะไรก็ได้เต็มที่ขนาดนี้
เราก็สามารถเรียนรู้สิ่งต่างๆได้
โดยการไปอ่าน code review ของคนเก่งๆ ว่าเค้าคิดอะไรในหัวบ้าง
เอาจริงๆ มันก็เหมือนเราไปอ่าน issue หรือ pr ใน github แหละ
แค่ว่าเรารู้ว่าใน google ตัว repo มันมีคุณภาพทั้ง repo

และอย่างสุดท้ายที่ชอบคือ วัฒนธรรมการให้ความเคารพ (respect)
ซึ่งไม่ว่าบริษัทไหน ก็จะมีผสมๆ ของคนน่าเคารพ และคนไม่น่าเคารพอะนะ
แต่เรารู้สึกว่าที่ google จะมีคนที่น่าเคารพเป็น เปอร์เซ็นต์ที่สูงมาก

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

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

อีกหลายๆครั้งที่เราพยายามนัดคุยกับคนที่ตำแหน่งสูงกว่าเรามากๆ เพื่อขอคำแนะนำ
เราก็จะได้ความรู้สึกแบบนี้ตลอด
รู้สึกเป็นวัฒนธรรมองค์กรที่เราชอบมากๆ

เรื่องการให้ความเคารพเพื่อนร่วมงานทุกชนชั้นวรรณะ
และเรื่องความอ่อนน้อมถ่อมตน เรารู้สึกว่าที่นั่นค่อนข้างโอเคมากๆๆๆๆๆเลย

ขอจบ section นี้ด้วยรูปอาหารที่เรากินที่ออฟฟิศซึ่งส่วนใหญ่เป็นผัก
ซึ่งการมีตัวเลือกอาหารเป็นผักเยอะๆ
เป็นสิ่งที่ชอบมากๆสำหรับอาหารพนักงานที่นี่
(แต่ถ้ารู้ว่าจะโดน layoff อาจจะตักเนื้อเยอะกว่านี้หน่อยจะได้คุ้ม)





แล้วก็รูปออฟฟิศ บางที่คือจัดห้องโคตรสวยอะ












ตอนแรกก็ไม่กล้าซ่ามากบน social media
รู้สึก cringe ตัวเองถ้าโพสอวดเยอะเกิน
แต่คิดว่าถ้าโดน layoff แล้ว แชร์รูปได้ ไม่ถือว่าอวด


บทที่ 2. ประสบการณ์วันโดน layoff



(เจออีเมลวันนั้น หงายเงิบไปเลยมึงงงง)

วันที่เราโดน layoff เป็นวันศุกร์นะ
จำได้ว่าตอนเช้ามืด ตื่นมาเข้าห้องน้ำ ก็เช็คมือถือ
เห็นอีเมลแปลกๆประมาณว่า สอน setup account เสริมของ google
นึกว่าเป็น scam เลยหลับต่อ

ตื่นเช้ามา เจอข้อความมาจากเพื่อนทั้งในไทยและอเมริกา
บอกว่า google มี layoff ครั้งใหญ่ เป็นยังไงบ้าง

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

อะดรีนาลีนหลั่งนะ จังหวะนั้น
ความรู้สึกใหญ่ๆที่เข้ามามีหลายๆอย่างเลยนะ

กังวลว่าครอบครัวจะรู้สึกยังไง

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

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

กังวลเรื่องเงิน

ความกังวลอันถัดมา คือ เรื่องเงิน
เพราะเราไม่รู้ว่าขนาด google ที่มั่นคงขนาดนี้ยัง layoff
แล้วเศรษฐกิจที่เหลือจะเป็นยังไง
เราจะอยู่ได้อีกกี่เดือนโดยไม่มีรายได้เนี่ย

จังหวะนี้เค้าประกาศคร่าวๆ ว่า
severance package (เงินค่าตอบแทนสำหรับผู้โดน layoff) มันให้ประมาณไหน
แต่ยังไม่ได้เห็นตัวเลขจริงๆ ว่าหลังจากโดนภาษีแล้ว และเอาเงินใส่บัญชีเกษียณแล้ว
จะเหลือเท่าไรกันแน่
เลยไม่รู้ว่าเงินเก็บในบัญชี บวกกับเงินก้อนนี้จะกินจะอยู่ไปได้กี่เดือน

สงสัยความสามารถตัวเอง

ความรู้สึกอีกอันนึงที่แรงมากๆ คือ เริ่มสงสัยละ ว่าทำไมถึงเป็นเรา
เราทำงานแย่เหรอ อะไรงี้

ส่วนตัวเราคิดว่าเราทำงานดีนะ
(แต่ทุกคนก็น่าจะมองตัวเองดีไว้ก่อนใช่ปะ)
แต่ถ้าโดน layoff งี้แปลว่าไรวะ
หัวหน้าเราไม่ชอบเราหรือเปล่า
เราไปทำอะไรให้ใครไม่พอใจหรือเปล่า

ในอีเมลที่เค้า layoff เค้าบอกว่าสาเหตุที่เราถูกเลือกเป็นส่วนผสมของหลายๆอย่าง
แต่มันก็ยังค้างคา ว่าเรา performance แย่หรือเปล่า

เราก็ได้ meet expectation มาตลอด
(แต่คนเก่งๆเค้าได้ exceed expectation หรือมากกว่านั้นกันนะ)
แถมหัวหน้าก็คุยกับเราเรื่องเลื่อนขั้น เมื่อเดือนธันวาที่ผ่านมานี่เอง

เกิดไรขึ้นวะ

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

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

เสียดาย

และความรู้สึกสุดท้ายคือเสียดาย
เสียดายโอกาสที่จะได้ทำงานสนุกๆ เจ๋งๆ ที่ google ต่อ
มีอะไรที่เรายังอยากไปต่อ ยังอยากเรียนรู้อีกเยอะ
ทำไมต้องมาจบลงด้วย


วันนั้นทำอะไรบ้าง

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

อย่างที่สอง
ก็เปิดอ่าน social media
สิ่งที่อยากเห็นคือ อยากรู้ว่าคนอื่นที่โดน layoff มีใครพอรู้อะไรบ้าง
มีใครคล้ายเราบ้างไหม

เปิด linkedin ค่อนข้างโอเค
รู้สึกว่ามีเพื่อนร่วมทุกข์ เพื่อนที่ไม่เข้าใจว่าเกิดอะไรขึ้นเหมือนกัน

เปิด youtube ไม่ค่อยโอเค
เพราะมันก็มีพนักงาน google ที่เป็น influencer เยอะแล้วมันก็จะแชร์ว่าวันๆทำอะไรบ้าง
ซึ่งสิ่งที่แชร์ได้มันมีแต่การนั่งกินกาแฟ นวดหลัง กินข้าว กินขนม ฯลฯ
(แชร์เรื่องงานถือว่าเปิดเผยข้อมูลลับ อาจจะโดนไล่ออกได้)

แล้วก็มีคนจำนวนมากหมั่นไส้
คนในสังคมออนไลน์ ก็เลยมารุมโจมตีกันว่า
คนที่โดน layoff ก็มีแต่พวกเนี้ยแหละ
ไม่ทำงานทำการ มัวแต่ทำคลิปพวกนี้
โดนสปอยมาเยอะ โดน layoff ซะมั่งดีละ สมน้ำหน้า

(ห้องเล่นเกม ซึ่งกูไม่เคยได้ใช้ แต่ได้เข้าไปถ่ายรูปนะ แฮร่)

สังคมออนไลน์นี่ก็เต็มไปด้วยคนหัวรุนแรงแฮะ

พอดูแล้ว ก็รู้สึก defensive นิดๆอะนะ
อารมณ์แบบ เฮ้ย แต่กูก็ทำงานสัปดาห์ละ 40-50 ชั่วโมง
(อันนี้ถือว่า work life balance เหมาะสมสำหรับสังคมอเมริกานะ)
และกูไม่ได้ไปนั่งเก้าอี้นวด หรือกิน latte ตลอดเวลานะมึง
อย่าเอากูไปรวมดิ

แถมที่มึงเห็นคลิปที่เค้าแชร์ว่านั่งเก้าอี้นวด กิน latte อันนั้นเค้าน่าจะแชร์แค่เสี้ยวเล็กๆ
เวลาที่เหลืออีก 95% เราเชื่อว่าเจ้าของคลิปก็ทำงานนะเว่ย

แต่เออ มันก็ฝึกตัวเราดีนะ
เราจะต้องดูพวกนี้ให้ได้ แล้วต้องไม่รู้สึกว่าเราโดนโจมตี ถ้าเราไม่ได้เป็นอย่างนั้นจริง

คิดว่าประสบการณ์นี้ทำให้แกร่งขึ้นในด้านนี้

วันนั้นก็เลยไปออกกำลังกาย ซื้อเบียร์มานั่งกินที่บ้าน แล้วก็ซื้อเกมใหม่มานั่งเล่น

(วันนั้นสอยเกม fire emblem engage มาเล่น)

ความรู้สึกหลังวันเกิดเหตุผ่านไปแล้วซักพัก

ความรู้สึกหลังเวลาผ่านไป ก็จะเริ่มไปทางบวกมากขึ้นเรื่อยๆละ

ความสงสัยในตัวเองค่อยๆหายไป

ซักพักก็เริ่มมีเพื่อนใน google ที่ได้ข่าว ติดต่อมาบ้าง
เราก็เลยรู้ว่าหัวหน้าเราก็โดน (เชี่ยยย เค้าทำงานมา 15 ปียังโดน)
หัวหน้าของหัวหน้าบอกว่าไม่ได้มีส่วนในการตัดสินใจและไม่รู้ว่าจะมี layoff ด้วยซ้ำ
หัวหน้าของหัวหน้าของหัวหน้าบอกว่าไม่ได้มีส่วนในการตัดสินใจและไม่รู้ว่าจะมี layoff ด้วยซ้ำ

แล้วภายหลังก็รู้อีกว่า เพื่อน ป เอก อีกคนทำงานสาขาใกล้เคียงกัน เข้า google เวลาใกล้ๆกันก็โดน
และสุดท้ายมีเพื่อนทีมข้างเคียงที่ผลงานดีกว่าเรา ก็โดน

พอรู้ว่าหัวหน้าโดน และ รู้ว่าคนที่ผลงานดีๆก็โดน
ก็เลยเริ่มโทษตัวเองน้อยลงละ
ลูบหลังตัวเอง บอกว่า เออ มึงไม่ได้ทำงานแย่นะ
ถึงแม้ว่าทุกคนรอบตัว ก็พยายามบอกเรามาตลอดว่าเราไมได้ทำงานแย่
แต่คิดว่าสาเหตุที่คิดได้ คือ การได้เห็นอะไรที่เป็นรูปธรรมแบบนี้
บวกกับที่เวลาผ่านไปซักพักแล้วด้วย (2-3 เดือนจากวันเกิดเหตุ)

และบวกกับพอได้สัมภาษณ์บริษัทใหม่เข้ารอบเยอะๆ
หรือเริ่มได้ offer อะไรงี้
ความมั่นใจในตัวเองก็กลับมาเรื่อยๆเหมือนกัน

(จังหวะกำลังจะส่งคืน แลปทอป และ มือถือของที่ทำงาน)

ตื่นเต้นกับงานถัดไป

ผ่านไปเรื่อยๆ ความรู้สึกดีๆเริ่มเข้ามาเยอะขึ้น
คือ ตื่นเต้นกับอนาคตของตัวเองว่าต่อจากนี้เราจะทำอะไรต่อ
จะได้ใช้เวลาเลือกตัวงาน เลือกประเภทบริษัท ได้มากขึ้นแล้ว

ย้อนเวลากลับไป
หลังเราเรียนจบ ป เอก เราไม่มีเวลาได้วางแผนอะไรเท่าไร
ตอนช่วงใกล้ๆเรียนจบก็มัวแต่วุ่นกับวิทยานิพนธ์
แล้วก็อยากได้งาน จะได้เอาเงินมาช่วยภรรยาผ่อนบ้านทันทีหลังเรียนจบ
ก็เลยสมัครบริษัทที่ดังๆไป โดยไม่ได้ให้เวลากับตัวเองเพื่อคิดว่าตัวเองต้องการอะไร

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

ตื่นเต้นที่จะได้พัก

ความตื่นเต้นอันที่สอง คือ ได้พักแล้ว
คิดว่าตั้งแต่จังหวะเข้าเรียน ป เอก (ประมาณ 10 ปีที่แล้ว)
ก็ทำงานๆๆๆๆๆๆมาตลอด
ตั้งแต่จบ ป เอก ก็ทำงานทันที ไม่มีเวลาได้หยุดหายใจเลย

นี่จะได้พักใหญ่ๆครั้งแรกในรอบ 10 ปีเลยมั้ง
รู้สึกว่าจะต้องดื่มด่ำกับเวลาว่างของตัวเองให้ได้มากที่สุด

ซึ่งที่ผ่านมาเราก็ได้ใช้เวลาพักได้สนุกจริงๆ ยกตัวอย่างเช่น
ได้ไปเที่ยวที่ต่างๆ
ได้ไปงานวันรับปริญญาเพื่อน
ได้ไปงานแต่งงานพี่
ได้ฟัง lecture ได้อ่านหนังสือหาความรู้ในหัวข้อที่เราสนใจ
ได้ลองแตะ competitive programming นิดนึง
ได้มีวันที่เล่นเกมอยู่บ้านทั้งวัน
ได้ออกกำลังกายมากขึ้น
ได้ซ่อมแซมบ้าน
ฯลฯ













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

ข้อเสียของการรอนานเกินไป ก็คืองานที่อาจจะมีตำแหน่งว่าง
อาจจะโดนเอาไปแล้ว
โดยเฉพาะถ้าเป็นงานใน startup เล็กๆที่มีตำแหน่งจำกัด


เงินประกันการว่างงานในอเมริกา

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

เนื่องจากอเมริกาเป็นประเทศสหรัฐ
คือมีหลายๆรัฐในประเทศเดียวและแต่ละรัฐอาจจะมีกฏหมายที่ต่างกันไป
แต่ละรัฐก็เลยมีกฏเรื่องเงินประกันนี้ต่างๆกันไปด้วย

เราอยู่รัฐคาลิฟอร์เนีย ถือว่าได้เงินตรงนี้น้อยกว่าอีกหลายๆรัฐในอเมริกา
แต่เออ มันคือเงิน กูเอาหมดแหละ

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

พอเค้า approve ว่าเรามีสิทธิ์เคลมประกันได้
เราก็ต้องมีการกรอกฟอร์มออนไลน์ทุกๆสองสัปดาห์
และเค้าก็จะจ่ายเราทุกๆสองสัปดาห์หลังจากเรากรอกฟอร์มนั้น

เงินเค้าก็ให้มาในรูปแบบบัตรเดบิต แล้วเค้าก็เติมเงินเข้าบัตรนั้นให้ สะดวกดี

ฟอร์มที่ต้องกรอกทุกสองสัปดาห์หลัก ก็กรอกว่า
สัปดาห์ที่แล้วป่วยไหม
ถ้าไม่ป่วย ได้หางานหรือเปล่า
(คำว่า "หางาน" ค่อนข้างกว้าง แม้กระทั่งการอัพเดทเรซูเม่
หรือการทัก recruiter ออนไลน์
หรือการดูตำแหน่งต่างๆที่สนใจใน linkedin ก็ถือว่าหางาน)

และที่สำคัญเค้าถามว่าปฏิเสธงานหรือเปล่า
ถ้าได้งานแล้วปฏิเสธไม่ทำ ก็ถือว่า ไม่มีสิทธิ์เคลมประกันแล้ว

(ตัวอย่างฟอร์มที่ต้องกรอก)

บทที่ 3. ประสบการณ์หางานใหม่


ในการหางานใหม่ เราใช้พลัง (หรือจะเรียกความ privilege ก็ได้นะ) ทั้งหมด 5 อย่าง
เพื่อให้เพิ่มโอกาสได้เรียกสัมภาษณ์ให้ได้สูงขึ้น

พลัง google

อย่างแรก คือ มีชื่อ google บน resume และ linkedin

ตลอดเวลาการทำงานที่ google และหลังโดน layoff
เรามี recruiter ทักเข้ามาใน linkedin อยู่เรื่อยๆ
เค้ามักจะขึ้นประโยคด้วยการบอกว่า เห็นคุณทำงานที่ google ฯลฯ

คือ ถ้าเราไม่เรื่องมากเลย ยังไงก็มีงานให้เราสมัครค่อนข้างเยอะ

พลังความรู้เฉพาะทาง

อย่างที่สอง คือ เรามีความรู้เฉพาะทางจากการเรียน ป โท ป เอก
และเราโฆษณาตัวเองด้านนั้นเยอะๆเวลาสมัคร

ซึ่งการทำแบบนี้แปลว่าเรามึ ความเรื่องมาก ได้มากกว่าผู้สมัครงานทั่วไป
แต่ในทางกลับกันก็แปลว่าเวลาเราเจองานที่เหมาะกับความสามารถเรา
เราจะดึงความสนใจจาก recruiter ได้ง่ายขึ้น

เปรียบเทียบว่า เวลาเราเจ็บตา เราอยากเจอหมอตา มากกว่าหมอทั่วไป

เวลา recruiter อยากได้คนทำงานด้าน compiler
เค้าอยากเจอคนมีประสบการณ์ compiler มากกว่าประสบการณ์ software engineer ทั่วไป

พลังประสบการณ์การทำงาน

อย่างที่สาม คือ เราทำงานมานานพอ
ที่จะสมัครตำแหน่ง senior software engineer ได้

ซึ่งคิดว่า demand ด้านนี้ยังมีอยู่สูง
เมื่อเทียบกับ entry level ซึ่ง demand อาจจะน้อยลง

พลังคนรู้จัก

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

พลังไม่ง้อ

อย่างสุดท้าย คือ การที่เราไม่รีบหางานใหม่

เนื่องจากเรามีเงินจาก severance package พอรอดไปได้หลายเดือน
เราเลยไม่ได้รีบหางานใหม่

และเรื่องสำคัญใหญ่ๆอีกเรื่อง คือ เราไม่มีปัญหาเรื่องกลัววีซ่าขาด
ก็เลยไม่ต้องรีบสมัคร

ผลลัพธ์ก็คือ เราไม่สมัครจนกว่าเราคิดว่ามันเป็นงานที่เราชอบจริงๆ
และเราก็ไม่เครียดว่าจะสัมภาษณ์ไม่ผ่าน เพราะถึงไม่ผ่านเราก็ยังอยู่รอดต่อไปได้

พอเป็นแบบนี้ ทุกงานที่เราสมัคร
เราก็จะสามารถแสดงออกได้จริงๆว่าเราอยากได้งานนั้น

และในขณะเดียวกัน เราก็เข้าไปด้วยความไม่กลัวด้วย
เพราะถ้าคุยแล้วงานมันไม่เวิร์คเราก็จะปฏิเสธงานนั้นได้แบบไม่ต้องง้อ

คิดว่าห้าอย่างนี้ทำให้มีที่เรียกสัมภาษณ์ และการสัมภาษณ์ผ่านไปด้วยดี


วิธีเลือกงานรอบนี้

การสมัครงานรอบนี้ เราค่อนข้างเรื่องมากเทียบกับทุกงานที่ผ่านมาในชีวิต
เพราะก็ไม่มีอะไรจะเสีย ถ้าไม่ได้งานก็พักผ่อนต่อ ถ้าได้งานก็ เออ ได้งาน

ก่อนสมัครงาน ก็คือค้นหาตัวเองก่อนเลย
นั่งคิดไปถึงประสบการณ์เก่าๆ ว่าเราตื่นเต้นกับอะไร หรือไม่ชอบอะไร
และต้องการอะไรในชีวิต

ถ้ามองกลับไปถึงประสบการณ์ก็รู้สึกว่าตัวเองชอบ

  • งานที่ได้ใช้ความรู้เฉพาะทาง compiler / programming language / formal methods
  • ถ้าไม่ได้ใช้ความรู้เฉพาะทาง ขอเป็นงานที่ได้ทำอะไรที่เป็นประโยชน์กับเพื่อนโปรแกรมเมอร์ด้วยกันก็โอเค (เช่น dev tools / infrastructure / runtime / library)
  • อยากได้งานที่ไม่ซีเรียสกับสถานที่ทำงาน ความกดดันต่ำ และสามารถขอวันลาได้ไม่ลำบาก

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

มีความเรื่องมากประมาณนึง
แต่ไม่กล้าเรื่องมากเกินไป
ก็ไม่เจาะจงเรื่อง technology หรือภาษาที่ใช้ หรือว่าต้องเป็น frontend backend fullstack
และเรื่องเฉพาะทางก็ไม่เน้นอย่างเดียวแต่เน้น 2-3 อย่างที่ใกล้เคียงกัน

เราคิดว่าการศึกษาตัวเอง ว่าอะไรยอมได้ อะไรยอมไม่ได้
มันก็ช่วยในการหางานที่เหมาะสมได้ประมาณนึง


วิธีการหางาน

การหางานรอบนี้ ที่ที่ได้เรียกสัมภาษณ์เริ่มมาจากการหาข้อมูล linkedin ล้วนๆ น่าจะ 99%

ก็สมัคร linkedin premium นะ ไม่รู้ว่าช่วยแค่ไหน
แต่สมัครเผื่อว่าอยากจะติดต่อ recruiter ที่ประกาศหางานโดยตรง
แล้วคุ้นๆว่า linkedin premium มันสามารถส่ง message ให้คนไม่รู้จักได้
โดยที่ข้อจำกัดน้อยกว่า linkedin แบบธรรมดา

หลักๆก็เข้าไป search บน linkedin พวก keyword ที่เราเล็งอยู่
เช่น เราอยากเฉพาะทางด้าน programming language / formal methods / compilers
เราก็ลองหาคำพวกนั้นดู

แล้วมันก็สามารถ filter ได้ต่อ เช่น ถ้าเล็งเฉพาะงานที่อยู่ในบริเวณรัฐ california
หรืออยากหางานที่ remote 100%

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

ถ้าใส่ filter เยอะๆ เช่น จำกัดว่าต้องอยู่ใกล้ san francisco (เมืองในรัฐ california)
ก็อาจจะมีคำตอบน้อยเกิน แล้วก็ต้องไล่ใส่เมืองใกล้ๆ

แต่หลักๆ ขั้นตอนแรก เหมือนอยากได้ชื่อบริษัทเฉยๆ

พอได้ชื่อบริษัทมาซัก 10-20 ที่ ก็ค่อยเจาะ
ว่าแต่ละบริษัทประกาศหางานอะไรบ้าง

ถ้างานมันประกาศทาง linkedin มันก็จะเห็นวันประกาศ
ซึ่งถ้าเพิ่งประกาศไป มักจะหมายความว่า ตำแหน่งยังเปิดอยู่

หรือเข้าไปในเวบของบริษัทนั้นๆเลย แล้วหางาน
เพราะบางทีเราก็ไม่ได้เห็นทุกตำแหน่งผ่าน linkedin
อาจจะ keyword ไม่ตรงก็ได้
หรือตำแหน่งที่ฮิตมันทับถม
ตำแหน่งที่เราอาจจะอยากสมัครอะไรงี้

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

ถ้ามีคนไทย หรือคนรู้จัก หรือ เพื่อนของเพื่อน ก็พยายามหาทางทำความรู้จัก
แล้วขอข้อมูลเกี่ยวกับบริษัทนั้น ฯลฯ
ถ้าคุยแล้วโอเค ก็อาจจะขอให้เพื่อน refer ตรงๆเลย
(การ refer คือ การที่มีเพื่อนทำงานอยู่ในบริษัท
และเพื่อนคนนั้นช่วยโฆษณา resume ของเราให้ HR หรือทีมโดยตรง
จะได้มีโอกาสได้เรียกสัมภาษณ์มากขึ้น)

ถ้าไม่มีคนรู้จัก ก็สมัครออนไลน์ไป
แต่โอกาสได้เรียกสัมภาษณ์จะน้อยกว่า referral เยอะมาก

สถิติการสัมภาษณ์รอบนี้

สมัครไปทั้งหมด 18 ที่
เจองานเผ่าน LinkedIn เกือบทุกที่
ได้เรียกสัมภาษณ์ทั้งหมด 7 ที่
ได้ offer 4 ที่ (สอบตก 3 ที่)

ทุกตำแหน่งที่สมัคร ตัวงานทำประโยชน์ให้โปรแกรมเมอร์

รอบนี้ไม่สมัครบริษัทยักษ์เลย
บริษัทใหญ่สุดที่สมัครมีพนักงานน่าจะประมาณ 5000 คน
บริษัทเล็กสุดที่สมัครมีพนักงานไม่เกิน 10 คน

สมัครเองออนไลน์ 12 ที่
มีแค่ 2 ที่ ที่เรียกสัมภาษณ์
หนึ่งในนั้นเราสมัครภายใน 15 นาทีแรกที่งานมันโผล่ขึ้นมาใน LinkedIn
อีกงานนึงสมัครไปนาน กว่าจะเรียกสัมภาษณ์คือ 1 เดือนถัดมา แถมคนละตำแหน่งกับที่สมัครไปอีก

จากที่สมัครออนไลน์ทั้งหมด 12 ที่
มีที่ที่เกี่ยวกับ blockchain 6 ที่
สาเหตุที่สมัครงาน blockchain เพราะ
งานแขนงนี้มันมีตำแหน่งที่ได้ใช้ความรู้เฉพาะทางที่เราเรียนมาเยอะ
แต่เรื่องของเรื่องคือมันดันต้องการความรู้เฉพาะทาง blockchain ด้วย
สรุป ไม่มีแม้แต่ที่เดียวที่เรียกสัมภาษณ์ น่าจะเป็นเพราะไม่มีประสบการณ์ blockchain

การสมัครงานรอบนี้
มี recruiter ติดต่อมา 4 ที่
คนนึงพอคุยแล้วก็ให้ resume ก็หายตัวไป
อีก 3 ที่ หลังจากตอบแชท recruiter คือได้สัมภาษณ์ต่อ
คิดว่า recruiter ติดต่อมาเพราะมีชื่อ google อยู่ใน linkedin

การสมัครงานรอบนี้
ให้เพื่อนช่วย refer 2 ที่
ได้สัมภาษณ์ทั้ง 2 ที่
พลังแห่งการ refer มันแรงจริง

สำหรับระยะเวลาตั้งแต่สมัคร จนกระทั่ง recruiter ทักมา
บางที่สมัครไป 2 วันก็ได้คุยกับ recruiter ละ
บางที่ 1 สัปดาห์กว่าจะได้คุย
บางที่ 2 สัปดาห์
บางที่เดือนนึงกว่าจะได้คุย

สถิติการสอบตก
ตกสัมภาษณ์เพราะความรู้ไม่พอ 1 ที่ (มันให้โจทย์ thermodynamics มาหวะ)
ตกสัมภาษณ์เพราะ system design (ดูข้างล่างว่ามันคืออะไร) ทำได้แย่ 1 ที่
และตกสัมภาษณ์เพราะ timezone ต่างกันเกินไป 1 ที่ (ทีมส่วนใหญ่อยู่ยุโรป และเราอยู่คาลิฟอร์เนีย เค้าเลยบอกว่า ถึงได้งาน อาจจะ collaborate ลำบากเกินไป ตัดจบตั้งแต่รอบแรกเลยดีกว่า)

ทุกที่ใช้เวลาตั้งแต่คุยวันแรกจนได้ offer ระหว่าง 1-2 เดือน


ถูกสัมภาษณ์ในรูปแบบไหนบ้าง

สำหรับวิธีการสัมภาษณ์ ก็ค่อนข้าง standard ไม่มีอะไรผิดแปลกไปจากการสัมภาษณ์ technical ในอเมริกาจากประสบการณ์ที่ผ่านมามากนัก

ส่วนใหญ่จะเน้น technical interview คุยกับคนประมาณ 4-6 คนกว่าจะได้ offer
และก็มักจะมี behavior interview ที่ต้องคุยกับ 1-2 คนกว่าจะได้ offer

ที่แน่ๆ จะมีรอบเขียน code ผ่าน video call
เค้าก็ให้โจทย์มา
เราก็คุยกันเรื่องโจทย์และ solution ต่างๆ
แล้วคนสัมภาษณ์ก็จะบอกเราว่า อยากให้เรา code solution ไหน
แล้วเราก็เขียน code ให้เค้าดู (มักจะใช้เวบที่ชื่อว่า coderpad)
และอธิบายระหว่างเขียน และ test หลังเขียนเสร็จ

มีที่นึงที่รอบเขียน code เน้น multi-threading ใช้ golang สัมภาษณ์
มีการต้องใช้ channel ใช้ mutex ฯลฯ เยอะแยะ
ค่อนข้างน่าสนใจ เพราะไม่เคยเจอแนวนี้มาก่อน

บางที่มีรอบถาม math & probability พื้นฐาน
เช่นแก้สมการ
นับ combination permutation
คำนวณ conditional probability เบื้องต้น อะไรงี้
(เอาจริงๆ ไม่แน่ใจว่า รอบนี้วัดอะไร แต่สอบผ่านก็โอเค)

บางที่มีรอบ algorithm แต่ไม่เขียน code
ใช้คำพูดคุยกันซะส่วนใหญ่และอาจจะมี pseudocode เพื่อจะได้สื่อสารกันชัดเจนขึ้น

ก็คือให้โจทย์มาทีละข้อ แล้วก็ถกกันเรื่อง algorithm ที่จะแก้โจทย์นั้น
คุยเรื่อง big O ของ algorithm นั้น
เสร็จแล้วก็ให้ข้อใหม่มาเรื่อยๆ
ทำแบบนี้จนหมดเวลา แก้โจทย์ไป 4-6 ข้อ อะไรงี้

มีบางที่ จำลองการที่มีพนักงานใหม่ ติดขัดในการแก้ปัญหา
แล้วขอให้เราช่วยพนักงานใหม่ debug ด้วย
อันนี้ไม่เคยเจอมาก่อน ก็สนุกดี
สัมภาษณ์รูปแบบนี้ เราว่าก็อาจจะมีประโยชน์สำหรับการวัดเรื่อง
วิธีการอธิบาย วิธีสื่อสาร และ mindset ของผู้สมัครนะ

และก็จะมีสิ่งที่เรียกว่า system design interview
คือ เค้าก็จะให้โจทย์มา เช่น "จงออกแบบระบบจัดการตั๋ว" อะไรงี้
แล้วเราก็จะคุยกันเรื่อง requirement ก่อน (ซึ่งแทบทุกที่จะเน้นว่าต้อง scalable และ fault tolerant)
แล้วก็ค่อยลงเรื่องว่าจะออกแบบยังไง
บางที่จะไม่เน้นเจาะ requirement มากและลงรายละเอียดระดับโค้ด
บางที่เน้นเจาะลึก requirement และคุยกันบน google docs ว่าจะออกแบบได้แบบไหนบ้าง
บางที่ให้ออกแบบระบบที่เกี่ยวกับสิ่งที่ทีมทำอยู่โดยตรง (อันนี้ยาก เพราะ ต้องมีความเข้าใจว่าทีมทำอะไรอยู่ด้วย เสียเวลาเพิ่มไปอีก)
บางที่ให้ออกแบบอะไรที่ generic โจทย์เข้าใจง่ายๆ

นอกจากเรื่องการคุย technical และ behavior ก็มีเรื่อง reference
คือ บริษัทก็จะขอรายชื่อและอีเมลคนที่เคยที่ทำงานกับเราและสามารถให้รายละเอียดการทำงานที่ก่อนๆของเราได้
บางที่สนใจ reference มากเป็นพิเศษ
เช่น กำหนดให้ reference ต้องเป็น tech lead และ หัวหน้าเท่านั้น (เป็นแค่ senior ไม่ได้)
หรือแม้แต่ให้ชื่อ reference ไปแล้ว ทางบริษัทก็มีการไปหาคนที่รู้จักเราเพิ่มเองหลังไมค์
ส่วนบางที่ไม่แคร์ reference เลย สัมภาษณ์ technical+behavior ผ่านก็ผ่านเลย

ที่คุยด้วยทั้งหมด มีแค่ที่เดียวที่อยากรู้อยากเห็นเป็นพิเศษเรื่องการโดน layoff
เช่น ถามประมาณว่า รู้ไหมทำไมถึงโดน layoff
หรือตอนแรกขอ reference เป็นหัวหน้า แต่พอรู้ว่าหัวหน้าก็โดน layoff ก็ขอคุยกับหัวหน้าของหัวหน้าแทน
บริษัทที่เหลือดูไม่แคร์เรื่องโดน layoff เหมือนว่ามันเป็นเรื่องปกติของเศรษฐกิจปีนี้
แล้วถ้าสัมภาษณ์ผ่านก็ไม่จำเป็นต้องแคร์เรื่องว่าโดน layoff เพราะอะไร


ความเห็นส่วนตัวเกี่ยวกับวิธีการสัมภาษณ์แบบ technical

หลักๆก็คือ เป้าหมายของการสัมภาษณ์คือหาคนที่ช่วยแก้ปัญหาให้บริษัทได้
สำหรับงานโปรแกรมเมอร์ เราต้องการคนที่มีทักษะการเขียนโปรแกรม ที่เราอยากทำงานด้วย

ซึ่งกิจกรรมต่างๆในชีวิตโปรแกรมเมอร์ ประกอบไปด้วย

  • การรีวิวโค้ด
  • การถูกรีวิวโค้ด
  • การคุยเรื่อง requirement หรือ bug
  • การเขียนโค้ด
  • การอ่านโค้ด
  • การออกแบบระบบลง document และพูดคุยกับทีม
และเนื่องจากเวลาของทั้งคนสัมภาษณ์และคนถูกสัมภาษณ์มีจำกัด

เราคิดว่าการสัมภาษณ์ที่เหมาะสมคือดการให้โจทย์ที่ไม่ยากเกินไป
มันทำให้ได้เห็นว่าผู้สมัครคุยเรื่อง requirement ยังไง

การให้เขียนโค้ด live ถ้าโจทย์ไม่ซับซ้อนเกินไป
(ใช้ standard data structure เป็น
เขียนลูป เขียน if-else ตั้งชื่อ variable อ่านตามง่าย
เขียนโค้ด recursive เป็น อะงี้ ไม่ต้องเป็นโจทย์ algorithm ยากๆ)
ก็ได้เห็นเดี๋ยวนั้นถึงความช่ำชองในการเขียนโปรแกรมของผู้สมัคร
ซึ่งส่วนตัว ตราบใดที่เราเห็นว่า ผู้สมัครไม่นั่งจ้องกระดานเปล่าๆเป็นเวลานานๆ
และเขียนโค้ดออกมาอ่านไม่ยาก
เราว่าก็ถือว่าผ่านความต้องการขั้นต่ำแล้ว

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

ส่วนเรื่องการต้องบอกว่าโค้ดมี big O เท่าไร
ก็เหมือนการวัดความรู้พื้นฐานนะ
เพราะถ้าในชีวิตจริง
ถ้าไม่รู้ว่าสิ่งที่ทำมันเข้าข่าย O(N^2) หรือแย่กว่าเมื่อไร
มีสิทธิ์ที่โปรแกรมจะอืดสุดๆได้เวลาเจอ input ใหญ่ๆ
หรือการถ้ารู้วิธีแก้ปัญหาให้อยู่ในเครือ O(N) ก็มีความสำคัญกับการ scale ระบบ
หรือแค่การเลือก data structure ให้ถูกในการแก้ปัญหาก็ควรจะรู้เรื่อง big O พื้นฐาน

จริงๆถ้ามันมีวิธีการสัมภาษณ์ที่วัดเรื่องการอ่านโค้ด
และการออกแบบระบบ เขียนลง document ก็อาจจะดีนะ
(แต่อาจจะเป็นอะไรที่เสียเวลาเกินก็ได้)

สำหรับการสัมภาษณ์แบบ system design
ไม่มีความเห็นเท่าไร เพราะประสบการณ์ด้านนี้ยังน้อยอยู่
ไม่รู้ว่าควรหรือไม่ควรวัดอะไรบ้าง


คนสัมภาษณ์

เรื่องคนที่มาสัมภาษณ์เราหลักๆก็มีสองสามรูปแบบ

ถ้าเป็น technical บางที่ให้คนแรนด้อมมาสัมภาษณ์
แต่บางที่ก็ให้คนในทีมที่เราจะไปร่วมมาสัมภาษณ์เลย
ชอบประเภทหลังมากกว่านิดนึง เพราะ เราก็จะได้ถามคำถามที่เจาะจงเกี่ยวกับทีมได้
และจะได้รู้หน้าตาแหละนิสัยคนในทีมที่เราสมัคได้บ้างเล็กน้อย

ส่วนสัมภาษณ์ behavior บางที่ก็ให้คนแรนด้อมมาสัมภาษณ์
บางที่ให้ manager ของทีมที่เราสมัครมาสัมภาษณ์
บางที่ให้ skip manager (หัวหน้าของ manager อีกที) ของทีมที่เราสมัครมาสัมภาษณ์
และบางที่ก็ให้ CEO มาสัมภาษณ์ ถ้าบริษัทเล็กพอ


วิธีการเตรียมสัมภาษณ์ที่เราใช้

ก่อนจะเล่าเรื่องวิธีเตรียม ต้องเล่าก่อนว่าเรามีพื้นฐานอะไรแล้วบ้าง
พื้นฐานเหล่านี้ ย่นระยะเวลาการเตรียมตัวเยอะมาก

เรามีพื้นฐานทฤษฏีวิทย์คอมเบื้องต้นแล้ว
เช่น ถ้าพูดคำว่า depth first search รู้แล้วว่ามันคืออะไร และอธิบายด้วยคำพูดตัวเองได้
ถ้าพูดคำว่า heap รู้แล้วว่ามันคืออะไร และอธิบายด้วยคำพูดตัวเองได้
ถ้าพูดคำว่า big O รู้แล้วว่ามันคืออะไร และอธิบายด้วยคำพูดตัวเองได้

เรามีประสบการณ์ลองทำโจทย์ competitive programming บ้างแล้ว
ที่บอกว่ามีประสบการณ์คือ เคยลองทำโจทย์เล่นๆนะ ไม่เกิน 50 ข้อแหละ
แต่ไม่เคยแข่ง ไม่เคยมี ranking
แต่ประสบการณ์นี้แปลว่า เรามีกลยุทธในการวิเคราะห์โจทย์อย่างเป็นระบบ
ลอง brute force ก่อน ว่าใช้เวลาเท่าไร แล้วค่อยๆพยายามทำให้เร็วขึ้นทีละเปลาะ
ซึ่งพอมี big O ไหนเป็นเป้าหมาย มันก็จะกึ่งๆเป็นคำใบ้ว่าต้องใช้ท่าไหน
เราสามารถแก้หนึ่งปัญหาผ่านในหลายๆวิธีได้
เราชินกับการพยายามมองปัญหาแบบ recursive และพิสูจน์แบบ "ขอไปที" ได้
เราสามารถมองโจทย์ซึ่งไม่ยากเกินแล้วตีความให้มันให้เป็นปํญหาโจทย์ของ graph หรือ tree ได้

เรามีประสบการณ์การเขียนโปรแกรมมานานมากแล้ว
เช่น ถ้าให้เขียนโปรแกรมภาษา c++ จาก notepad เปล่าๆ ไม่มีปัญหา

เรามีประสบการณ์เป็นผู้สัมภาษณ์มาก่อน
แปลว่า เราพอรู้คร่าวๆว่าผู้สัมภาษณ์ต้องการเห็นอะไร
เช่น เค้าอยากให้เราอธิบายความเข้าใจ requirement ก่อนเขียนโค้ด
เค้าอยากให้เราอธิบายแผนก่อนเขียนโค้ด
เค้าอยากให้เริ่มจาก solution ง่ายๆก่อนแล้วค่อยๆพัฒนาไปเรื่อยๆ
เค้าอยากเห็นการอธิบายโค้ดระหว่างเขียน
เค้าอยากเห็น test case หลังเขียนเสร็จ
ฯลฯ

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

เรื่องการเตรียมตัวหลักๆก็มี ความรู้เฉพาะทาง, การเขียนโปรแกรม, system design, และ behavior interview

การเตรียมความรู้เฉพาะทาง

บริษัทที่เราสมัครมี recruiter ที่ค่อนข้างดี
เค้าอธิบายให้ว่าทางบริษัทคาดหวังอะไรบ้างเกี่ยวกับการสัมภาษณ์

เวลาเราสัมภาษณ์กับบริษัทพวกนี้ เราจะขอสัมภาษณ์สัปดาห์ถัดไป
ส่วนสัปดาห์ปัจจุบัน เราก็จะนั่งดู lecture บน youtube เอา
เช่น คอร์ส distributed system หรือ คอร์ส program analysis

และเพื่อประหยัดเวลา
เราก็จะข้ามหลายๆอย่างที่เกี่ยวกับทฤษฏี (เช่น พิสูจน์)
ข้ามรายละเอียด (เช่น ขั้นตอนทั้งหมดของ algorithm)
เน้นพยายามเข้าใจในทางปฏิบัติ (เช่น ใช้ algorithm ไหนตอนไหน) แทน

หลายๆครั้งการเพิ่มความเร็วของคลิป จะทำให้ตามไม่ทัน สำหรับข้อมูลที่มัน technical มากๆ
จะเพิ่มความเร็วของคลิปตอนทบทวนสิ่งที่ดูแล้วซะมากกว่า

การเตรียมเรื่อง live coding

สำหรับการเขียนโปรแกรม มันมีสามเรื่อง
อย่างแรก คือ ใช้ standard library เป็นไหม
อย่างที่สอง คือ ใช้ ภาษาที่เหมาะสมกับการสัมภาษณ์เป็นไหม
อย่างที่สาม คือ เขียน algorithm พื้นฐานเป็นไหม

เรื่องการใชั standard library
คือ สำหรับทุกภาษาที่ใช้ ต้องใช้ array, list, map, set และสร้าง data structure ที่ใช้กับ library เป็น
(ซึ่งแปลว่าต้อง sort และใช้ heap ในภาษานั้นเป็นด้วย)

เราก็จะตั้ง exercise ง่ายๆให้ตัวเอง เช่น "ไหนลองเขียน class ที่ implement LRU cache ซิ"
และพยายามเขียนโปรแกรมจากศูนย์ในแต่ละภาษาให้คล่องก่อนสัมภาษณ์

เรื่องการใช้ภาษาที่เหมาะสม ปกติน่าจะไม่ต้องกังวลมากนักถ้ารู้ c++ หรือ python
แต่บริษัทที่เราสัมภาษณ์ที่ต้องการความรู้เฉพาะทางมีสองบริษัท

บริษัทแรกเน้น distributed system เราเลยพยายามขัดเกลาภาษา golang
เพราะต้องใช้ channel และ goroutine ตลอดเวลา ซึ่งภาษา c++ ที่เราถนัดไม่มี
ก็ตั้งโจทย์ให้ตัวเอง ประเภท produce consumer เนี่ยแหละ
เช่น มีฝั่งนึงผลิตตัวเลขออกมาเรื่อยๆ
อีกฝั่งนึงคำนวนตัวเลขนั้นคูณ 2 แล้วส่งผลลัพธ์ให้กับคนสุดท้ายที่เอาเลขทุกอันมารวมกัน

และอีกบริษัทนึงเน้น program analysis และใช้ภาษาที่ชื่อว่า ocaml เป็นหลัก
ซึ่งเราไม่เคยใช้ เราก็ต้องฝึกเรียนภาษานั้นก่อนสัมภาษณ์
ก็ตั้งโจทย์ให้ตัวเองเช่น ถ้ามีโปรแกรม x*(5+0) ลองเขียนโปรแกรมเพื่อแปลงให้มันเป็น x*5 ซิ

อย่างสุดท้ายคือ เขียน algorithm พื้นฐานเป็นไหม

อย่างเช่น เราสามารถ implement depth first search ได้หรือไม่
(ตัวอย่างเช่น นับจำนวน forest ของเลข 1 ในตาราง 2 มิติ)

หรือเข้าใจ binary search ไหม เขียนโค้ดได้หรือไม่
(ตัวอย่างเช่น หา index ของ 1 ตัวแรก ใน array [0, 0, 0, 1, 1, 1, 1, 1])
อันนี้ก็คือฝึกเขียนโปรแกรมพวกนี้จากศูนย์จนเคยชินให้ได้

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

การเตรียมสัมภาษณ์ system design

มีบริษัทที่เราได้เข้ารอบ system design 4 ที่
เราสอบผ่าน 3 ที่ (สอบตกที่นึง)

อันนี้เป็นการสัมภาษณ์ที่มีประสบการณ์น้อยที่สุดแล้ว
หรือเรียกได้ว่าน่าจะไม่มีประสบการณ์เลยดีกว่า

เราก็ถามเพื่อนที่เคยทำมาแล้ว มันก็แนะนำหนังสือ system design interview
เราก็ซื้อมาอ่านนะ แต่ประสบการณ์สัมภาษณ์รอบนี้เรารู้สึกว่า
การเตรียมตัวด้วยหนังสือเล่มนี้ไม่ช่วยเลย (อย่างน้อยเรารู้สึกว่ามันไม่ได้ช่วยเราอะนะ)

สิ่งที่ทำให้สัมภาษณ์รอบนี้ดีขึ้น คือ การสัมภาษณ์อันแรกที่เราสอบตก

การสอบตกสัมภาษณ์ครั้งแรก ทำให้เราเห็นว่ามันมาประมาณไหน และคนสัมภาษณ์อยากคุยประมาณไหนบ้าง

เราคิดว่ารอบที่เราตก เพราะ เราไปเสียเวลากับสิ่งที่ไม่สำคัญบ้าง ตอบช้าบ้าง และตอบผิดบ้าง
พอสัมภาษณ์อันถัดๆมากับบริษัทอื่น
ที่นี้ก็พอรู้ละ ว่าประมาณไหน
ที่เหลือก็เป็นความรู้ที่สะสมมา ว่าพอหรือไม่พอสำหรับตำแหน่งที่สมัคร

แต่ถ้าจะสรุปโจทย์ครอบจักรวาล
เราคิดว่า requirement ของทุกระบบที่ได้สัมภาษณ์
คือ ระบบมันมีการ read การ process และการ write ที่ใดที่หนึ่งหรือหลายที่
และมันสามารถ fail ได้ตามจุดต่างๆ

เราจะต้องอธิบายและให้ตัวอย่างที่ชัดเจนได้ว่ามัน fail ได้ตรงไหนบ้าง
และ solution ไหนที่แก้ failure นั้นได้
และ solution ต่างๆมี tradeoff อะไรบ้าง
และ data หน้าตาเป็นอย่างไร
และทำให้มัน scale ยังไง (ถ้า shard ต้องตอบได้ shard อย่างไรถึงจะ scale)

แต่หลักๆเนื่องจาก system design โจทย์มันกว้างมาก
สิ่งที่แนะนำได้ที่สุด คือ ให้ทำตามที่คนสัมภาษณ์ต้องการ
ถ้าเค้าอยากคุยอะไร ให้คุยเรื่องนั้น

ถ้ามีเวลา 10 ชั่วโมง แล้วอยากเตรียมความรู้เรื่อง distribute system
ก็แนะนำคอร์สนี้
เข้าใจว่าเจ้าของคอร์สเขียนหนังสือด้วย
ไม่รู้ว่าถ้าเราอ่านหนังสือเล่มนั้นแทนเราจะพร้อมกว่าไหม

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

การเตรียมสัมภาษณ์ behavior interview

การสัมภาษณ์ที่เจอมักจะถามซ้ำๆอยู่ไม่กี่อย่าง

เช่น คนสัมภาษณ์อยากรู้ว่า
เวลาไม่เห็นด้วยกับเพื่อนร่วมงาน แก้ปัญหายังไง ยกตัวอย่างซิ
เวลาไม่เห็นด้วยกับหัวหน้า แก้ปัญหายังไง ยกตัวอย่างซิ
เวลาสอนคนอื่น สอนยังไง ยกตัวอย่างซิ
เคยทำอะไรยากๆ ตั้งแต่ต้นจนจบไหม สามารถให้ตัวเลขว่ามีประโยชน์แค่ไหนได้ไหม ยกตัวอย่างซิ
ประเมินผลงานคราวที่ผ่านมา ได้เกรดอะไร เพราะอะไร ยกตัวอย่างซิ

ประมาณนี้

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


วิธีการตัดสินใจเลือก offer

สรุปว่าได้ offer 4 ที่ และงานน่าสนใจทุกที่
เราก็มองกลับไปที่เป้าหมายในชีวิตเราด้านบน

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

จำนวนวันที่ต้องเข้า office เพราะ เราบ้านไกลที่ทำงานทุกที่ ถ้าต้องเข้า office บ่อย เราเสียเวลาเดินทาง วันละ 2 ชั่วโมง

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

สถานการณ์อยู่เวร เพราะ ถ้าสถานการณ์อยู่เวรมันตึงเครียด เราไม่สามารถใช้เวลากับครอบครัวได้อย่างเต็มที่ เวลาอยู่เวร เพราะมันจะคอยกังวล

ก็สรุปว่า
บางที่ให้เข้า office สัปดาห์ละ 3 วัน
บางที่ให้ตกลงกับ manager เอาว่าจะเข้ากี่วัน
บางที่เข้าสัปดาห์ละวันเดียว
บางที่ remote เต็มที่เลยก็ได้ แต่ถ้าอยากเข้า office เข้าได้

เรื่องอยู่เวร
ต้องอยู่เวร 3 ที่ ไม่ต้องอยู่เวร 1 ที่
บางที่อยู่เวรแค่เวลาทำการ
บางที่ต้องอยู่เวร 24/7 และถ้าซวยมีสิทธิ์ต้องตื่นเที่ยงคืน

สิ่งที่เอามาตัดสินใจอีกอย่างตอนเลือก offer ก็คือเรื่องทีม

หลังจากเราได้ offer จากแต่ละที่
เราจะขอเค้าคุยกับคน 1-2 คนในทีมที่เราสมัครจะไปทำงานด้วย
ถึงจังหวะนี้ เราก็จะถามคำถามทั่วไปได้มากขึ้น
เช่น ในทีมมีส่วนผสมของคนอย่างไรบ้าง
วิธีการทำงานเป็นอย่างไร
ความเครียดมาตอนไหนบ้าง
หัวหน้าเป็นคนอย่างไร
หัวหน้าของหัวหน้าเป็นคนอย่างไร
ทำไมถึงเลือกบริษัทนี้ตั้งแต่แรก
ชอบและไม่ชอบอะไรเกี่ยวกับบริษัทนี้
ฯลฯ

บางที่เค้าก็เสนอให้เราเข้าไปบริษัทกินข้าวเที่ยงกับทีมเลย
ก็จะยิ่งได้เห็นภาพว่าถ้าตัวเราเข้าไปอยู่
เราชอบความรู้สึกตรงนั้นไหม
ซึ่งทุกที่ที่เราได้เข้าไปกินข้าวกับทีม
ก็พบว่าทุกทีมชิวหมด ไม่มีอะไรที่ต้องกังวล



(มีโอกาสได้ไปกินข้าวเที่ยงกับทีมสำหรับ 3 บริษัท)

มีที่นึงหลังจากให้ offer มันต้องการคำตอบเร็วมากว่าเราจะรับหรือไม่
ต้องการคำตอบภายใน 3 วัน เพราะมันบอกว่ามันมีผู้สมัครอื่นมารอคิวแล้ว
เราเลยต้องปฏิเสธบริษัทนั้นไป เพราะเราอยากใช้เวลาคิดมากกว่านี้
และเราชอบบริษัทอื่นๆพอๆกัน
เลยไม่เสียอะไรมากถ้าต้องบอกปฏิเสธบริษัทนี้

มีบริษัทนึงที่ skip manager เป็นคนสัมภาษณ์ behavior
(เกือบไม่ผ่านเพราะเค้าจี้รายละเอียดเยอะมากกกก
และดูเค้าไม่ได้พอใจกับคำตอบเราขนาดนั้นจนต้องมีสัมภาษณ์แก้มือ อีกรอบ)

หลังจากเราได้ offer แล้ว skip manager คนนี้ก็นัดคุยกับเราประมาณสัปดาห์ละครั้ง
คุยเรื่องความคืบหน้าเรื่องการตัดสินใจ
คุยเรื่องเป้าหมายในชีวิตและขายบริษัทว่ามันตอบโจทย์เป้าหมายในชีวิตอย่างไร

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

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

แล้วเค้าก็รับ feedback ได้ดีเลยทีเดียว
เค้าขอบคุณเราที่บอกเค้าตรงๆแบบนั้น
แล้วก็บอกว่าเค้าไม่ได้ลงมากดดันแบบนี้ตลอดหรอก
แต่ก็ต้องยอมรับว่าเค้าเป็นสไตล์นั้น
เราก็เลยรู้สึกว่าถ้าเข้าไปทำงานด้วย ถ้ามีอะไรแบบนี้เราคงบอกเค้าตรงๆได้

หลังจากเอาทุก offer มาเปรียบเทียบกัน
มีเหลือ offer เดียวที่ตัวงานได้ใช้ความรู้เฉพาะทาง
ถึงแม้ว่าต้องอยู่เวรบ้าง
แต่หลังจากคุยกับเพื่อนร่วมทีมและหัวหน้าแล้วเค้าก็บอกว่าการอยู่เวรที่นี่ความเครียดต่ำ
ไม่ต้องนั่งดูแล server ล่ม แต่เป็นการอยู่เวรประเภท
ถ้ามีคำถามใน github ใครเป็นคนตอบก่อน อะไรงี้
คิดแล้วมันรับความเครียดนี้ได้ เทียบกับสิ่งดีๆอย่างอื่นที่บริษัทมอบให้

นอกจากนั้นเป็นการที่ work from home ได้ 100% แต่ถ้าอยากเข้าบริษัทเมื่อไรเข้าได้
รู้สึกว่าตรงกับ lifestyle ที่ต้องการที่สุด
ก็เลยตอบรับ offer นั้นไป

และอีกอย่าง บริษัทนี้เป็น startup ใน silicon valley ซึ่งเพิ่งได้ funding
แล้วคนยังไม่เยอะเกินไป (ไม่เกิน 200 คน)

อยากเข้าไปเห็นว่า CEO CTO เค้าคิดยังไง
และ startup แถวนี้ต่างกับ startup ที่เคยทำงานมาก่อนมากน้อยยังไง

ใครที่อยากรู้เรื่องรายละเอียดมากกว่านี้ ทักมาได้เลย พร้อมคุยพร้อมตอบคำถาม

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

(บริษัทชื่อแปลกดีนะ สำหรับคนไม่ใช่โปรแกรมเมอร์
เพื่อนมันบอกว่าเราตั้งชื่อบริษัทมั่วๆหลอกมัน)

เดี๋ยวทำงานได้ซักพักคงเล่าประสบการณ์ในบริษัทใหม่อีก
หรือถ้าถูก layoff อีกก็คงมาเล่าอยู่ดี
แต่อย่าเลยนะขอร้อง


บทที่ 4. ข้อคิดที่ได้จากประสบการณ์นี้


จากประสบการณ์โดน layoff ประสบการณ์พักผ่อน และประสบการณ์หางานใหม่รอบนี้
ได้มีเวลาคิดตกตะกอนอะไรหลายๆอย่าง ประมาณนี้นะ


ความสัมพันธ์ของเราและบริษัทเป็นความสัมพันธ์ทางธุรกิจ
แต่ความสัมพันธ์ของเราและเพื่อนร่วมทีมเป็นความสัมพันธ์แบบมนุษย์

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

แต่มันมีบางคน บอกว่า ทีมที่ทำงานไม่ใช่ ครอบครัว
และเพื่อนร่วมงาน ไม่ใช่ เพื่อน
อันนี้เราว่ามันมีตรงกลางแหละ

คนในทีมบางคนเราเห็นแค่ว่าเป็นคนที่ทำงานที่เดียวกันเฉยๆ
แต่มีคนในทีมอีกหลายๆคน (รวมไปถึงครอบครัวของเค้าด้วย) ที่เราได้เจอนอกเวลาทำงาน

พอพูดเรื่องเพื่อนร่วมงานที่เป็นเพื่อนนอกงานด้วยเนี่ย
ตรงนี้เราคิดว่าวัฒนธรรมการทำงานที่ไทย (เดี๋ยวนี้ยังเป็นแบบนี้อยู่ไหม) มันทำได้ดีมากเลย
ตอนทำงานที่ไทยเราได้มีเพื่อนที่ทำงานค่อนข้างง่ายกว่าที่อเมริกาซึ่งมีความตัวใครตัวมันสูงกว่า

(อ่านเพิ่มได้ที่โพสเก่านี้ มีเปรียบเทียบการทำงานที่ไทยและเมกาด้วยนิดนึง)


พนักงานประจำและเจ้าของบริษัทมีสิทธิ์ "ตกงาน" ได้หมด

ชะตาของพนักงานประจำขึ้นอยู่กับหัวหน้าหรือเจ้าของบริษัทหรือผู้ลงทุน
แต่ถ้าออกไปมีบริษัทของตัวเอง ชะตาของเจ้าของบริษัท ก็ขึ้นอยู่กับตลาด และผู้ลงทุนแหละ
และถ้าออกไปเป็นผู้ลงทุน ชะตาก็ขึ้นอยู่กับตลาดแหละเศรษฐกิจแหละ

สรุปทุกที่ก็มีความเสี่ยงที่ต่างกันไปแหละนะ
แต่ละคนก็มีความโอเคกับความเครียดคนละแบบ

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

เจ้าของบริษัท ไม่มีความเครียดเรื่องใครมาสั่ง (อาจจะมีนิดนึงจากผู้ลงทุน)
แต่มีความเครียดเรื่องการดูแลพนักงานในบริษัท
เรื่องงานก็กังวลจริงๆ คงไม่แพ้พนักงาน
เรื่องกำไรโดยรวมของบริษัท ฯลฯ

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

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

(อันนี้ทำให้นึกถึงหนังสือ thank god it's monday ที่ทำให้เห็นว่าพนักงานประจำมันไม่ได้แย่เสมอ)


ถ้าไม่ลำบากไม่ต้องรีบหางานหลังตกงาน

ย้ำ มากๆๆๆๆๆๆๆว่า *****ถ้าไม่ลำบาก***** เท่านั้น
ถ้ามีครอบครัวต้องเลี้ยงดู มีบ้านมีรถต้องผ่อน ต้องย้ายประเทศ รีบสมัครเลย

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

ซึ่งการพักระหว่างขึ้นบทใหม่ในชีวิต มันเป็นอะไรที่ดีมากๆ
ได้มีเวลาค้นหาตัวเอง ได้มีเวลาท่องเที่ยว ได้มีเวลาพักผ่อน ได้มีเวลาที่ไม่มีความเครียด

และอีกสาเหตุนึงที่ทำแบบนี้ได้ ก็เพราะมีครอบครัว (และที่สำคัญที่สุดคือภรรยา)
ที่คอย support การตัดสินใจทุกๆอย่าง ไม่เร่ง ไม่ถามเรื่องงานใหม่ใดๆทั้งสิ้น

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


พยายามประเมินผลงานตัวเองเป็นตัวเลขเสมอถ้าทำได้

หนึ่งอย่างที่ทำให้เราเกือบตกสัมภาษณ์แบบเรื่องไม่เป็นเรื่อง
คือ behavior interview ที่เราต้องอธิบายโปรเจคนึงให้คนสัมภาษณ์เราฟังว่า
โปรเจคนั้นมีประโยชน์อะไร

ปัญหาก็คือ เราไม่มีตัวเลขมาโม้
เราไม่สามารถบอกได้ว่า มี user จำนวน X คน ที่ให้ rating 10/10 อะไรประมาณนี้

ซึ่งนี่น่าจะเป็นปัญหาเราแต่ไหนแต่ไรละในบริษัททุกที่ที่เราไป
เราทำหน้าที่ได้ "ดี" โดยดูจากตัวเลขประเมินผลงานจากหัวหน้า
แต่เราไม่สามารถบอกว่า ดีแค่ไหน ในมุมมอง user

ซึ่งเราว่าเป็นทักษะที่ทุกคนควรมี ตั้งแต่พนักงานยันเจ้าของบริษัทนะ (โดยเฉพาะเจ้าของบริษัท)


ข้อคิดเรื่องการคุยกับเพื่อนที่โดน layoff

การโดน layoff รอบนี้ เราได้ unlock ทักษะใหม่
นั่นคือความเข้าอกเข้าใจคนโดน layoff มากขึ้น
ที่นี้เราจะเป็นผู้ฟังที่ดีขึ้นไปอีกสำหรับคนโดน layoff

ซึ่งหลักๆก็เหมือนการฟังทั่วไปแหละนะ
ก็คือให้ใช้ nonviolent communication (เขียนรีวิวหนังสือเล่มนี้ไว้ มันเยี่ยมมาก)

ถ้ามีคนโดน layoff มาเล่าอะไรให้ฟัง
ให้ฟังอย่างเดียว
อย่ายกตัวอย่างเรื่องตัวเองถ้าไม่จำเป็น
และที่สำคัญอย่าสอน อย่าให้คติชีวิต อย่าให้คำแนะนำ

ตัวอย่าง (ซึ่งเป็นการรวมเอาคำปลอบจริงๆหลายๆแบบมาเรียบเรียงใหม่)

mario: "เชี่ยยยย กูโดน layoff หวะ"
luigi: "ชีวิตการทำงานก็แบบเนี้ยแหละมึง กูก็เคยโดนเหมือนมึงตอนนี้เลย สู้ๆเว้ย อย่างมึงเดี๋ยวก็หางานใหม่ได้ กูเชื่อว่าอะไรดีๆต้องเกิดขึ้นเสมอ จำแต่อะไรดีๆไว้เว่ย"

เป็นคำปลอบที่ไม่แย่นะ แต่ในหัวคนโดน layoff จะ sensitive เป็นพิเศษ

เช่น  "สู้ๆเว้ย" มันมีกลิ่นของการมองข้ามความเจ็บปวด
โดยยังไม่ได้ acknowledge ความเจ็บปวดของ mario และพยายามบอกให้ mario ทำอย่างอื่นไป
ส่วนตัวชอบคำว่า "เฮ้ย" หรือ "เชี่ย" หรือ "กอด" มากกว่า

ประโยค "กูก็เคยโดนเหมือนมึงตอนนี้เลย แล้วกูก็ผ่านมาได้เว้ย"อาจจะโดนตีความว่า luigi ดึงความสนใจไปที่ตัวเอง และเริ่มไม่ฟัง mario

ประโยคที่ว่า "อย่างมึงเดี๋ยวก็หางานใหม่ได้" เกือบดีๆ แต่มันจะไม่มีน้ำหนัก ถ้า luigi ไม่ได้รู้จัก mario ในบริบทการทำงานด้วยกันจริงๆ

ถ้า luigi เคยทำงานกับ mario ประโยคที่ดีจะเป็นประมาณว่า "กูตกใจและเสียใจมาก ที่มึงโดน layoff เพราะ งานมึงแต่ละครั้งแม่งโคตรคุณภาพเสมอ และกูอยากทำงานกับมึงไปตลอดอะ"

ที่เหลือ "ชีวิตการทำงานก็แบบเนี้ยแหละมึง" และ "กูเชื่อว่าอะไรดีๆต้องเกิดขึ้นเสมอ" และ "จำแต่อะไรดีๆไว้เว่ย" มันออกไปทางให้คติชีวิต ซึ่ง mario ไม่ได้อยากได้ยินจังหวะนี้

ตัวอย่างประโยค mario รู้สึกดีขึ้น

เช่น "ขอบใจมากที่มึงแชร์กู กูเคยโดน layoff และเก็บไว้ตัวคนเดียวและมันแย่มาก แต่กูนับถือมึงมากที่เอามาเล่าให้คนอื่นฟัง กูเชื่อว่ามึงจะเอาชนะมันได้ดีกว่ากูในตอนนั้นแน่นอน"

ซึ่งเราว่า เวอร์ชั่นใหม่มันพุ่งไปที่ความแกร่งของ mario เลยทำให้มันดีขึ้น

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


อย่าลืมบันทึกและ backup สิ่งที่ไม่ผิดกฏที่ทำงาน

ถ้าจะมีสิ่งนึงที่เสียดาย และจะแก้ถ้าย้อนเวลาได้
คือการบันทึกสิ่งต่างๆที่บันทึกได้ใน account ส่วนต้ว

คือ ตอนทำงานเราจะมี document อันนึง
ที่เราจะจดสิ่งต่างๆที่เราเรียนรู้ระหว่างทำงาน
ซึ่งมันก็จะมีทั้งความรู้ technical และข้อคิดที่สังเกตได้และน่าจดจำจากการทำงาน

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

ซึ่งไอ้ส่วนที่ไม่ผิดกฏเนี่ย เสียดายมากที่เราไม่ได้ backup ไว้ใน account ส่วนตัว
มันดันอยู่ใน account ของบริษัท ซึ่งโดน lock วันที่เราโดน layoff
ก็เลยไม่มีทางได้มันคืนมาอีกแล้ว

อาจจะมีทางเดียวที่ได้คืน คือ กลับไปทำงานให้ google อีกที
(ซึ่งแนวทางนี้ ก็ยังไม่ได้ตัดทิ้ง 100% เพราะมันไม่มีอะไรแน่นอนในชีวิตอยู่แล้ว)


อย่าลืมแชร์ให้เพื่อนรู้ว่าเราโอเค

จริงๆเราโอเคขึ้นมานานมากใช้ได้แล้วหลังโดน layoff
แต่เราลืมอย่างนึงคือ ลืมแชร์ให้เพื่อนฟัง

แล้วบางทีพอเราเจอเพื่อน
มันก็จะมาบอกว่า เห็นเราดูเงียบๆไปบน social media
นึกว่าเป็นอะไร ไม่กล้าทักมาก แต่เป็นห่วง อะไรงี้

ก็นั่นแหละ ถ้าเกิดเรื่องอะไรกับชีวิต
อันนี้เป็นโอกาสดีเลยที่จะได้สานสัมพันธ์กับเพื่อนที่เป็นห่วงเรา

และถ้าสิ่งดีๆเกิดขึ้นแล้ว อย่าลืมอัพเดท

ให้นึกภาพ เพื่อนมีแฟน แล้วมันเลิกกับแฟน
มันเศร้า เราปลอบ มันซึ้ง
จากนั้นมันก็หายไป
แล้วทักไปอีกที มันคืนดีกับแฟนแล้ว

มันก็เป็นเรื่องดี แต่จะดีกว่า
ถ้ามันอัพเดทเราว่า เราช่วยมันได้ และมันก็คืนดีกับแฟน แล้วก็ขอบคุณเรา อะไรงี้

สรุป


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

ขอบคุณเพื่อนๆพี่ๆน้องๆทุกคนอีกรอบ
ที่คอยสนับสนุนถามข่าวคราวความเป็นไปหลังเหตุการณ์นี้นะ

ปล

ถ้ารู้จักคนไทยคนไหนโดน layoff จาก google เราอยากทำความรู้จักนะ
แต่ถ้าไม่มีก็คือดีนะ เพราะแปลว่าไม่มีคนไทยคนอื่นซวยแบบเรา
และถ้าเราได้ชื่อว่าเป็นโปรแกรมเมอร์ไทยคนแรกที่ได้มีส่วนร่วมทางประวัติศาสตร์
ของการ layoff ครั้งใหญ่สุดของ google มันก็คงจะเท่ไม่น้อยนะ อิอิ