Tâm sự đắng ngắt của một Principal Dev 12 năm kinh nghiệm: Có con nhỏ, cõng nợ mua nhà, và mắc kẹt trong mớ legacy code 15 năm tuổi chạy KPI bằng Jira.

Chào anh em, dạo này lướt mạng toàn thấy mấy pháp sư khoe dùng AI code nhàn hạ vãi chưởng. Nhưng đời không như mơ đâu các ông. Hôm nay mình lội Reddit nhặt được một chiếc tâm sự cay đắng của một lão Principal Dev 12 năm kinh nghiệm (chuyên Java): Bị dí làm cái máy khâu ticket trong một đống legacy code 15 năm tuổi.
Tóm tắt nhanh cho anh em lười đọc. Chủ thớt là một backend dev có số má. Bác này khởi nghiệp ở một công ty outsource kiểu Ấn Độ: code chạy được là bố, đếu ai quan tâm kiến trúc hay clean code là cái quái gì. Cứ copy-paste Stack Overflow, nhét mẹ hết vào controller, không sập server là ăn mừng.
Sau đó, bác nhảy sang làm ở vài cái bank và startup. Quyền tự quyết cao hơn, push code lên production liên tục. Mượt, nhanh, nhưng nhìn lại thì nợ kỹ thuật (technical debt) ngập đầu.
Bước ngoặt cuộc đời đến khi bác gia nhập một ngân hàng châu Âu. Ở đây, bác được "khai sáng" thứ gọi là Engineering Culture hàng real. Code chia domain rõ ràng, dùng BDD (Behavior-driven development), refactor liên tục. Ban đầu thấy team chạy chậm, sau mới ngộ ra chân lý: code sạch, cấu trúc xịn thì maintain cực sướng. Lần đầu tiên trong đời, bác thấy mình đang làm "Kỹ sư" chứ không phải thợ gõ.
Nhưng cú twist bắt đầu khi bác nhảy việc sang một cái bank bự chảng khác với cái mác hào nhoáng: "Principal Engineer". Đời không như là mơ! Nguyên cái hệ thống ở đây như cỗ cỗ máy thời gian đưa bác về chục năm trước. Controller to tổ chảng hàng ngàn dòng, business logic thì nhét thẳng vào Stored Procedures (ối giời ơi, đọc đến đây tôi cũng muốn sang chấn tâm lý). Unit test thì gần như tuyệt chủng. Team thì cắm đầu chạy KPI đóng ticket Jira. Giờ thêm mấy cái tool AI bơm thổi vào, sếp lại càng ép ra tính năng với tốc độ bàn thờ.
Trái ngang ở chỗ: Vừa mới đón con đầu lòng, lại cõng thêm quả nợ ngân hàng mua nhà. Dù ngán đến tận cổ cái cảnh mỗi ngày vào nhét thêm lệnh if vào cái file 15 năm tuổi, nhưng chủ thớt đành cắn răng ngậm bồ hòn, không dám quay xe.
Topic này hút view kinh khủng vì chạm đúng rốn của anh em dev. Cộng đồng Reddit chia phe combat nảy lửa.
Luồng ý kiến 1: Team Lý Thuyết Gia Khá nhiều anh em cho rằng: "Đã mang danh Principal thì trách nhiệm của ông là đứng lên thay đổi văn hóa công nghệ (culture) của team chứ than vãn gì!". Nhưng sự thật phũ phàng bị chủ thớt bóc trần: Lúc phỏng vấn, công ty bắt test LeetCode, hỏi dăm ba câu system design rồi ốp luôn cái title Principal. Nhưng vào làm thì đếu có quyền hành gì sất. Bác bị dùng như một "con trâu cày rank cao", chạy show qua các team Scrum, dự standup và hì hục... đóng ticket cho lẹ.
Luồng ý kiến 2: Team Thực Dụng (và hơi hèn nhưng thật) Một pháp sư ẩn danh dội ngay gáo nước lạnh: "Nếu ông không có quyền lực thực sự, cũng không được sếp support, mà cố đứng lên đòi cải tổ... thì trong mắt bọn nó, ông là một thằng phá bĩnh chứ chả giúp ích gì đâu. Tốt nhất là ngậm miệng lại và close ticket đi".
Luồng ý kiến 3: Team Đồng Cảm Nhiều anh em từng trải xác nhận: Làm bank thì hên xui. Chỗ thì engineering culture xịn xò, chỗ thì tư duy kẹt lại ở năm 2010. Cộng thêm đợt sóng AI dạo này làm mấy lão sếp non tech ảo tưởng, cứ ép "nhanh, nhanh nữa, chất lượng tính sau". Lời khuyên chung là: Chờ thị trường ấm lên, ráng lặn sâu rồi nhảy sang mấy công ty Fintech hoặc bank nhỏ nhưng stack xịn.
Câu chuyện này chua ở chỗ: Một khi các ông đã nếm mùi "Engineering culture" hàng chuẩn, bắt các ông quay lại cày mớ legacy code thì nó tởm còn hơn nhai phải sạn. Nó bào mòn đam mê kinh khủng.
Nhưng đời mà, tã sữa cho con và giấy nợ của ngân hàng nó đè bẹp mọi lý tưởng về SOLID hay Clean Code. Bài học rút ra cho anh em mình là gì?
Giữ cái mạng, giữ cái cần câu cơm trước đã. Còn nếu ức chế quá, tối về tự build pet project cho đỡ vã, chờ ngày sóng yên biển lặng rồi mình té.
Nguồn: Reddit - Senior backend dev struggling with "just ship tickets" culture