การหางานนักพัฒนาซอฟต์แวร์ตำแหน่งใหม่
(henrikwarne.com)- นักพัฒนาซอฟต์แวร์ที่ถูกเลิกจ้างปลายปี 2023 ได้ติดต่อกับ 30 บริษัท ระหว่างหางานใหม่ และพบว่าตลาดตึงตัวกว่าที่คาดไว้ จากการถูกปฏิเสธ 8 แห่ง ไม่ได้รับคำตอบ 6 แห่ง และได้รับออฟเฟอร์ 3 แห่ง
- ช่องทางหางานหลักคือสถานะ Open to work บน LinkedIn, รายชื่อบริษัทที่สนใจอยู่เดิม และเว็บจับคู่นักพัฒนากับบริษัทอย่าง Demando ขณะที่การค้นหางานรีโมตและประกาศงานเก่ามีความน่าเชื่อถือน้อย
- กระบวนการรับสมัครทั่วไปยาวถึง 4–5 ขั้นตอน ตั้งแต่รีครูตเตอร์ ผู้จัดการ สัมภาษณ์เทคนิค แบบทดสอบ ไปจนถึงสัมภาษณ์ CTO/ผู้ก่อตั้ง และแบบทดสอบเขียนโค้ดแบบทำโจทย์ใช้เวลามากกว่าที่บริษัทบอกไว้มาก
- เตรียมคำตอบแบบ STAR สำหรับคำถามเชิงพฤติกรรม, snippet โค้ด Python·Go, Leetcode, GoLand, ChatGPT, GitHub Copilot ฯลฯ แต่ในการ live coding ความตื่นเต้นทำให้คิดได้แย่กว่าปกติ
- ในตลาดที่ยากขึ้น ข้อกำหนดประสบการณ์แยกตามภาษา การตอบกลับที่ช้า การตรวจสอบช่วงเงินเดือน และการจัดตารางหลายกระบวนการ เป็นปัจจัยชี้ขาดในการต่อรองออฟเฟอร์และการเลือกสุดท้าย
สถานการณ์หลังถูกเลิกจ้างและท่าทีในการเตรียมตัว
- ปลายเดือนตุลาคมปีที่แล้ว บริษัทเลิกจ้างพนักงาน 17 คน โดยในนั้นมี นักพัฒนา 8 คน
- ไม่กี่นาทีหลังจากคุย Zoom กับ CEO สิทธิ์เข้าถึงทรัพยากรทั้งหมดของบริษัทก็ถูกตัด
- ไม่สามารถ push การเปลี่ยนแปลงหลายอย่างที่กำลังทำอยู่ได้
- ทำให้ยากที่จะกล่าวลากับเพื่อนร่วมงานอย่างเหมาะสม
- เพื่อนร่วมงานหลายคนติดต่อมาทาง LinkedIn และบางคนช่วยนัดคุย Zoom เพื่อให้ได้เล่าสถานการณ์และกล่าวลากัน
- การย้ายงานก่อนหน้านี้ส่วนใหญ่เป็นการตัดสินใจเองขณะยังทำงานอยู่ และใช้ช่วงแจ้งลาออกมาตรฐานของสวีเดนคือ 3 เดือน เพื่อปิดงานก่อนย้ายไปบริษัทใหม่
- การถูกตัดสิทธิ์เข้าถึงทันทีทำให้สามารถใช้เวลาทั้งหมดไปกับการหางานได้ทันทีในช่วงที่ยังได้รับเงินเดือน
- ยังคงดูแลรายชื่อบริษัทที่อยากทำงานด้วยไว้เสมอ ด้วยแนวคิดว่าควรพร้อมหางานใหม่ได้ทุกเมื่อ และรักษาความสัมพันธ์ที่ดีกับรีครูตเตอร์ที่เคยติดต่อกันมาก่อน
ช่องทางหางาน
-
การใช้ LinkedIn
- เปลี่ยนสถานะ Open to work บน LinkedIn จากเดิม “Flexible, I am casually looking” เป็น “Immediately, I’m actively applying”
- จำกัดการมองเห็นไว้เฉพาะรีครูตเตอร์ ไม่ใช่สมาชิก LinkedIn ทั้งหมด และไม่ได้ใช้กรอบรูปสีเขียว #OpenToWork
- หลังเปลี่ยนสถานะ ช่วงสัปดาห์แรกมีรีครูตเตอร์ติดต่อมาประมาณวันละ 5 คน
- คุณภาพของตำแหน่งใกล้เคียงกับปกติ แต่ความถี่ในการติดต่อสูงขึ้นมาก
- ตรวจรายชื่อบริษัทที่สนใจ พร้อมดูทั้งแท็บ Jobs บนหน้า LinkedIn ของบริษัทและหน้ารับสมัครงานของบริษัทนั้น ๆ
- LinkedIn สะดวกเพราะดูจำนวนผู้สมัคร เวลาที่ประกาศงานถูกโพสต์ มีคนรู้จักในบริษัทหรือไม่ และใครเป็นผู้โพสต์ประกาศได้
- การค้นหาด้วยคีย์เวิร์ดอย่าง “Golang Stockholm”, “Recommended for you” และ “Jobs where you’d be a top applicant” ของ Premium ก็แสดงประกาศงานที่ค่อนข้างดีบางส่วน
- การค้นหา งานรีโมตเต็มรูปแบบ ของ LinkedIn ไม่น่าเชื่อถือนัก
- มีปัญหาอย่างเช่นตำแหน่งที่รีโมตได้เฉพาะในสหราชอาณาจักรปะปนขึ้นมา
- เห็นว่าถ้าแบ่งขอบเขตค้นหาได้ เช่น รีโมตเต็มรูปแบบภายในสวีเดน, ภายใน EU, หรือทั่วโลก ก็น่าจะดีกว่า
- การดูเฉพาะประกาศล่าสุดทำได้ยาก จึงต้องเลื่อนผ่านประกาศที่เคยเห็นแล้วซ้ำ ๆ
- ต่อมาพบวิธีค้นหาบน Google โดยตั้งช่วงเวลาเป็นสัปดาห์ที่ผ่านมา แล้วค้นหาเช่น
golang fully remote site:linkedin.com/jobs - ติดต่อกลับรีครูตเตอร์ประมาณ 15 คนที่เคยคุยกันบน LinkedIn ในอดีต แต่ไม่มีผลลัพธ์
- มีกรณีที่ส่ง InMail ไปยังผู้จัดการที่กำลังรับคน แต่ไม่ได้รับคำตอบ
-
เว็บไซต์อื่นและวิธีค้นหา
- ใช้เว็บไซต์จับคู่นักพัฒนากับนายจ้างในสวีเดน Demando
- เปิดใช้งานโปรไฟล์ที่ระบุทักษะและเงินเดือนขั้นต่ำที่คาดหวัง และต่อมาได้รับออฟเฟอร์จากบริษัทหนึ่งที่ติดต่อมาผ่านเว็บไซต์นี้
- ยังพบประกาศงานของบริษัทอื่นที่ไม่เห็นบน LinkedIn ผ่าน Demando และสมัครไป ซึ่งบริษัทนั้นก็ให้ออฟเฟอร์เช่นกัน
- ลองดู RemoteOK ชั่วครู่ แต่ไม่พบประกาศที่น่าสมัคร และโดยรวมรู้สึกว่าคุณภาพประกาศต่ำกว่า LinkedIn
- Efinancialcareers แทบไม่มีตำแหน่งรีโมตเต็มรูปแบบ และค้นหายาก
- ดูเธรดรายเดือน Who’s hiring ของ Hacker News ด้วย แต่หาข้อความที่เกี่ยวข้องได้ยาก
- ยังพบวิธีค้นหาบริษัทที่คล้ายกันด้วยการค้น Google โดยผสมคำว่า “competitor to” หรือ “alternative to” กับชื่อบริษัท
การจัดการใบสมัครและประสบการณ์การตอบกลับ
- รีครูตเตอร์ทุกคนขอ CV แม้จะมีข้อมูลคล้ายกับโปรไฟล์ LinkedIn อยู่แล้ว
- เวลาสมัครกับบริษัทโดยตรง ส่วนใหญ่ก็ขอ CV และหลายบริษัทขอจดหมายแนะนำตัวด้วย
- จดหมายแนะนำตัวที่เขียนไว้ถูกเก็บไว้ แล้วเมื่อต้องสมัครใหม่ก็ copy งานเก่าที่ใกล้เคียงที่สุดมาปรับแก้
- เพื่อจัดการประวัติการสมัคร จึงสร้างชีต Excel และบันทึกชื่อบริษัท วันที่สมัคร รีครูตเตอร์หรือผู้รับผิดชอบ และบันทึกทั่วไป
- มีรายการทั้งหมด 30 รายการ แต่ไม่ใช่ทั้งหมดที่กลายเป็นการสมัครอย่างเป็นทางการ
- ในบรรดาบริษัทที่สมัครไป 6 แห่งไม่ตอบกลับเลย
- บางประกาศเก่ากว่าหนึ่งเดือนแล้ว
- เห็นว่าถ้าประกาศไม่ใช้แล้วก็ควรถอดลง
- หากยังไม่ได้ติดต่อกับคนในบริษัท การไม่ตอบกลับก็ไม่ใช่ปัญหาใหญ่ แต่การไม่ตอบหลังสัมภาษณ์ทำให้มุมมองต่อบริษัทแย่ลง
- บริษัทหนึ่งหลังสัมภาษณ์รอบแรกกับรีครูตเตอร์บอกว่าจะนัดสัมภาษณ์กับผู้จัดการ แต่แล้วก็เงียบหายไป
- ส่งอีเมลไปหลังผ่านไป 2 สัปดาห์แต่ไม่มีคำตอบ และอีก 2 สัปดาห์ต่อมา เมื่อส่งไปบอกว่าไม่สนใจแล้ว จึงได้รับคำขอโทษแบบไม่ค่อยจริงจังนัก
เครื่องมือแบบเสียเงินและเอกสารเตรียมตัว
- จ่ายเงินใช้ LinkedIn Premium หนึ่งเดือน แต่ไม่เป็นประโยชน์เท่าที่คาด
- ไม่แน่ใจว่าเห็นคนที่เข้าดูโปรไฟล์ได้มากขึ้นหรือไม่ และมีคุณค่าต่อการหางานค่อนข้างจำกัด
- ส่ง InMail ไปบ้าง แต่ไม่ได้ช่วยมากนัก
- “Jobs where you’d be a top applicant” ก็ไม่ได้มีคุณค่าชี้ขาด
- ยกเลิกหลังครบหนึ่งเดือน และก่อนยกเลิกได้รับข้อเสนอให้ต่ออีก 2 เดือนในราคา 1 เดือน
- เนื่องจากกำลังหางาน Go จึงจ่ายไลเซนส์ GoLand สองเดือนเพื่อซ้อมในสภาพแวดล้อมที่คุ้นเคย
- ลองใช้ GitHub Copilot ด้วย แต่ในการสัมภาษณ์ไม่ได้ใช้มากนัก เพื่อให้ชัดเจนว่าเขียนโค้ดเอง
- subscription ChatGPT ที่มีอยู่เดิมมีประโยชน์ในการสร้างกรอบพื้นฐานของงานที่ต้องการอย่างรวดเร็วในแบบทดสอบทำโจทย์หลายงาน
- Leetcode เวอร์ชันเสียเงินใช้เตรียมสัมภาษณ์ได้ดี เพราะดูคำอธิบายเฉลยได้
- บริษัทหนึ่งใช้แบบทดสอบ IQ ของ Alva Labs จึงจ่ายเงินเรียน Alva Logic Cram Course ของ 12minprep เพื่อฝึกซ้อม
- รู้สึกว่าการซ้อมล่วงหน้าช่วยให้ทำแบบทดสอบได้ดีขึ้นมาก
ตลาดที่ตึงขึ้นและข้อกำหนดประสบการณ์ภาษา
- รู้สึกว่าตลาดรับนักพัฒนายากขึ้นอย่างชัดเจนเมื่อเทียบกับ 10 ปีก่อน
- ประกาศที่สมัครได้ยังมีอยู่มาก แต่จำนวนผู้สมัครต่อหนึ่งตำแหน่งดูมากกว่าในอดีต
- ในประกาศบน LinkedIn ที่ดูจำนวนผู้สมัครได้ หลายประกาศแสดงว่ามีผู้สมัคร มากกว่า 100 คน
- จำนวนบริษัทที่ไม่ได้รับคำตอบแม้ในบทบาทที่คิดว่าเหมาะสมก็เป็นหลักฐานว่าตลาดยากขึ้น
- ข้อกำหนดประสบการณ์ภาษาเฉพาะเพิ่มขึ้น
- ในอดีตเคยเริ่มงานที่พัฒนาด้วย Python หรือ Golang ได้แม้ไม่มีประสบการณ์ภาษาเหล่านั้น และทำงานได้มีประสิทธิภาพอย่างรวดเร็ว
- มองว่าภาษาเชิง imperative หลายภาษาคล้ายกัน จึงปรับตัวเข้ากับภาษาได้
- แต่รีครูตเตอร์จำนวนมากแจ้งว่าเงื่อนไขตายตัวของบริษัทผู้จ้างคือประสบการณ์ภาษาเฉพาะ 2–3 ปี
กระบวนการสัมภาษณ์และวิธีเตรียมตัว
-
กระบวนการและภาระเรื่องตารางเวลา
- กระบวนการรับสมัครทั่วไปประกอบด้วย การสัมภาษณ์ 4–5 ครั้ง
- สัมภาษณ์รอบแรกกับรีครูตเตอร์
- สัมภาษณ์กับผู้จัดการฝ่ายจ้างงาน
- สัมภาษณ์เทคนิค 1–2 ครั้ง
- แบบทดสอบทำโจทย์หรือ live coding
- แล้วแต่กรณี อาจมีสัมภาษณ์กับ product manager, CTO, ผู้ก่อตั้ง
- ตำแหน่งรีโมตดำเนินการผ่าน Zoom, Meet, Teams
- ตำแหน่งในสต็อกโฮล์มส่วนใหญ่ต้องการสัมภาษณ์แบบเจอหน้า
- เพราะเวลาเดินทางไปกลับ การสัมภาษณ์แบบเจอหน้าหนึ่งครั้งกินเวลาครึ่งวัน
- ในทางกลับกัน การสัมภาษณ์รีโมตทำได้หลายครั้งในวันเดียว
- ข้อดีของการสัมภาษณ์แบบเจอหน้าคือทำให้เข้าใจบรรยากาศของคู่สนทนาและออฟฟิศได้ดีกว่า
- กระบวนการรับสมัครทั่วไปประกอบด้วย การสัมภาษณ์ 4–5 ครั้ง
-
คำถามเชิงพฤติกรรมและการเตรียมเทคนิค
- รวบรวมสิ่งที่ต้องดูก่อนสัมภาษณ์ไว้ในเอกสาร Word ที่ดูแลไว้เดิมชื่อ Interview Tips
- ครั้งนี้เพิ่มส่วน Behavioral Questions เพื่อเตรียมตอบคำถามอย่าง “เล่าเหตุการณ์ที่คุณมีความเห็นต่างจากเพื่อนร่วมงาน”
- เตรียมคำตอบตามเฟรมเวิร์ก STAR คือ Situation, Task, Action, Result, Reflection
- ดูรายการคำถามจาก Rock the Behavioral Interview ของ Leetcode แล้ว整理กรณีที่จะใช้ตอบ
- ครั้งนี้ไม่มีการสัมภาษณ์ที่ตกเพราะคำถามเชิงพฤติกรรม
- ยังจด snippet โค้ดสั้น ๆ ของ Python และ Go ไว้ในเอกสาร
- มีจุดประสงค์เพื่อให้นึกถึง pattern และ idiom ที่พบบ่อยได้รวดเร็ว
- snippet ทั้งหมดถูก execute เพื่อตรวจว่าไม่มี error และใส่ output ที่เกี่ยวข้องไว้ด้วย
- ดูวิดีโอของ Gergely Orosz เรื่อง Confessions from a Big Tech Hiring Manager: Tips for Software Engineering Interviews ด้วย
- ในการสัมภาษณ์เทคนิค มองว่าสิ่งสำคัญคือการแสดงความอยากรู้อยากเห็น ทำงานร่วมกันได้ดี และตั้งคำถาม
ประสบการณ์สัมภาษณ์และแบบทดสอบเขียนโค้ด
-
สัมภาษณ์ทั่วไป
- ในการสัมภาษณ์รอบแรก เปิดเผยว่าถูกเลิกจ้างจากที่ทำงานเดิมเพราะการลดต้นทุน
- ไม่รู้สึกว่าการบอกเรื่องนี้ส่งผลเสีย
- ในการคุยกับรีครูตเตอร์หรือผู้จัดการ ไม่ได้ตื่นเต้น เพราะรู้ชัดเจนว่าต้องการทำอะไรและจุดแข็งของตัวเองคืออะไร
- การสัมภาษณ์เทคนิคที่ไม่ใช่การเขียนโค้ดก็ไม่ตื่นเต้นเมื่อเป็นเทคโนโลยีที่คุ้นเคย และพลาดเพียงครั้งเดียว
- คำถามนั้นถามว่าควรกำหนด timeout สำหรับการเชื่อมต่อฐานข้อมูลไว้เท่าไร แล้วตอบเป็นตัวเลขที่สูงเกินไป ซึ่งคำตอบนั้นทำให้ตกรอบ
-
แบบทดสอบทำโจทย์
- เมื่อเทียบกับการสัมภาษณ์ครั้งล่าสุดเมื่อหลายปีก่อน แบบทดสอบทำโจทย์ มีมากขึ้น
- แบบทดสอบทำโจทย์เครียดน้อยกว่า live coding แต่ใช้เวลามากกว่ามาก
- ไม่ว่าบริษัทจะพูดอย่างไร มองว่าแต่ละโจทย์ใช้เวลาอย่างน้อย 6 ชั่วโมง
- สำหรับบริษัท ต้นทุนการขอโจทย์ตั้งแต่ช่วงต้นต่ำ แต่สำหรับผู้สมัครคือการลงทุนเวลาจำนวนมากโดยผลลัพธ์ไม่แน่นอน
- ทำแบบทดสอบทำโจทย์ทั้งหมด 5 งาน
- Java 2 งาน
- Python 2 งาน
- Go 1 งาน
- มองว่าล้มเหลวประมาณ 1 งานครึ่ง
- ในโจทย์ Go ส่ง solution ที่ทำงานได้ แต่ไม่ได้ใส่ test
- แม้จะไม่ใช่ข้อกำหนดชัดเจน แต่คิดว่าควรใส่ test
- รู้สึกไม่ชัดเจนว่าจะมีการรันซ้ำหรือไม่ แต่การไม่ใส่ caching เพื่อปรับปรุงความเร็วก็เป็นเหตุผลหนึ่งที่พลาด
- อีกโจทย์หนึ่งผ่าน test ที่มีอยู่ แต่ hidden test พบ error 2 จุดเกี่ยวกับ input ว่าง
- มองว่าถ้าเป็นงานจริงก็คงเขียน test เพิ่มเอง
- สุดท้ายได้รับออฟเฟอร์จากบริษัทนั้น จึงนับเป็นความล้มเหลวครึ่งหนึ่ง
-
Live coding
- ใน live coding รู้สึกว่าเพราะความตื่นเต้น สมองทำงานได้เพียงประมาณ 50% ของปกติ
- live coding ครั้งนี้ผ่าน 3 ครั้งและไม่ผ่าน 2 ครั้ง
- กรณีที่ล้มเหลวครั้งแรกคือโจทย์เขียนโปรแกรมหมากรุกแบบจำกัด
- รองรับหมากเพียง 2 ประเภท แต่ต้องมีโครงสร้างโปรเจกต์ โมเดลข้อมูล การเดินที่ถูกต้อง และ test
- ต้องส่งภายใน 2 ชั่วโมง และเวลาคับมาก
- ส่วนใหญ่ทำงานได้ แต่ทำฟังก์ชันทั้งหมดไม่เสร็จ และมี bug ในโค้ดการเดิน
- อีกกรณีหนึ่ง test ใน repository โค้ดเริ่มต้นที่บริษัทเตรียมไว้ไม่ทำงาน และการตั้งค่าสภาพแวดล้อมก็ใช้เวลา
- ต้องถามหลายคำถามว่า logic ควรทำงานอย่างไร และสุดท้ายใช้เวลานานเกินไป
- live coding ทั้งหมดใช้ IDE บนคอมพิวเตอร์ของตนเองและแชร์หน้าจอผ่าน Zoom
การต่อรองเงินเดือนและการเลือก
- ช่วงแรกมีหลายครั้งที่การสัมภาษณ์ถูกยกเลิกเพราะบอกตัวเลขเงินเดือนสูงเกินไป
- หลังจากนั้นเปลี่ยนวิธีเป็นบอกเงินเดือนประจำปีในช่วง 4 ปีที่ผ่านมา เพื่อสื่อระดับที่ต้องการแบบอ้อม ๆ
- ถ้าบริษัทบอกว่าจ่ายระดับนั้นไม่ได้ ก็ตอบว่าตอนนี้ว่างงาน จึงไม่มีเงินเดือนขั้นต่ำแบบตายตัว และขึ้นอยู่กับข้อเสนอ
- วิธีนี้ทำให้กระบวนการเดินหน้าต่อได้ และสร้างโอกาสไปสู่ออฟเฟอร์ที่ดีกว่าในภายหลัง
- หลังได้รับออฟเฟอร์แรก การเจรจาก็ง่ายขึ้น
- เมื่อถาม ช่วงเงินเดือน ของบทบาทนั้น กลับได้รับคำตอบบ่อยกว่าที่คาด
- มีประโยชน์เพราะสามารถ early no กับบริษัทที่ต่ำกว่าระดับที่รับได้
- บริษัทหนึ่งน่าสนใจ จึงไม่ได้เช็กเงินเดือนล่วงหน้า และหลังผ่านหลายสัมภาษณ์กับโจทย์ทดสอบ ก็ได้รับออฟเฟอร์ที่ต่ำมาก
- มองว่าเสียเวลาเพราะไม่ได้เช็กล่วงหน้า
- เข้าใจระดับเงินเดือนนักพัฒนาในสต็อกโฮล์มดีขึ้นด้วย
- ในสวีเดนคิดเป็นเงินเดือนรายเดือน
- ต้องพิจารณาด้วยว่ารวมเงินสมทบ pension หรือไม่ โดยส่วนใหญ่จะรวม และอาจมี 10–15% เพิ่มเติมรวมอยู่โดยนัย
- เงินเดือนนักพัฒนาระดับเฉลี่ยมาก ๆ อยู่ที่ประมาณ 55K–65K SEK ต่อเดือน
- มากกว่า 80K SEK ต่อเดือน ยากกว่า แต่แม้ในตลาดที่ตึงตัวก็ไม่ใช่ว่าเป็นไปไม่ได้
- นอกเหนือจากเงินเดือน บางบริษัทมี option, equity, bonus ให้ด้วย
- ในการเลือกสุดท้าย ต้องพิจารณาความน่าสนใจของผลิตภัณฑ์และบริษัท ภาษาที่จะใช้ สิ่งที่จะได้เรียนรู้ และเพื่อนร่วมงานด้วย
ผลลัพธ์สุดท้ายและสิ่งที่ได้เรียนรู้
- บริษัทหนึ่งดำเนินการไปในทิศทางที่ดีมากและขอ reference 2 คน แต่วันถัดมากลับเลือกผู้สมัครคนอื่น
- รู้สึกผิดหวังที่ทำให้ reference 2 คนต้องเสียเวลา
- การหางานสุดท้ายแล้วใกล้เคียงกับ เกมของตัวเลข
- แม้จะล้มเหลวในการสัมภาษณ์หลายครั้ง ขอเพียงมีบริษัทหนึ่งที่สำเร็จ ก็ได้งานใหม่
- สุดท้ายมีออฟเฟอร์ 3 รายการครึ่งให้เลือก
- บริษัทหนึ่งไม่ได้รับออฟเฟอร์อย่างเป็นทางการ แต่ดูแล้วน่าจะต่ำกว่าออฟเฟอร์สองรายการที่มีอยู่ จึงนับเป็นครึ่งหนึ่ง
- จัดให้กระบวนการของหลายบริษัทจบในช่วงเวลาใกล้เคียงกัน โดยบางแห่งชะลอไว้และบางแห่งเร่งให้เร็วขึ้น
- ปรับด้วยการเลื่อนสัมภาษณ์หรือพยายามนัดให้เร็วที่สุด
- การมีหลายออฟเฟอร์ทำให้สถานะต่อรองดีขึ้นมาก และสุดท้ายได้ตำแหน่ง senior developer ที่ Swissblock ซึ่งมีทั้งงานที่น่าสนใจและเงินเดือนดี
- การหางานใหม่เป็นงานที่ใช้แรงมาก และยังมีสิ่งที่ต้องเตรียมในวันหยุดสุดสัปดาห์ ทำให้พักได้ยาก
- เมื่อนับรวมการสัมภาษณ์ 4–5 ขั้นตอน โจทย์ทดสอบ การศึกษาบริษัท การจัดตาราง และการถูกปฏิเสธ อาจใช้เวลาหลายเดือน
- ยากที่จะประเมินผลสัมภาษณ์ด้วยตัวเอง และมักแปลกใจทุกครั้งเมื่อถูกปฏิเสธ
- อดีตเพื่อนร่วมงานที่ช่วยพูดคุยเรื่องกระบวนการหางานมีประโยชน์มาก
- รีครูตเตอร์ที่ตอบกลับเร็วมีความสำคัญต่อการสร้างความเชื่อมั่นต่อบริษัท
- เมื่อเพื่อนร่วมงานถูกเลิกจ้าง การติดต่อไปทาง LinkedIn หรือช่องทางอื่นเพื่อกล่าวลา มีความหมายอย่างมากต่อเจ้าตัว
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ในฐานะวิศวกร ML ที่ FAANG ได้ลองหางานแบบไม่เร่งรีบมาตลอดครึ่งปีที่ผ่านมา แต่ความเป็นจริงต่างจากภาพจำที่ว่าบริษัทจะวิ่งเข้ามาพร้อมกองเงินโดยสิ้นเชิง
แม้จะมีข้อความจากรีครูตเตอร์เข้ามาเยอะเพราะโปรไฟล์ช่วยได้ แต่เกินครึ่งหายไประหว่างกระบวนการ และความสนใจจากรีครูตเตอร์ก็เป็นแค่ตัวชี้วัดความภูมิใจปลอม ๆ หากไม่เปลี่ยนเป็นข้อเสนอจริง
ถึงความต้องการจะมาก แต่เกณฑ์การจ้างก็สูงมากเช่นกัน บริษัทต้องการประสบการณ์กับ tech stack ที่ตรงเป๊ะกับที่ตัวเองใช้ มี ML framework หลักอยู่ไม่กี่ตัว แต่เพียงเพราะคุ้นเคยแค่ตัวใดตัวหนึ่งก็ทำให้ถูกตัดออกจากหลายตำแหน่งแล้ว และบางบริษัทก็คัดออกเพราะมีประสบการณ์กับเทคโนโลยีเฉพาะด้าน 6 ปี ซึ่งไม่ถึงขั้นต่ำ 8 ปีที่กำหนด
จนถึงตอนนี้ผลคือมีการปฏิเสธ 1 ครั้ง กับข้อเสนอให้ลดเลเวลลงไปเป็น senior 2 ครั้งเท่านั้น ทั้งที่เป้าหมายคือ Staff+ และค่าตอบแทนส่วนใหญ่ก็ถูกตั้งเพดานไว้ราวครึ่งหนึ่งของ total compensation ปัจจุบัน มีแค่ไม่กี่บริษัทเท่านั้นที่ให้ได้มากกว่านี้
โดยรวมแล้วตลาดวิศวกร ML ยังดีกว่าตลาดซอฟต์แวร์เอนจิเนียร์ แต่ไม่เหมือนช่วงฟองร้อนแรงปี 2020~2022 เลยแม้แต่น้อย
วิศวกรจาก Google ยังถูกมองว่าเป็นคนระดับสูงโดยรวม ส่วนวิศวกรจาก Apple ก็ชื่อเสียงดีแต่ไม่ค่อยออกสู่ตลาดงาน ขณะที่วิศวกรจาก Facebook/Meta มักจะเหนือค่าเฉลี่ย แต่ก็มีภาพลักษณ์ว่าเป็นพวกแข่งขันภายในเพื่อเลื่อนตำแหน่งอย่างดุเดือด
ถ้าหางานยาก คนก็มักจะนึกถึง Amazon ก่อน ระบบจ้างงานเชิงรุกแล้วตามด้วย PIP pipeline ของ Amazon อย่างน้อยจากประสบการณ์ส่วนตัวทำให้ชื่อเสียงเสีย และอดีตวิศวกร Amazon ที่ร่วมงานกันมาในช่วงไม่กี่ปีหลัง หลายคนมีฝีมือต่ำกว่าค่าเฉลี่ย
ตอนนี้การพูดรวม ๆ ว่า “FAANG” แทบไม่มีความหมายแล้ว ความคาดหวังต่อวิศวกรจากแต่ละบริษัทต่างกันมาก และทุกที่ก็ไม่ได้ถูกจับตามองเหมือนเมื่อหลายปีก่อนแล้ว รวมถึงกำลังขยับไปสู่การให้ค่ากับความสามารถในการอยู่รอดในบริษัทยักษ์ใหญ่มากกว่าความสามารถเชิงวิศวกรรมล้วน ๆ
golden handcuffs มีอยู่จริงและเป็นสิ่งที่ตั้งใจทำไว้ และก็มีไม่มากนักที่บริษัทจะมีปัญหาใหญ่พอให้คุ้ม ROI ของค่าตอบแทนระดับ FAANG
อีกทั้งภายใน FAANG ยังมีเครื่องมือภายในที่ยอดเยี่ยมจำนวนมากซึ่งภายนอกไม่มี ทำให้เกิดคำถามว่า “คนนี้เป็นผู้เชี่ยวชาญจริง หรือเป็นผู้เชี่ยวชาญในการใช้ internal stack ของ Google กันแน่” คำถามคือจะสร้างผลงานได้ทันทีไหม หรือจะต้องเสียเวลาสร้างเครื่องมือพวกนั้นขึ้นมาใหม่ก่อน
ทุกคนอยากบอก CEO หรือบอกนักลงทุนว่าดึงคนเก่งจาก FAANG มาได้ แต่บริษัทที่มีทั้งงบพร้อมประมูลแข่งและมีบริบทที่เหมาะจริง ๆ นั้นมีไม่มาก
ตอนปี 2020 ตอนที่เป็น hiring manager และรับวิศวกร ML ก็เจอปัญหานี้เหมือนกัน และในบริษัทขนาดกลางก็มักมีปัญหาว่า “จะเอาวิศวกร ML ไปใช้ตรงไหนกันแน่” ถ้าไม่ใช่นักวิทยาศาสตร์ข้อมูลหรือซอฟต์แวร์เอนจิเนียร์สายทั่วไป ก็สร้างบทบาทกึ่งกลางได้ยาก และถ้าทีมข้อมูลไม่คุ้นกับ workflow และเครื่องมือแบบวิศวกรรม ต่อให้วิศวกร ML สร้างระบบที่เป็นระเบียบ สะอาด และมี version control ก็อาจถูกมองข้ามได้ง่ายเพราะไม่ใช่ KPI
ถ้าไม่ได้จะไปทำงานเดิมแบบเด๊ะ ๆ ที่บริษัทอื่น ในการสัมภาษณ์ก็ควรเตรียมตัวให้ดูเหมือนเป็นผู้เชี่ยวชาญแม้กับเทคโนโลยีที่จริง ๆ อยากไปคุ้นเคยหลังเข้าทำงาน บางกรณีอาจต้องขยายประสบการณ์ของตัวเองขึ้นมาบ้าง
สุดท้ายแล้วความเชี่ยวชาญควรอยู่ที่วิธีคิดมากกว่าข้อเท็จจริงที่รู้ แต่ตลาดจ้างงานไม่ได้มองแบบนั้น ดังนั้นจึงต้องแต่งให้ดูดีไว้ก่อน และพร้อมไปอุดช่องว่างด้วยการเรียนตอนกลางคืนทีหลัง
อีกอย่างคือเลเวลไม่ได้เทียบกันตรงตัวระหว่างแต่ละสภาพแวดล้อม ถ้าเจองานที่เหมาะกับตัวเองก็ไต่ขึ้นได้ และถ้ายึดติดกับเลเวลหรือค่าตอบแทนมากเกินไป ตัวเลือกอาจยิ่งแคบลง
แม้จะรู้สึกว่าตัวเองถูกประเมินค่าต่ำกว่าประสบการณ์และความรับผิดชอบพอสมควร แต่ค่าตอบแทนและสวัสดิการในประกาศงานช่วงหลังก็อยู่ในระดับน่าหดหู่
ต่างจากที่คนชอบพูดกันเกี่ยวกับ EU หลายประกาศชูคำว่า “hybrid” และ “ยืดหยุ่น” แต่พอเข้าสัมภาษณ์รอบท้ายกลับค่อยบอกว่าต้องเข้าออฟฟิศสัปดาห์ละ 3~4 วัน และชอบประชุมต่อหน้าเพราะ “การทำงานร่วมกัน”
พูดกันเรื่องปรับตามเงินเฟ้อ แต่ค่าแรงกลับลดลง และให้ความรู้สึกว่า EU กำลังตามสหรัฐในด้านความร้อนแรงเกินจริงและความไม่มั่นคง แต่ไม่สามารถไล่ระดับค่าแรงให้ทันได้
เช่น การจะได้ชิปเพิ่มก็ยากอยู่แล้ว และมีโอกาสสูงว่าจะได้รันการทดลองน้อยลงพร้อม throughput ที่ลดลงในสภาพแวดล้อมที่ทรัพยากรคำนวณตึงตัวอยู่แล้ว
มองว่าความยากของการจ้างงานในสหรัฐตอนนี้มีด้านที่ร้ายกาจกว่าการที่บริษัทเลือกมากขึ้นเฉย ๆ
อย่างแรก บริษัทสหรัฐกำลังเรียนรู้วิธีจ้างทีมต่างประเทศด้วยต้นทุนที่ต่ำกว่า ทุกสัปดาห์จะได้รับอีเมลหลายฉบับเสนอทีมจากอเมริกาใต้หรืออินเดียในราคาถูก และที่บริษัทก่อนหน้านี้ก็เห็นมากับตาว่ามีการลดคนในสหรัฐ/อเมริกาเหนืออย่างหนักแล้วแทนที่ด้วยทีมอินเดียเพราะเหตุผลเรื่องการลดต้นทุนล้วน ๆ
อย่างที่สอง ดูเหมือนว่าบริษัทสหรัฐกำลังพยายามเอาอำนาจควบคุมกลับคืนมาจากแรงงานที่เคยได้เปรียบในช่วงโควิด
เพิ่งเริ่มหางานได้ไม่นานก็รู้สึกอึดอัดแล้ว ทั้งโดนหาย เงียบ ไม่ตอบ และเจอเรื่องอย่าง “จำนวนปีประสบการณ์ไม่พอเมื่อเทียบกับ requirement” เช่น บังคับว่าต้องมีประสบการณ์ .NET 6 อย่างน้อย 3 ปี
วันนี้ลองดูคู่แข่งรายใหญ่ ๆ พบว่าที่หนึ่งเปิดตำแหน่งโปรแกรมมิงในเม็กซิโกไว้เพียบ ส่วนอีกที่ก็รับคนในอินเดียเป็นหลัก
คนที่จะมาแย่งงานวิศวกรรมในสหรัฐไม่ใช่ ChatGPT แต่คือเหล่านักพัฒนาที่ถูกกว่าจากประเทศอื่น หลายคนในนั้นมีทั้งภาษาอังกฤษและทักษะการเขียนโปรแกรมดีพอ ซึ่งฉันรู้เพราะเคยร่วมงานด้วย
ถ้างานสามารถทำแบบรีโมตได้ ก็แปลว่าใครสักคนที่ไหนก็ได้บนโลกสามารถทำงานเดียวกันนี้ได้ด้วยต้นทุนหนึ่งในห้า
ผู้แสดงความคิดเห็นไม่ได้ทำตามคำแนะนำใน “องค์ประกอบสำคัญของไมโครไซต์สำหรับหางาน” ที่บอกให้ใส่รูปโปรไฟล์แบบมืออาชีพ
พอเคยทำงานเป็นช่างภาพมาก่อน จึงได้เรียนรู้ว่าตัวเองเหมาะกับการอยู่หลังกล้องกดปุ่มมากกว่า และมองว่าในการจ้างงานในสหรัฐฯ ไม่ควรมีรูปถ่าย
เพราะมีประวัติการเลือกปฏิบัติที่ยาวนานและอคติที่ยังคงอยู่ หากเป็นไปได้แม้แต่ชื่อก็ควรถูกตัดออกด้วย เพราะอาจเป็นเบาะแสเรื่องเพศ เชื้อชาติ·ชาติพันธุ์ วรรณะ หรือภูมิหลังทางสังคมเศรษฐกิจ
รูปถ่ายเป็นสิ่งที่เคยถูกตัดออกจากกระบวนการจ้างงานได้ค่อนข้างง่าย และในสหรัฐฯ ก็แทบหายไปแล้ว แต่เว็บไซต์สไตล์ “โซเชียลมีเดีย” อย่าง LinkedIn ได้นำ รูปโปรไฟล์ กลับเข้ามาในเรซูเม่อีกครั้ง
ฟังดูอาจแปลก แต่ในหลายประเทศยุโรป การใส่รูปโปรไฟล์ในเรซูเม่เป็นเรื่องเด่นชัด ตอนเริ่มจ้างงานสำหรับออฟฟิศใน EU ใหม่ ๆ ก็รู้สึกช็อก แต่ที่นั่นเขาทำกันแบบนี้
ยิ่งน่าตกใจเพราะได้ยินมาบ่อยว่ายุโรปก้าวหน้ากว่าสหรัฐฯ ในเรื่องการเลือกปฏิบัติ แต่เรซูเม่จริง ๆ กลับมีทั้งรูปโปรไฟล์และแม้แต่สถานภาพสมรส พอให้รีครูตเตอร์ท้องถิ่นลบข้อมูลพวกนี้ออก ก็กลับถูกมองว่าเป็นคนแปลก
บางคนยังเขียนว่า “โสด” หรือ “แต่งงานแล้ว” ลงในเรซูเม่ด้วย แต่ได้ยินว่าทุกวันนี้เริ่มน้อยลงแล้ว
การมีรูปลักษณ์ที่เรียบร้อยและเป็นมืออาชีพสร้างความแตกต่างต่อผู้จ้างงานได้จริง และบริษัทก็อาจเลิกจ้างหรือไม่รับเข้าทำงานอย่างถูกกฎหมายได้หากไม่ปฏิบัติตามมาตรฐานดังกล่าว
แม้จะไม่สงสัยว่าต่อให้เป็นนักพัฒนาที่มีประสบการณ์มากแบบผู้เขียนก็ยังต้องใช้ความพยายาม แต่ สมัคร 30 ที่ได้ข้อเสนอ 3 ที่ ถือเป็นผลลัพธ์ในฝัน
สำหรับคนช่วงต้นอาชีพ ส่วนใหญ่น่าจะต้องสมัครเกิน 100 ที่ ถึงจะได้สัมภาษณ์ไม่กี่ครั้ง และถ้าโชคดีก็ได้ข้อเสนอหนึ่งครั้ง
เมื่อเทียบกับค่าเฉลี่ยของนักพัฒนาในสหรัฐฯ ก็ถือว่าตั้งความคาดหวังค่อนข้างถ่อมตัว
สมัคร 6 แห่ง ได้สัมภาษณ์ 4 แห่ง และได้ข้อเสนอ 2 แห่ง ทั้งที่ในทางปฏิบัติยังเป็นระดับจูเนียร์ แต่ไปสมัครตำแหน่งมิดเลเวล
อยากคิดว่าสาเหตุที่มีสัมภาษณ์ไม่มาก ทำให้ทุ่มพลังและสมาธิให้กับแต่ละที่ได้เต็มที่ แต่ก็อาจเป็น survivor bias
หลังจากนั้น จากการสัมภาษณ์ 3 ครั้งก็ได้ข้อเสนอที่ดี 2 ครั้ง และค่าตอบแทนก็อยู่เหนือเปอร์เซ็นไทล์ที่ 50 ของบทบาทซอฟต์แวร์เอนจิเนียริงในสหรัฐฯ ไม่คิดว่าตัวเองเก่งเหนือคนอื่นเป็นพิเศษจนถล่มทุกอย่างได้
ไม่มีพลังจะใช้กลยุทธ์สมัครงานแบบหว่านจำนวนมาก ไม่ชอบการสัมภาษณ์ และเวลาทำ live coding สมองก็มักตื้อ เลยสมัครเฉพาะที่ที่อยากทำงานจริง ๆ และที่น่าจะยินดีรับนักพัฒนาธรรมดาที่ทำงานร่วมกับคนอื่นได้ดี
สามารถรู้สึกสนใจงานธรรมดาทั่วไปอย่างจริงใจ และมีความเห็นที่หนักแน่นแต่พร้อมเปลี่ยนได้ง่าย อาจเป็นสองสิ่งนี้ที่เป็นเคล็ดลับของตัวเอง
อีก 5 แห่งเป็นฝ่ายปฏิเสธเองหรือไม่มีเวลาทำขั้นตอนให้จบ ตอนนี้ตลาดงานแย่กว่าตอนนั้นมากสำหรับคนหางาน
ไม่เคยสมัครงานหรือสัมภาษณ์แบบจริงจังมาก่อนเลย และรู้สึกว่าสักวันหนึ่งเรื่องนี้น่าจะย้อนกลับมาสร้างปัญหา
โจทย์ที่ให้เขียนโปรแกรมหมากรุกแบบจำกัด ซึ่งรองรับหมากแค่สองชนิด ภายใน 2 ชั่วโมง ไม่ใช่เรื่องง่าย
เคยลองเขียนโปรแกรมหมากรุกเอง แต่ก็ยังสงสัยว่าจะสร้างโครงสร้างโปรเจกต์ โมเดลข้อมูล การเดินที่ถูกกติกา และการทดสอบทั้งหมดให้เสร็จภายใน 2 ชั่วโมง ได้หรือไม่ และต่อให้ทำได้ก็น่าจะกลายเป็นโค้ดที่เต็มไปด้วยบั๊ก
ถึงอย่างนั้นก็ยังใช้เวลาประมาณ 2.5 ชั่วโมง
ฟังดูเป็นงานที่ค่อนข้างเป็นกลไกและตรงไปตรงมา
การจ้างงานทั่วไปทุกวันนี้มีทั้งการคัดกรองรอบแรกกับ recruiter, สัมภาษณ์กับผู้จัดการที่รับคน, สัมภาษณ์เชิงเทคนิคอีกหนึ่งหรือสองรอบ และบางครั้งยังมีสัมภาษณ์กับผู้จัดการผลิตภัณฑ์หรือ CTO/ผู้ก่อตั้งอีก รวมแล้วสี่ถึงห้ารอบ ซึ่งไม่ใช่เรื่องใหม่แล้ว แต่ก็ยังค่อนข้างบ้าดี
แต่สุดท้ายก็ยังต้องถูกบังคับให้ผ่านกระบวนการสัมภาษณ์เพิ่มเติมอีกหลายสัปดาห์ ซึ่งไม่ใช่แค่บ้า แต่ยังเป็น การเสียเวลาและทรัพยากร
อย่างแรก ถ้าได้ไปถึงขั้นคัดกรองทางโทรศัพท์ก็มักจะมีโอกาสได้ข้อเสนอค่อนข้างแน่ ทำให้ต้นทุนเวลาจริงอาจไม่สูงอย่างที่คิด ถ้าไม่มีการคัดกรองทางโทรศัพท์ก็ไม่ต่างจากตอนนี้ แต่ถ้ามี ก็แค่ดูว่าชุดสัมภาษณ์นั้นมีเวลารอระหว่างรอบยาวเกินไปไหม ถ้ายาวเกินก็ถอนตัวตั้งแต่ต้นได้ 8 ชั่วโมงในวันเดียวรับได้ แต่ 8 ชั่วโมงที่ลากยาวสองเดือนทำให้การหางานซับซ้อนขึ้น
อย่างที่สอง ถ้ามีข้อเสนอแข่งกัน ต้นทุนด้านเวลาก็จะเริ่มน่ารำคาญ วันสัมภาษณ์หนึ่งวันอาจคุ้มถ้ากำลังจะได้ค่าจ้างเพิ่ม 40% แต่การต้องใช้เวลา 5 วันเต็มไปกับการหางานเป็นภาระเมื่อวันลามีจำกัด ถึงอย่างนั้นดูเหมือนว่านายจ้างราวครึ่งหนึ่งก็ไม่ได้ขอหลักฐานข้อเสนอคู่แข่งจริง ๆ และถ้าบอกค่าตอบแทนที่ต้องการแบบ XYZ พร้อมบอกว่าถ้าได้ตามนี้จะเซ็นทันที พวกเขาก็มักพยายามปรับให้ตรงอย่างน่าประหลาด
อย่างที่สาม การสัมภาษณ์เชิงเทคนิคโดยเฉลี่ยใช้เวลา 10–20 นาทีไปกับการแก้ปัญหาทางเทคนิค และอีก 30–50 นาทีคือการสำรวจว่าผู้สมัครรู้อะไรเกี่ยวกับบริษัทและทีมบ้าง บริษัทใหม่เป็นความเสี่ยง และมักซ่อนสัญญาณลบจากคนนอก ดังนั้นนอกจากตรวจสอบภูมิหลังผู้บริหารแล้ว การได้ฟังมุมมองปัจจุบันจากสมาชิกทีมหลายคนก็ช่วยหลีกเลี่ยงปัญหาได้ตั้งแต่เนิ่น ๆ
ถ้าสัมภาษณ์ผู้สมัครไปมากมายแต่ยื่นข้อเสนอให้เพียง 1% และในช่วงทดลองงานยังล้มเหลวอีก 30% การจ้างงานก็เป็น การกินเวลา อย่างมหาศาลสำหรับทุกฝ่าย คนเก่งหายาก และงานดี ๆ ก็หายากเช่นกัน
เมื่อก่อนการสัมภาษณ์ onsite ต้องเสียเวลาเดินทางไปกลับหนึ่งชั่วโมง สัมภาษณ์รวมอีกหกชั่วโมง แถมมีมื้อกลางวัน และบริษัทที่เป็นที่ต้องการสูงก็มักให้ทำแบบนั้นหลายรอบ บางคนถึงขั้นต้องบินมาจากต่างเมือง
ผมมีเพื่อนคนหนึ่งไปสัมภาษณ์กับ Google แล้วติดอยู่ที่ SF นาน 3 สัปดาห์เพราะพายุหิมะฝั่งตะวันออก สุดท้ายเลยถูก Accenture ไล่ออก
เทียบกันแล้ว การสัมภาษณ์ 4–6 ชั่วโมงที่นัดในเวลาที่ต้องการ แม้จะแบ่งเป็นหลายวัน ก็ยังดีกว่ามาก
ตลาดงานวิศวกรซอฟต์แวร์ก็ไม่ได้ดีนัก แต่ตำแหน่ง สายสนับสนุน อย่าง engineering manager, product manager, designer หรือ developer relations ดูจะแย่กว่ามาก
จากที่ผมเห็น คนกลุ่มนี้หางานลำบากเป็นพิเศษ ส่วนฝั่งนักพัฒนายังพอหางานได้ แม้จะช้าลงและสวัสดิการแย่ลง เลยสงสัยว่านี่เป็นแค่รอบตัวผมหรือเปล่า
ตอนนี้มีกระแสทางการบริหารที่มองว่ามีผู้จัดการมากเกินไปแพร่หลายอยู่ และหลายที่ก็ขยับไปในทิศทางเดียวกับที่ Instagram ยุบทั้งบทบาท Technical Program Manager
ที่งานแรก การปลดคนประมาณ 50% อยู่ฝั่ง “การจัดการ” ตอนนี้ทีมเราไม่มี product manager แล้ว และยังถูกบอกด้วยว่า ถ้าไม่ใช่เรื่องใหญ่ก็ไม่ต้องสนใจงานออกแบบมากนัก สองบทบาทนี้แทบจะถูกรวมเข้าไปอยู่กับ team lead ซึ่งตอนนี้ต้องรับผิดชอบทั้ง mockup และการตัดสินใจด้านผลิตภัณฑ์
ที่งานที่สอง 70% ของการปลดคนอยู่ฝั่งการจัดการ ผู้จัดการหนึ่งคนต้องดูแลจากเดิมทีมเดียว 5 คน กลายเป็น 4 ทีมรวม 25 คน และเราก็เสียทั้งดีไซเนอร์กับ product owner ไป ตอนนี้การตัดสินใจพวกนั้นตกไปอยู่กับ product owner ที่เหลือหรือไม่ก็ technical team lead
บริษัทเราก็กำลังรับคน และในกล่องข้อความของผมก็เต็มไปด้วยบริษัทจัดหางาน ทั้งหมดนี้พูดถึงบทบาทด้าน product engineering และ leadership
ตลาดที่หนาวจริง ๆ คือฝั่ง junior และยังไม่ชัดว่ามันจะเปลี่ยนเมื่อไรหรืออย่างไร
อ้างอิงจากมุมมองในซิลิคอนวัลเลย์ และผมไม่ได้ย้ายออกไปช่วงโรคระบาด ผมสงสัยมาตลอดว่าสุดท้ายมันอาจลงเอยแบบนี้
ทุกวันนี้การเป็นนักพัฒนาซอฟต์แวร์ให้ความรู้สึกเหมือนต้องคอยรับมือกับเรื่องไร้สาระไม่รู้จบ
ผมสงสัยว่าทุกคนยังโอเคกันไหม เพราะพูดตรง ๆ คือเหนื่อยมาก การหางานเป็นกิจกรรมที่บั่นทอนจิตใจ การส่งใบสมัครกินเวลาและยุ่งยากเกินจำเป็น ให้ความรู้สึกเหมือนทำซ้ำแบบซิซิฟัส และเหมือนกำลังทิ้งชีวิตไปเปล่า ๆ เราไม่ได้เรียนรู้อะไรที่เป็นประโยชน์ ไม่ได้สร้างอะไรที่ใช้ได้จริง ไม่ได้ทำให้ส่วนไหนของชีวิตดีขึ้น และก็ดูเหมือนไม่มีวิธีอัตโนมัติที่พิสูจน์แล้วว่าช่วยได้
ผมไม่เข้าใจว่าทำไมนักพัฒนาต้องเหนื่อยขนาดนี้ ต้องรู้ทั้ง Java, JavaScript, Python, Go, ภาษาถิ่นของ SQL, สคริปต์อย่าง bash กับ awk, ansible, chef, terraform, บริการ AWS อีกหลายสิบตัว, ฐานข้อมูลหลายแบบกับรายละเอียดการติดตั้งใช้งาน, ประเภทช่องโหว่ยอดฮิต, ไปจนถึงโปรโตคอลอย่าง DNS, TCP-IP, HTTP, WebSocket และยังเหมือนต้อง กลับด้านต้นไม้ทวิภาค กลางสภาวะไร้น้ำหนักอีก
กราฟกิจกรรมบน GitHub ก็เหมือนต้องแน่นหนาราวกับภาพถ่ายทางอากาศของป่าแอมะซอน ต้องรักษาบล็อก ต้องไปพูดในคอนเฟอเรนซ์ และบางทีก็ต้องเขียนอะไรคล้ายงานวิชาการ แต่ถึงอย่างนั้นก็ยังไม่พอ ยังต้องเก่งทั้งอัลกอริทึมและโครงสร้างข้อมูล รายภาษา รายเฟรมเวิร์ก pair programming การออกแบบระบบ ผลิตภัณฑ์ ความรู้เรื่องบริษัทและอุตสาหกรรม งานมอบหมาย การพรีเซนต์เชิงเทคนิค และสัมภาษณ์ด้านบุคลิกภาพอีก
ต่อให้ได้เข้าไปทำงานบริษัทใหญ่จนรู้สึกว่า “ประสบความสำเร็จแล้ว” ก็ยังไม่เข้าใจว่าทำไมถึงรู้สึกปลอดภัยไม่ได้ ทำไมแทนที่จะได้สร้างและซ่อมสิ่งต่าง ๆ กลับต้องใช้ชีวิตอยู่ใน โหมดหางาน ตลอดเวลา
อยากรู้ว่าวิธีแบบนี้เป็นเรื่องเฉพาะของนักพัฒนาซอฟต์แวร์หรือเปล่า
การที่ recruiter ทุกคนขอเรซูเม่ ทั้งที่ข้อมูลเกือบทั้งหมดก็เหมือนกับที่อยู่บน LinkedIn ดูเหมือนเป็น สัญลักษณ์แห่งความยินยอม บางอย่างที่เอาไว้ส่งต่อให้นายจ้าง
มันให้ความรู้สึกเหมือนเรื่องเล่าที่ไปเยือนต่างวัฒนธรรม แล้วมีคนยื่นชาจากถ้วยแปลกหน้าให้ดื่ม พอจิบไปคำหนึ่งก็มีอีกคนมาบอกทีหลังว่า เมื่อกี้คุณเพิ่งแต่งงานไปแล้ว
recruiter จำนวนมากเป็นบุคคลที่สาม และงานของพวกเขาก็มักมีแค่รับเรซูเม่จากผู้สมัครแล้วส่งต่อ ทำให้กลายเป็นอีกชั้นที่งี่เง่าซึ่งไม่ได้ดีไปกว่าการสมัครแบบ cold application เท่าไร
บ่อยครั้งด้วยซ้ำที่ประกาศงานที่ recruiter เอามาเสนอ เป็นประกาศเดียวกับที่บริษัท third-party อื่น ๆ เอาไปโพสต์ซ้ำบนเว็บเดียวกันโดยไม่แก้คำบรรยายงานแม้แต่ตัวอักษรเดียว
recruiter บางคนถึงขั้นขอเป็น เอกสาร MS Word เพื่อให้ลบข้อมูลติดต่อออกแล้วแปะโลโก้ของตัวเองได้ง่าย
น่าสนใจที่มีบริษัทหนึ่งใช้ แบบทดสอบ IQ
ฉันยังไม่เคยเจออะไรแบบนั้น แต่เมื่อสัปดาห์ก่อนฉันเห็นใบสมัครงานที่ถามในแบบทดสอบ “บุคลิกภาพ” ว่าผู้สมัครลงคะแนนให้ผู้สมัครที่มีแนวคิดฝ่ายซ้ายหรือผู้สมัครที่มีแนวคิดฝ่ายขวา บริษัทนั้นอยู่ในสายเฮลท์แคร์
แล้ว GitHub ก็เคยขออนุญาตให้ AI ตรวจเรซูเม่ของฉัน ซึ่งก็ทำให้ฉันชะงักไปเหมือนกัน ฉันไม่ได้อนุญาต และรู้สึกชัดเจนเลยว่าตัวเองเสียเปรียบผู้สมัครคนอื่น
และฉันก็คิดว่าควรทำให้ แบบทดสอบบุคลิกภาพ โดยรวมผิดกฎหมายด้วย
คือแบบทดสอบที่ถามประเภทบุคลิกภาพอย่าง INFJ, INFP นั่นแหละ การเอาสิ่งนี้มาใช้กับงานสายเขียนโค้ดนี่แปลกมาก และฉันเคยคิดว่าแค่อ่าน LeetCode ก็พอแล้ว