thảo luận Cấp độ trên senior là làm những việc gì?

leuleuleu789

Senior Member
Như đã hứa với các anh em bên topic kia, hôm nay tôi lập thớt chia sẻ về tính chất công việc của những người tầm trên senior ở big tech.

Nội dung bài viết hướng đến hệ thống phân cấp ở big tech, không tính đến các cty khác. Tôi đã chứng kiến nhiều người mang title Principle hay CTO ở các cty khác nhưng khi vào big tech thì chỉ ngang với cấp bậc senior.

Để tiện cho việc tính cấp bậc, tôi lấy bậc của Facebook làm chuẩn. Bạn nào muốn biết L5 ở Facebook tương đương với bậc bao nhiêu ở Microsoft thì có thể dùng levels.fyi

Để viết về "trên senior làm gì" thì có thể phải sơ lược qua chút senior làm gì trước đã.

Senior (L5) ở big tech làm gì?
Để lên được vị trí senior ở big tech, bạn trước hết phải là một chuyên gia trong một phân khúc nhỏ: việc nào cụ thể giao cho bạn cũng làm được, và bạn có khả năng tự nghĩ ra việc được cho bản thân. Ngoài ra kĩ sư senior thường cũng phải có khả năng lãnh đạo nhóm nhỏ: từ 2-3 junior dev khác.

Ở tầm senior thì người ta không phải thắc mắc về khả năng code hoặc thuật toán của bạn nữa. Sự cách biệt giữa senior và junior thường là ở khả năng thiết kế (design) hệ thống. Nếu đếm số dòng code, thường senior dev phải có khả năng thấu hiếu đc cấu trúc của một code base từ 50k dòng đổ lại.

Staff (L6) ở big tech làm gì?

Đến tầng L6 thì hầu như không còn khái niệm "giao việc" cho kĩ sư nữa. Bạn phải hoàn toàn chịu trách nhiệm việc tự nghĩ ra việc cho bản thân và cho các đồng nghiệp xung quanh.

"Việc" ở đây nằm ở mức độ dự án (project) chứ không còn là việc vặt (task). Khi dùng từ "project", thường người ta nghĩ đến một công việc nhất định có thời gian tiến hành từ 2 quí trở lên.

Một trong những cách đơn giản nhất để phân biệt trình độ giữa L5 và L6 là mức độ to của project.

L5: project thường kéo dài 1-2 quí, lãnh đạo tối đa khoảng 3 devs.
L6: project thường kéo dài 1-2 năm, lãnh đạo tối đa từ 10-15 devs.

Để lãnh đạo các project kiểu lớn như vậy, L6 tất nhiên không chỉ mạnh về khả năng kĩ thuật mà còn phải rất mạnh về khả năng trình bày, đối thoại, và giải quyết các vấn đề về mặt con người.

Ngoài việc viết code, viết thiết kế phần mềm, lãnh đạo các dev khác, L6 thường làm thêm những phần như:
  • Đối thoại với các đội khác để thoả thuận về phần việc. Ví dụ phần mềm của bạn phụ thuộc vào library của đội X sở hữu, việc của L6 là phải đến gặp trưởng đội X và yêu cầu "tôi cần API a, b, c cho project của tôi trong vòng 2 quí tới, đội của bạn có đáp ứng được không?"
  • Nói chuyện trước đám đông: L6 thường tổ chức các buổi tech talk để quảng bá về project của đội hắn lãnh đạo. Nếu bạn chưa bao giờ nói chuyện với đám đông khoảng 50 người trở lên thì bạn nên suy tính thêm vào "nói chuyện trước đám đông" vào trong nhóm những kĩ năng bạn cần phát triển.
  • Giải quyết mâu thuẫn: nếu trong dự án lớn như vậy thì việc có nhiều định hướng kĩ thuật khác nhau là khó tránh khỏi (dùng angular hay react, dùng pytorch hay tensorflow, cải tiến hay viết lại từ đầu?...). L6 nhiệm vụ là phải đưa ra quyết định kĩ thuật hợp lí và thuyết phục đc đa số mọi người vì sao đưa ra quyết định kĩ thuật đấy. Phần này các bạn chú ý là phải dựa trên khả năng lí lẽ của bạn chứ không phải cứ lôi danh "lãnh đạo dự án" hay L6 để đưa quyết định là người ta tâm phục khẩu phục được.

1625068617607.png



Về kĩ năng code: L6 thường ko còn chú trọng quá nhiều vào việc code một phần cụ thể nào đấy mà thường đảm nhận việc kiến tạo các thành phần khác nhau trong một hệ thống software lớn. "Phần" ở đây có thể là module trong một code base đồng nhất (monolithic) hoặc từng service trong thiết kế microservices (đến đây thì khả năng tự dịch sang tiếng Việt của tôi chịu rồi :()


..L7 lần sau viết tiếp
 
những bài như này thiết thực hơn mấy bài lần trc thím đăng đấy :)
Tiếp tục nhé, thím ko viết t Việt thì t Anh cũng dc, mình nghĩ ko sao cả.

Tôi lại tưởng mấy bài trước thiết thực hơn vì hướng đến mặt bằng chung.

L6+ VN đến trên đầu ngón tay, nên các bài viết trước của tôi hướng đến phần đông đối tượng các bạn muốn đặt chân vào big tech hoặc còn băn khoăn "làm sao để biết code."
 
Tôi lại tưởng mấy bài trước thiết thực hơn vì hướng đến mặt bằng chung.

L6+ VN đến trên đầu ngón tay, nên các bài viết trước của tôi hướng đến phần đông đối tượng các bạn muốn đặt chân vào big tech hoặc còn băn khoăn "làm sao để biết code."

Uh cái thím share đấy cũng hay, nhưng chắc nó sẽ target vô đối tượng là "sinh viên" nhiều hơn, hoặc 1 số cái có thể ko match với thị trường trong nước (như cái bài lần trc cãi nhau).

Còn trên này, phần lớn là sẽ băn khoăn làm sao để lên senior thím ạ.
Nói vậy ko có nghĩa là ai cũng code tốt, nhưng mình nghĩ cái đấy là 1 chặng đường khá dài để improve. Thím share những cái về dạng idea hay giúp định hình là được.

Phần lớn mọi người ko hình dung dc công việc ở big tech như nào, nên nếu apply hay đi pv cũng theo mindset làm ở VN. Nếu có dc hình dung như bác đang share thì sẽ giúp ko chỉ trong việc interview mà cho cả công việc ở trong nước nữa.
 
Nếu đc, hy vọng bác kể sơ qua về con đường thăng tiến và bài học tâm đắc qua mỗi lần lên cấp cho ae. Bác làm sao để keep growing trong cty?

Một câu hỏi nữa là networking ở bigtech quan trọng ntn? Nếu (bị) chuyển team/project/manager thì kinh nghiệm của bác để gain trust, network là j? Có ảnh hưởng nhiều ko trong quá trình thăng tiến?
 
Uh cái thím share đấy cũng hay, nhưng chắc nó sẽ target vô đối tượng là "sinh viên" nhiều hơn, hoặc 1 số cái có thể ko match với thị trường trong nước (như cái bài lần trc cãi nhau).

Còn trên này, phần lớn là sẽ băn khoăn làm sao để lên senior thím ạ.
Nói vậy ko có nghĩa là ai cũng code tốt, nhưng mình nghĩ cái đấy là 1 chặng đường khá dài để improve. Thím share những cái về dạng idea hay giúp định hình là được.

Phần lớn mọi người ko hình dung dc công việc ở big tech như nào, nên nếu apply hay đi pv cũng theo mindset làm ở VN. Nếu có dc hình dung như bác đang share thì sẽ giúp ko chỉ trong việc interview mà cho cả công việc ở trong nước nữa.

Uh, ở đây tôi sẽ viết nhiều về "làm sao lên senior", cụ thể về việc debug phần mềm, hay viết code. Những kĩ năng 6/7 tôi sẽ sơ lược qua ở đây. Các bạn nào muốn cụ thể hơn về trải nghiệm và các bài học khi lên tầng cao thì có thể PM tôi, tại những bài kiểu đấy tôi thường viết bên reddit (bên đấy ẩn danh an toàn hơn).
 
Nếu đc, hy vọng bác kể sơ qua về con đường thăng tiến và bài học tâm đắc qua mỗi lần lên cấp cho ae. Bác làm sao để keep growing trong cty?

Một câu hỏi nữa là networking ở bigtech quan trọng ntn? Nếu (bị) chuyển team/project/manager thì kinh nghiệm của bác để gain trust, network là j? Có ảnh hưởng nhiều ko trong quá trình thăng tiến?

networking ở đâu cũng quan trọng bạn ạ. Cứ có nhiều con người với nhau, có nhiều quyền lợi là sẽ phát sinh chính trị.

"anytime you have many people working together with limited resources, politics happen"

Networking tất nhiên cũng có nhiều level khác nhau, nhiều bạn tôi thấy cứ kiểu gặp người lạ tay bắt mặt mừng, nói chuyện như quen thân đúng rồi tôi thấy thường là không hiệu quả.
 
Bên mình trên Senior (chia cấp 1..3), nếu không muốn theo phía quản lý (Lead/Manager) thì có mấy ông tạm gọi là Staff, là chuyên gia ở một/một vài lĩnh vực cực kỳ hẹp (dĩ nhiên vẫn rất khủng ở các lĩnh vực khác). thường là các cụ 20+ năm kinh nghiệm, kiến thức của họ rất sâu và đa dạng. Mấy ông này không đảm đương các nhiệm vụ quản lý hay lên giải pháp tổng quát như thím kể mà nghiêng về phía giải quyết vấn đề cụ thể + truyền kinh nghiệm nhiều hơn. Không biết ở big tech có phân chia như vậy không, ví dụ Facebook L5 trở lên?
 
Bên mình trên Senior (chia cấp 1..3), nếu không muốn theo phía quản lý (Lead/Manager) thì có mấy ông tạm gọi là Staff, là chuyên gia ở một/một vài lĩnh vực cực kỳ hẹp (dĩ nhiên vẫn rất khủng ở các lĩnh vực khác). thường là các cụ 20+ năm kinh nghiệm, kiến thức của họ rất sâu và đa dạng. Mấy ông này không đảm đương các nhiệm vụ quản lý hay lên giải pháp tổng quát như thím kể mà nghiêng về phía giải quyết vấn đề cụ thể + truyền kinh nghiệm nhiều hơn. Không biết ở big tech có phân chia như vậy không, ví dụ Facebook L5 trở lên?
Staff cũng chia làm 2 loại staff:

generalist staff: cũng làm code chung chung: frontend, backend đủ cả. Những người này thì như tôi đã nói ở trên, khả năng khác biệt của họ là ở architect hệ thống lớn, lãnh đạo kĩ thuật dev cấp dưới, thương thảo, nói chuyện với đám đông.

specialist staff: cái này thì như bạn nói là họ làm chuyên gia về một lĩnh vực gì đó khá khó mà ko phải ai cũng biết làm, vd: cryptology, IP/TCP programming...

Kinh nghiệm tôi thấy thế này:
Từ L6 trở lên: chỉ khoảng 30% là chỉ làm kĩ thuật thuần tuý, 70% là có ôm cả phần quản lí nhân sự.

Trong số kĩ thuật thuần tuý từ L6 trở lên: 70% là generalist staff, còn chỉ 30% là specialist chuyên về một mảng nào đó.
 
Càng lên cấp độ cao hơn các bạn sẽ càng để ý là kĩ năng communication và quản lý công việc lại càng chiếm vai trò quan trọng, không như lúc còn là Junior developer.

Cho nên các bạn mới ra trường hoặc Junior developer nên cân nhắc phát triển kĩ năng của mình đồng đều, đừng ôm mộng lập trình viên rockstar như trên phim ảnh, một mình cân cả thế giới, kiến thức về mặt kĩ thuật chưa phải là tất cả đâu.
 
Càng lên cấp độ cao hơn các bạn sẽ càng để ý là kĩ năng communication và quản lý công việc lại càng chiếm vai trò quan trọng, không như lúc còn là Junior developer.

Cho nên các bạn mới ra trường hoặc Junior developer nên cân nhắc phát triển kĩ năng của mình đồng đều, đừng ôm mộng lập trình viên rockstar như trên phim ảnh, một mình cân cả thế giới, kiến thức về mặt kĩ thuật chưa phải là tất cả đâu.
trình cỡ Linus thì hẵng nghĩ đến chuyện tự kỉ :big_smile:
 
Càng lên cấp độ cao hơn các bạn sẽ càng để ý là kĩ năng communication và quản lý công việc lại càng chiếm vai trò quan trọng, không như lúc còn là Junior developer.

Cho nên các bạn mới ra trường hoặc Junior developer nên cân nhắc phát triển kĩ năng của mình đồng đều, đừng ôm mộng lập trình viên rockstar như trên phim ảnh, một mình cân cả thế giới, kiến thức về mặt kĩ thuật chưa phải là tất cả đâu.
Bạn nói rất đúng. Một trong những sai lầm cơ bản của mình thời đi học là có thái độ khinh thường các môn văn học hay viết luận. Lúc nộp đơn qua Mẽo cũng nghĩ chuyện chúng nó yêu cầu viết luận cho cả ngành khoa học là chuối.

Đến lúc tôi đi làm mới thấy khả năng viết và nói sao cho hay cực kì quan trọng. Kĩ năng cứng sẽ giúp bạn có việc hoặc lên senior nhưng tiếp tục đi lên trên nữa tôi thấy quá 50% của nó là dựa trên kĩ năng mềm.
 
Uh, ở đây tôi sẽ viết nhiều về "làm sao lên senior", cụ thể về việc debug phần mềm, hay viết code. Những kĩ năng 6/7 tôi sẽ sơ lược qua ở đây. Các bạn nào muốn cụ thể hơn về trải nghiệm và các bài học khi lên tầng cao thì có thể PM tôi, tại những bài kiểu đấy tôi thường viết bên reddit (bên đấy ẩn danh an toàn hơn).
Viết tiếp đi bác :sad:
 
Back
Top