- Khi việc làm cho đúng và tốc độ nhanh của công ty xung đột với nhau, bạn sẽ chọn gì?
- Câu chuyện của kỹ sư Chris Krycho, người đã chọn vế sau trong lựa chọn giữa việc giữ vững niềm tin nhưng thỏa hiệp, hay rời đi để tìm công việc phù hợp với nguyên tắc của mình.
- Cuối cùng Chris đã rời LinkedIn để theo đuổi công việc phù hợp với các nguyên tắc của bản thân.
- Tổng hợp lại những điều anh ấy đã chia sẻ trong podcast.
- Câu chuyện của anh nhấn mạnh sự căng thẳng giữa “nhu cầu đổi mới” và “tầm quan trọng của sự lành mạnh của dự án”.
Ngày đầu tiên của Chris Krycho tại LinkedIn
- Chris gia nhập LinkedIn vào cuối tháng 1 năm 2019. Anh trải qua nhiều quy trình onboarding khác nhau vốn thường thấy ở các công ty lớn hoặc các công ty nhỏ vận hành lành mạnh.
- Chris dự định làm việc từ xa tại Colorado, nhưng hai tuần đầu anh dành cho onboarding và làm quen với đội ngũ.
Hàng triệu dòng mã
- So với kinh nghiệm ở công ty trước, anh rất bất ngờ trước quy mô của ứng dụng client frontend và các dịch vụ backend của LinkedIn.
- Frontend của LinkedIn có tới 2 triệu dòng mã, nhiều hơn rất nhiều so với toàn bộ codebase ở công ty trước của anh.
Đội hạ tầng
- Vai trò của Chris nằm trong đội hạ tầng, nhưng trọng tâm không phải là xây dựng server mà là hỗ trợ kỹ thuật hoặc cải thiện trải nghiệm nhà phát triển.
- Mục tiêu là giúp việc làm việc với ứng dụng desktop quy mô lớn của LinkedIn trở nên dễ dàng hơn.
Hiện đại hóa JavaScript
- Anh tham gia vào công việc hiện đại hóa mã thông qua việc đưa JavaScript class vào sử dụng. Trong quá trình giải quyết các vấn đề phát sinh khi dùng framework Ember, anh đã học được rất nhiều.
- Anh nhận ra rằng việc migration trong một codebase quy mô lớn cần được tự động hóa tối đa, vì khối lượng công việc này quá lớn để xử lý thủ công.
Áp dụng TypeScript
- Để giảm lỗi phát sinh ở frontend, nhóm đã quyết định chuyển sang TypeScript.
- TypeScript có thể được áp dụng dần dần, và điều này mang lại khả năng mở rộng mà LinkedIn cần.
Kế hoạch migration chậm so với 'Finger Gun's Plan'
- Chris và nhóm của anh đề xuất một kế hoạch 3–5 năm để migration mã Ember sang React, nhưng một đội khác lại đưa ra 'Finger Gun's Plan', hứa hẹn việc làm lại tổng thể và tốc độ triển khai cao.
- Sự khác biệt trong cách tiếp cận này phản ánh xung đột giữa những vấn đề mà Chris và nhóm của anh đang đối mặt với văn hóa ưu tiên tốc độ của công ty.
Trải nghiệm và những điều Chris học được
- Nhận ra vấn đề cảnh báo không đầy đủ.
- Toàn bộ server trong data center đã sập do phản ứng dây chuyền từ việc tăng mức sử dụng bộ nhớ và khởi động lại server.
- Nhóm đã cố gắng giải quyết vấn đề bằng cách reset hệ thống và điều chỉnh quyền hạn.
- Thất bại là điều không thể tránh khỏi, và kỹ nghệ phần mềm là việc thiết kế các hệ thống hỗ trợ quá trình các kỹ sư tạo ra sản phẩm đầu ra.
- Nhấn mạnh sự cần thiết của các hệ thống có khả năng phục hồi ở nhiều tầng.
Phản ứng sau sự cố
- Trong quá trình xử lý vấn đề đã phát sinh bất mãn do thiếu niềm tin từ phía quản lý.
- Bất đồng quan điểm với các kỹ sư cấp cao và vấn đề trong giao tiếp.
- Anh nhấn mạnh rằng hệ thống không chỉ phải hoạt động khi ở trạng thái tốt nhất, mà còn phải có thể hỗ trợ trong mọi tình huống.
Áp lực gia tăng
- Dù đã nỗ lực xử lý technical debt và cải thiện khả năng phục hồi, sự bất mãn từ ban điều hành vẫn gia tăng.
- Xung đột với ban điều hành, những người đòi hỏi các lời giải đơn giản cho những vấn đề phức tạp.
Tái cơ cấu tổ chức
- Tái cơ cấu tổ chức và thay đổi vai trò do 'đội Finger Guns'.
- Nhận ra những trải nghiệm mới và cơ hội học hỏi ở các vai trò khác.
Suy ngẫm và tự nhận thức
- Tự phản tỉnh thông qua kinh nghiệm trong quá khứ và tình huống hiện tại.
- Nhận ra tầm quan trọng của việc xây dựng quan hệ giữa con người và giao tiếp.
- Hiểu rằng các vấn đề kỹ thuật và vấn đề xã hội có liên kết với nhau.
Kết luận và bài học
- Chris giữ góc nhìn phê phán đối với một văn hóa coi tốc độ là giá trị ưu tiên cao nhất.
- Tìm kiếm cơ hội mới thông qua việc suy ngẫm về sự nghiệp và các giá trị cá nhân.
- Hành trình của Chris trong việc tìm một vai trò theo đuổi sự xuất sắc trong kỹ thuật vẫn tiếp tục.
Ý kiến của GN⁺
- Trải nghiệm của Chris Krycho cho thấy rất rõ xung đột giữa các nguyên tắc kỹ thuật và yêu cầu kinh doanh.
- Quyết định của anh nhấn mạnh tầm quan trọng của việc tìm ra sự cân bằng giữa giá trị cá nhân và lựa chọn nghề nghiệp.
- Việc quản lý thay đổi trong môi trường kỹ thuật quy mô lớn như LinkedIn rất phức tạp, và điều này cũng mang lại bài học quan trọng cho các công ty khác.
- Việc áp dụng các công nghệ như TypeScript có thể giúp cải thiện chất lượng mã và giảm lỗi, nhưng với codebase lớn thì cần một cách tiếp cận dần dần.
- Khi thúc đẩy những thay đổi kỹ thuật như vậy, cần cân nhắc sự cân bằng giữa trải nghiệm nhà phát triển và tốc độ phát hành sản phẩm.
1 bình luận
Ý kiến trên Hacker News