บอกเล่าประสบการณ์การสัมภาษณ์งาน Software Development Engineer กับ Amazon (1/2)

เช้าวันหนึ่ง ผมได้รับ Email ทักทายมาจาก Amazon recruiter บอกว่าทางนั้นกำลังจะจัด Hiring Event ที่กรุงเทพ (เป็นวิธีการสัมภาษณ์งานนอกสถานที่ของ Amazon) เพื่อหาคนไปทำงานที่ออฟฟิศในเมือง Vancouver ประเทศแคนาดา บังเอิญเขาเห็นประวัติผมใน LinkedIn [ใครยังไม่มี แนะนำให้ทำซะ!] ก็เลยส่งเมล์มาถามว่าสนใจอยากลองสมัครดูไหม

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


ปกติแล้วการสัมภาษณ์งานกับ Amazon จะมีหลายขั้นตอนแตกต่างกันไปแล้วแต่คน แต่สำหรับผมมีขั้นตอนประมาณนี้

1. ขั้นแรกสุด ให้ทำ Online assessment กำหนดเวลา 75 นาทีกับโจทย์ 2 ข้อ ใช้ภาษาอะไรก็ได้ (ถ้าใครรู้จัก Codility น่าจะเข้าใจดีว่าคืออะไร) ทุกคนจะได้โจทย์ที่ไม่เหมือนกัน ของผมได้..

        - ข้อแรก ให้เขียนโค้ดเพื่อเช็ค input ว่าการเปิดปิดวงเล็บต่างๆ ตรงตำแหน่งครบถูกต้องหรือไม่ เช่น {<{(){[]}}>} แบบนี้ถือว่าถูกต้อง ให้ออก output เป็น true/false

        - ข้อสอง จำได้ว่าทำไม่ทัน จำโจทย์ไม่ได้ด้วย รู้แค่ว่ายากและต้องเขียน Recursive function แบบมีเงื่อนไขเพิ่มเติม

        [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้

        - ปล. มีเรื่องตื่นเต้นนิดนึง ทำไป ชม. นิดๆ แล้วไฟดับ ดีนะที่มี UPS โค้ดที่เขียนไว้ปลอดภัยดี เครื่องคอมไม่ดับ แต่ออกเนตไม่ได้ ต้องลุ้นตัวโก่งว่าไฟจะกลับมาก่อนหมดเวลารึเปล่า


2. ผ่านขั้นแรกมาได้ ขั้นต่อไปคือ Phone interview เป็นการโทรคุยกันคร่าวๆ เพื่อคัดคนเข้าไปสัมภาษณ์ในขั้นต่อไป เนื้อหาที่คุยเริ่มจากบอกเล่าประสบการณ์การทำงาน คำถามในเชิง behavioral พวกถ้าเกิดเหตุการณ์แบบนี้ขึ้นจะทำยังไง แล้วก็คำถามเชิง Computer Science ต่างๆ เช่น Hash Map, Binary Search Tree, Sorting Algorithm, Time/Space complexity และอื่นๆ ตรงนี้ถ้าใครคืนอาจารย์ไปหมดแล้ว แนะนำให้รื้อฟื้นกลับมาให้หมดซะ


3. พอผ่านมาได้อีกขั้น ตอนนี้ก็ถึงช่วง Highlight แล้วกับ Face-to-face interview โดยขั้นนี้คือการไปนั่งสัมภาษณ์กับคนของ Amazon เลย.. ปกติแล้วถ้าไม่ใช่ Hiring Event เขาจะส่งตั๋วเครื่องบินพร้อมที่พักให้ไปนั่งคุยกันที่ Office Amazon ที่ Seattle แต่ของผมจะกลับกัน คือเขาจะส่งคนของเขาบินมาคุยที่เมืองไทยแทน โดยเขาจะนัด candidate ที่ผ่านสองขั้นแรก (เกือบร้อยคน) มาคุยทีละคนๆ จนหมดแล้วบินกลับ [บ๊ะ.. อดได้เที่ยวฟรีเลย]

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

        - การคุยจะแบ่งเป็น 4 session แต่ละ session จะมีคนมาสัมภาณ์ไม่ซ้ำหน้ากัน เป็น Team Manager บ้าง เป็น Developer บ้าง

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

        [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้

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

        - ถ้าเขารู้ว่าเราทำได้ เขาจะถามให้ยากขึ้นอีกเรื่อยๆ เพื่อหา limit ของเรา

        - พวก error handling case เช็ค null ต่างๆ ต้องมีให้ครบ ถ้าไม่มีจะโดนจี้ถามทีละจุดๆๆๆ

        [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้


4. Offering.. ถ้าผ่านด่านอรหันต์ทั้งหมดที่กล่าวมาได้ ยินดีด้วย คุณได้ไป Vancouver แล้ว แต่ผมไม่ผ่าน 5555


แต่เค้ายังให้โอกาสผมอีกครั้ง ..คงเห็นแววอะไรบางอย่างในตัวผม [คิดเอาเอง 55] ก็เลยส่งผมไปเริ่มกระบวนการสัมภาษณ์ใหม่กับอีกตำแหน่งนึง


ตอนต่อไป.. https://pantip.com/topic/36759130
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่