คู่มือสัมภาษณ์ตำแหน่ง วิศวกรซอฟต์แวร์ ของ Airbnb
โดย Aaron Cao · อัปเดตเมื่อ

คำถามสัมภาษณ์ Software Engineer เพิ่มเติม →
ขั้นตอนการสัมภาษณ์ที่มีการรายงานเป็นอย่างไร?
Screen โค้ด การออกแบบระบบ behavioral และ onsite คือหมวดหมู่ของการเตรียมตัว ผู้สมัครส่วนใหญ่มักเล่าว่ามีสามขั้นตอนหลัก:
- Screen: การคุยโทรศัพท์กับ recruiter ที่ใช้เวลาประมาณ 30 นาที
- โค้ด: สัมภาษณ์เรื่องโครงสร้างข้อมูลและอัลกอริทึมที่ใช้เวลาประมาณ 45 นาที โดยใช้ test case จริง
- Onsite: ชุดสัมภาษณ์ 5 รอบ ซึ่งรวมถึงรอบโค้ดหลายรอบ สัมภาษณ์ออกแบบระบบประมาณหนึ่งชั่วโมง และบทสนทนาเชิง behavioral ที่เน้นเรื่องวัฒนธรรมและค่านิยมของ Airbnb
ผู้สมัครระดับ senior ชั้น G8 รายงานลำดับที่ต่างออกไป คือ screen กับ recruiter หรือ hiring manager 30 นาที coding screen 60 นาที และ system design screen 60 นาที ส่วน onsite ที่พวกเขารายงานมีสี่รอบ ได้แก่ โค้ด code review และ whiteboard system design รอบละประมาณ 60 นาที บวกกับสัมภาษณ์ behavioral เรื่อง Core Values (ค่านิยมหลัก) อีก 30 นาที
คุณควรแสดงอะไรในการสัมภาษณ์แต่ละครั้ง?
สำหรับการสัมภาษณ์ตำแหน่ง Software Engineer โดยทั่วไป ให้เตรียมหลักฐานในด้านต่อไปนี้:
- โครงสร้างข้อมูลและอัลกอริทึม: อธิบายว่าทำไม approach ของคุณถึงได้ผล เปรียบเทียบทางเลือกอื่น และอธิบาย time กับ space complexity ทดสอบ boundary อินพุตว่างเปล่า และค่าที่ซ้ำกันเมื่อเกี่ยวข้อง
- การออกแบบระบบ: ทำความชัดเจนเรื่อง requirement กำหนด interface และ data model และอธิบายพฤติกรรมเมื่อมี request พร้อมกันหรือเกิดความล้มเหลว เชื่อมโยงการตัดสินใจด้าน architecture แต่ละข้อเข้ากับ requirement
- คุณภาพโค้ดและการสื่อสาร: เขียนโค้ดที่อ่านง่าย อธิบาย assumption ของคุณ และใช้ผลการทดสอบเพื่อตรวจสอบข้อผิดพลาด ระหว่าง code review ให้แยกปัญหาเรื่อง correctness ออกจากความชอบด้าน style
- การทำงานร่วมกันและความเป็นเจ้าของงาน: อธิบายการมีส่วนร่วมของคุณ ข้อกังวลที่คุณได้ยินจากผู้อื่น การตัดสินใจที่คุณทำ และสิ่งที่เกิดขึ้นหลังจากนั้น
ผู้สมัครระดับ senior ชั้น G8 อธิบายว่าสัมภาษณ์ Core Values (ค่านิยมหลัก) เป็นด่านบังคับที่มักเป็นตัวชี้ขาดผลลัพธ์ โดยผลงานด้านเทคนิคที่โดดเด่นก็ยังถูกรายงานว่าไม่สามารถชดเชยความกังวลเรื่อง cultural fit ได้ สำหรับการเตรียมตัว ให้เตรียมตัวอย่างที่เป็นรูปธรรมของการตัดสินใจของคุณและผลกระทบต่อเพื่อนร่วมทีม ความสำเร็จด้านเทคนิคเพียงอย่างเดียวยังทำให้หลักฐานนี้ไม่สมบูรณ์
การเตรียมตัวสำหรับ Software Engineer ต่างจากตำแหน่งอื่นอย่างไร?
สำหรับการสัมภาษณ์ตำแหน่ง Software Engineer โดยทั่วไป ให้เตรียมแสดงกระบวนการคิดผ่านโค้ดที่ทำงานได้จริง test case และ system diagram ควบคู่ไปกับเรื่องเล่าโปรเจกต์ที่มีประโยชน์ในตำแหน่งอื่นด้วย หากต้องการสนับสนุนข้อกล่าวอ้างอย่างการปรับปรุง reliability ให้อธิบาย failure mode การเปลี่ยนแปลง implementation ที่คุณทำ และหลักฐานว่ามันช่วยได้จริง
รอบ code review ที่ผู้สมัครระดับ senior ชั้น G8 รายงานไว้ เพิ่มงานเตรียมตัวที่แตกต่างออกไป คือการอ่านและปรับปรุง implementation ที่มีอยู่แล้ว ฝึกติดตามพฤติกรรมของโค้ด ระบุความเสี่ยงด้าน correctness และอธิบายว่าคุณจะแก้ปัญหาใดก่อน
กระบวนการใช้เวลานานแค่ไหน และอะไรที่ทำให้การเตรียมตัวยาก?
ผู้สมัครรายงานว่าระยะเวลาอยู่ที่ประมาณ 3 ถึง 5 สัปดาห์ โดยขั้นตอนจับคู่กับทีมหลังสัมภาษณ์อาจทำให้ใช้เวลาเพิ่มขึ้นอีก พวกเขายังอธิบายว่าการจัดตารางเวลาและความพร้อมของทีมเป็นปัจจัยที่ส่งผลต่อความเร็วของกระบวนการ
ความท้าทายของการเตรียมตัวอยู่ที่ความหลากหลาย เพราะ algorithmic reasoning การตัดสินใจด้าน architecture และตัวอย่างของการทำงานร่วมกัน ต่างต้องการคำอธิบายคนละแบบ ในการฝึกฝนทั่วไปสำหรับ Software Engineer ให้ฝึกสลับไปมาระหว่างงานเหล่านี้ พร้อมทั้งรักษาสมมติฐานให้ชัดเจนอยู่เสมอ สำหรับการเตรียมตัวระดับ senior ให้รวมการอ่านโค้ดที่ไม่คุ้นเคยเข้าไปด้วย ไม่ใช่แค่การเขียนโซลูชันขึ้นมาใหม่ตั้งแต่ต้น
คุณจะเตรียมตัวสำหรับแต่ละส่วนได้อย่างไร?
ใช้แผนการเตรียมตัวทั่วไปสำหรับ Software Engineer นี้เพื่อครอบคลุมรูปแบบที่มีการรายงาน:
- Screen: ฝึกเล่าประสบการณ์ของคุณอย่างกระชับ งานที่คุณอยากทำ และโปรเจกต์ที่คุณสามารถอธิบายได้อย่างลึกซึ้ง ถาม recruiter ของคุณว่าลำดับการสัมภาษณ์แบบไหนที่ใช้กับระดับของคุณ
- โค้ด: แก้โจทย์ออกเสียงดัง ๆ implement โซลูชัน รัน test case ที่เป็นรูปธรรม และอธิบายการแก้ไขใด ๆ ที่เกิดขึ้น ตรวจสอบทั้ง correctness และ readability
- การออกแบบระบบ: ฝึกฝนด้วยโจทย์ reservation service กำหนดกฎการจอง ร่าง interface และระบบจัดเก็บข้อมูล และอธิบายว่า request พร้อมกันกับความล้มเหลวส่งผลต่อ correctness อย่างไร
- Code review ระดับ senior: อ่าน implementation ที่ไม่คุ้นเคย ติดตามตัวอย่าง input ระบุข้อบกพร่อง และเสนอการเปลี่ยนแปลงที่เจาะจงพร้อมกับ test
- Behavioral: เตรียมตัวอย่างที่เกี่ยวกับความเห็นไม่ตรงกัน ความผิดพลาดที่คุณยอมรับ และการตัดสินใจที่ทำภายใต้ข้อมูลที่ไม่ครบถ้วน แยกการกระทำของคุณออกจากผลงานของทีม และอธิบายว่าคุณได้เรียนรู้อะไร
- การเตรียมตัวสำหรับ onsite: ฝึกสลับไปมาระหว่างการพูดคุยเรื่องโค้ด design และ behavioral เริ่มคำอธิบายใหม่ทุกครั้งสำหรับแต่ละงาน แทนที่จะสมมติว่าบริบทก่อนหน้ายังใช้ได้อยู่
ใช้คำถามตัวอย่างสำหรับ Software Engineer ด้านล่างนี้ใน mock interview จากนั้นทบทวนว่าตรงไหนในเหตุผล การทดสอบ หรือตัวอย่างของคุณที่ยังไม่ชัดเจน
Airbnb รับสมัครอย่างไร
Airbnb ไม่ได้เผยแพร่กระบวนการสัมภาษณ์ของตน ประเด็นด้านล่างคือสิ่งที่ผู้สมัครมักรายงาน
- Airbnb's loop is reported as three main stages: a recruiter phone screen of about 30 minutes, a data-structures-and-algorithms coding interview of about 45 minutes with real test cases, then an onsite loop covering coding, system design, and Airbnb's culture and values. [แหล่งที่มา]
- The onsite is reported as 5 interviews: multiple coding rounds, a system design interview of about an hour, and a behavioral conversation focused on values; the loop typically spans a few weeks depending on scheduling and team availability. [แหล่งที่มา]
- For senior (G8) candidates the reported shape is a 30-minute recruiter or hiring-manager screen, a 60-minute coding screen and a 60-minute system design screen, then four onsite rounds: coding, code review, a whiteboard system design session, each about 60 minutes, and a 30-minute Core Values behavioral round. [แหล่งที่มา]
- The Core Values behavioral interview is described as a mandatory gatekeeper that often determines the final outcome regardless of technical performance; strong technical rounds are reported not to compensate for concerns about cultural fit. [แหล่งที่มา]
- Reported timelines wrap up within 3 to 5 weeks, though team matching after the interviews can add extra time. [แหล่งที่มา]
ตรวจสอบข้อเท็จจริงเมื่อ 2026-09-05
ตัวอย่างคำถาม
- คุณจะรวม interval ของช่วงเวลาว่างที่ทับซ้อนกันอย่างไร และคุณจะทดสอบ edge case อะไรบ้าง?
- คุณจะหาเส้นทางที่สั้นที่สุดใน graph อย่างไร และวิธีการของคุณจะเปลี่ยนไปอย่างไรถ้า edge มีน้ำหนักไม่เท่ากัน?
- คุณจะออกแบบ reservation service ที่ป้องกันไม่ให้ request พร้อมกันจองสินค้าคงคลังเดียวกันได้อย่างไร?
- คุณจะทำอย่างไรถ้าผล availability ที่ cache ไว้ไม่ตรงกับ reservation database?
- เมื่อตรวจสอบฟังก์ชันที่บางครั้งสร้าง record ซ้ำ คุณจะระบุสาเหตุและจัดลำดับความสำคัญของการแก้ไขอย่างไร?
- คุณช่วยเล่าถึงความเห็นไม่ตรงกันกับเพื่อนร่วมทีม และอธิบายได้ไหมว่าคุณไปถึงการตัดสินใจนั้นได้อย่างไร?
- การเปลี่ยนแปลงที่คุณรับผิดชอบเคยก่อให้เกิดปัญหาที่ไม่คาดคิดเมื่อไหร่ และคุณตอบสนองอย่างไร?
คำถามที่พบบ่อย
- ผู้สมัครรายงานรูปแบบการสัมภาษณ์โค้ดแบบไหน?
- ผู้สมัครส่วนใหญ่มักเล่าว่าเป็นสัมภาษณ์เรื่องโครงสร้างข้อมูลและอัลกอริทึมที่ใช้เวลาประมาณ 45 นาที โดยใช้ test case จริง ผู้สมัครระดับ senior ชั้น G8 รายงานว่ามี coding screen 60 นาที
- ฉันควรเตรียมตัวสำหรับ code review อย่างไร?
- ฝึกอ่านโค้ดที่ไม่คุ้นเคย ติดตามพฤติกรรมของมัน ระบุปัญหาด้าน correctness และเสนอการแก้ไขที่เจาะจง อธิบายว่าทำไมปัญหานั้นถึงสำคัญ และ test แบบไหนที่จะแสดงให้เห็นปัญหานั้น
- ตัวอย่าง behavioral ที่ดีควรมีอะไรบ้าง?
- สำหรับการเตรียมตัวทั่วไปในตำแหน่ง Software Engineer ให้อธิบายสถานการณ์ ความรับผิดชอบของคุณ การตัดสินใจที่คุณทำ และผลลัพธ์ รวมถึงวิธีที่คุณรับมือกับความเห็นไม่ตรงกันหรือความไม่แน่นอน และสิ่งที่คุณจะเปลี่ยนแปลงในภายหลัง
- นี่คือคำถามสัมภาษณ์จริงของ Airbnb หรือไม่?
- นี่คือคำถามฝึกฝนตัวอย่างสำหรับ Software Engineer ไม่ใช่ข้อกล่าวอ้างเกี่ยวกับคำถามที่ Airbnb ใช้ถามจริง ใช้คำถามเหล่านี้เพื่อฝึกอธิบายเรื่องโค้ด การออกแบบ code review และการทำงานร่วมกัน