Terminal job level ใน FAANG (Facebook, Amazon, Apple, Netflix, และ Google)

Screenshot from level.fyi

เมื่อวานก่อนคุยกับเพื่อนเรื่อง Terminal job level ใน FAANG กับเรื่อง Staff Engineer ไม่ค่อยได้เขียนโค้ด เลยเอามาแชร์กันครับ

FAANG เป็นชื่อย่อของบริษัทไอทีในอเมริกา ได้แก่ Facebook, Amazon, Apple, Netflix, และ Google เป็นบริษัทที่ทุกคนรู้จัก และเหล่าคนที่ทำงานด้านเทคก็(มักจะ)อยากมีชื่อบริษัทเหล่านี้ติดใน Resume กัน

โดยแต่ละบริษัทก็จะมี Job level ในองค์กรที่ต่างกัน ถ้าเราเอามาเทียบกับความเข้าใจทั่วไป ก็จะแบ่งเป็นระดับ Junior, Mid-level, Senior, Staff, Principal, Distinguished, Fellow

ระดับที่เรารู้จักกันส่วนใหญ่คือสามระดับแรก หลังจากนั้นก็จะเป็นระดับ Staff ซึ่งจะเป็นระดับที่เนื้องานต่างจากสามระดับแรกมาก

Technical decision on ambiguity/ ตัดสินใจบนความกำกวม

Photo by Towfiqu barbhuiya on Unsplash

เมื่อวานก่อนบังเอิญเจอเพื่อนร่วมงานเก่าที่ไม่ได้เจอกันสองปีกว่า เค้าบอกว่าพรุ่งนี้จะบินไปทำงานที่ ​US แล้ว

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

แสดงความยินดี คุยกันจบ ทำให้ผมกลับมาคิด

อย่างแรกเลยคือปริมาณโปรแกรมเมอร์จบใหม่ทั่วโลก และที่เปลี่ยนสายมากำลังเพิ่มขึ้นมาก เพราะเงินเดือนที่ดีขึ้น คุณภาพงานที่ดีกว่า (ทำ remote หรือ Work From Home ได้)

แต่ปริมาณความต้องการก็เพิ่มขึ้นไม่แพ้กัน

What Got You Here Won't Get You There / อย่าคิดว่าทำแบบเดิมแล้วจะสำเร็จไปตลอด

Photo by Szabo Viktor on Unsplash

เมื่อวานก่อนบังเอิญเจอเพื่อนร่วมงานเก่าที่ไม่ได้เจอกันสองปีกว่า เค้าบอกว่าพรุ่งนี้จะบินไปทำงานที่ ​US แล้ว

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

แสดงความยินดี คุยกันจบ ทำให้ผมกลับมาคิด

จาก Definition of Done สู่ Definition of Success

Photo by Minh Pham on Unsplash

วันนี้คุยกับเมนเตอร์เรื่องทำอย่างไรเราถึงจะสร้าง Impact จากงานที่เราทำได้ ทำยังไงให้เราก้าวจาก Senior เป็นระดับ Staff หรือ Principal

คุยไปคุยมาได้ไอเดียที่จริงๆแล้วใกล้ตัวมาก แต่ไม่เคยคิดให้ลึกซึ้งมาก่อน เลยมาเล่าให้ฟังครับ

เรามักจะได้ยินคำว่า Definition of Done (DoD) กันบ่อยในโลกของอไจล์ หลักๆเลยก็มักจะระบุว่างานจะเสร็จต้องมีเทสต์ครบ ต้องพร้อมขึ้นโปรดักชั่น (Releasable) ฯลฯ

คิดและวางแผนก่อน(แก้)โค้ด

Photo by KOBU Agency on Unsplash

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

ในทางตรงกันข้าม จูเนียร์โปรแกรมเมอร์หลายคน พอคุยกันยังไม่ทันเสร็จดี จะเปิดไฟล์ขึ้นมา คิดอะไรไม่ออกใส่ For loop ทันทีเลย ไม่ได้เช็คดูด้วยซ้ำว่าไอ้โค้ดที่จะแก้นี่มันรันผ่านอยู่รึเปล่า

อันนี้ผมเจอบ่อยมาก พอผ่านไปสองช.ม. ก็จะเห็นว่านั่งงมบั๊ก ไม่แน่ใจว่าพังตรงไหน

คำถามคือ ควรจะคิดอะไร วางแผนอะไรบ้าง?​ ผมเสนอดังนี้ครับ