Principal Software Engineer nói: “Ruby đi, dev cho nhanh”
Tự bạch JK - Principal Software Engineer của MFV
Xin chào mọi người, mình là JK, một RoR Principal Software Engineer ở MFV.
Mình thích nấu ăn, nhất là các món Trung Hoa. Mình có thể xem video về nấu ăn cả ngày không biết chán. Mình cũng rất thích các món ăn địa phương của Việt Nam nhé, nhất là các món ăn vặt. Mình còn sưu tầm cả cuốn Ăn Vặt Sài Gòn và thưởng thức hầu như toàn bộ rồi nhé.
Bên cạnh đó thì mình cũng có sở thích chơi các mini game để giải trí.
Công việc hàng ngày của một Principal Software Engineer MFV
Buổi sáng là thời điểm mình có rất nhiều năng lượng nên mình thường sử dụng để cập nhật kiến thức mới của Rails/Ruby hoặc các gem mà mình có follows, lâu lâu có những cái hay ho thì mình sẽ tìm cách để vận dụng vào tình hình các dự án hiện tại (https://www.ruby-lang.org/en/news, https://weblog.rubyonrails.org/news/, mình sử dụng RSS để feed nhé).
Kế đến mình sẽ kiểm tra lại các task còn tồn đọng trong ngày hôm qua và cập nhật list to-do và priority cho ngày hôm nay, những task nào nho nhỏ thì JK sẽ giải quyết gọn trong thời gian này luôn.
Trước daily stand-up, JK sẽ tới sớm hơn 5-10‘ để “tám" với các Forwardian trong team, chuyện thú vị nhiều vô số kể luôn.
Trong buổi daily stand-up, mọi người chia sẻ nhanh công việc của nhau cũng như lựa chọn task để hoàn thành trong ngày.
Sau đó, JK với team sẽ dành phần lớn thời gian để thảo luận và tiếp tục công việc, hỗ trợ lẫn nhau nếu cần.
Ví dụ: team sẽ xác nhận lại các điểm bất hợp lý hoặc thiếu từ business, đưa ra các ý kiến từ quan điểm developer nhằm xây dựng product tốt hơn, cùng tìm ra điểm mà user cần ở product.
Tại sao lại là RoR Software Engineer?
Trong quá khứ, JK từng tham gia viết các dự án game trên mobile, ứng dụng trên Windows. Và hiện tại thì mình đang làm về web development tại Money Forward Vietnam (MFV).
Trước khi bắt đầu vào web development thì mình cũng có tự trải nghiệm vài ngôn ngữ khác nhưng có người bạn khuyên là sử dụng RoR đi để develop cho nhanh (thật ra suy nghĩ ban đầu của mình cũng khá đơn giản, mình thấy bạn mình có vẻ giỏi về RoR nên nếu trong quá trình self-learning mà gặp vấn đề thì mình có nơi để mà hỏi. Và kể từ đó đến nay đã hơn 4 năm mình sử dụng RoR rồi nè.
Cần những điều gì để trở thành một RoR Software Engineer tại MFV?
Nhìn từ phương diện cá nhân: Mình nghĩ để làm dev thì cũng giống các ngành nghề khác, cái cần có đầu tiên đó chính là niềm đam mê code/algorithm.
Bên cạnh đó để nâng cao kiến thức thì nên có những câu hỏi "why?" cho các vấn đề hằng ngày để hoàn thiện các kỹ năng cần có nhằm nhanh tiến xa hơn.
Ví dụ, trong Ruby, có rất nhiều cách để duyệt 1 mảng, #each, #map, #map!, #select. Câu hỏi sẽ là khi nào thì mình nên sử dụng method nào (code gọn hơn, performance tốt hơn, phù hợp với business hơn, giảm thiểu các logic thừa đi, ... ).
Về RoR thì các bạn cần chủ động đọc nhiều documents chính chủ của Rails hơn, cố gắng sử dụng các tính năng mà framework Rails đang có thay vì tự chủ động giải quyết bài toán without Rails nha. Lâu dần bạn sẽ thấm nhuần quan điểm tại sao muốn release product nhanh thì mọi người hay sử dụng RoR.
Cách một kỹ sư phần mềm RoR vượt qua thử thách
Theo mình thì cách vượt qua khó khăn trong công việc đó chính là trau dồi kinh nghiệm để lường trước các khó khăn và tránh hoặc giải quyết triệt để ngay từ ban đầu. Các cách mà JK thường hay áp dụng:
- Liên quan tới các vấn đề kỹ thuật thì JK thường hay hỏi kinh nghiệm từ các bạn đồng nghiệp trước, so sánh với giải pháp mà mình đang hướng tới, rồi dựa vào nhu cầu của business mà đưa ra giải pháp tối ưu nhất.
- Follow các best practices (ví dụ Rails, Ruby) và cố gắng hiểu khi nào nên follow và khi nào thì nên bỏ qua.
Theo mình thì không có giải pháp nào là tối ưu (có thể áp dụng rập khuôn) cho toàn bộ vấn đề, mà mỗi giải pháp sẽ là tối ưu cho từng vấn đề cụ thể, nên nhiệm vụ lúc này đơn giản chỉ là hiểu tường tận các vấn đề của requirement từ business rồi tìm kiếm giải pháp cho phù hợp.
Chia sẻ điều gì khiến anh tự hào gần đây nhất nào
Điểm thú vị / khác biệt ở MFV và những nơi khác.
Các bác CxO luôn đặt con người lên hàng đầu. Công ty cũng xây dựng văn hóa hợp tác (win-win) nên mối quan hệ của mọi người rất dễ chịu và hòa đồng.
Chia sẻ thêm 1 tí đó là mình đã từng là cú đêm trước khi gia nhập MFV, mình cảm thấy khó mà có thể tỉnh táo vào buổi sáng được và giờ bắt đầu ngày mới của mình thường là 9-10h sáng.
Thế nhưng kể từ lúc ở MFV, cứ đúng 17h30-18h, bác Zuck CEO sẽ đi 1 vòng công ty để nhắc mọi người "Time to go home". Và rồi mình dần dần trải nghiệm dậy sớm và đi làm về đúng giờ, sau khi về thì có nhiều thời gian hoặc kế hoạch cho bản thân hơn.
Dần dà, kỹ năng quản lý thời gian của mình cũng tăng lên đáng kể.
Nếu phải chọn 1 MVVC mà bạn cảm thấy đồng cảm, thì đó sẽ là gì?
"Muốn đi nhanh thì đi 1 mình, muốn đi xa thì đi cùng nhau"
Khẩu hiệu của MFV là Let‘s make it! Together! Công ty mong muốn mọi người làm việc thuận hoà, cùng nhau trưởng thành. Bởi lẽ đó, JK đặc biệt thích hai Culture đó là TEAMWORK và RESPECT. JK cảm được rằng, hai Culture đó là tiền đề bồi nên khẩu hiệu của MFV.
Công ty hiện tại đang cố gắng tạo sự đa dạng văn hóa trong môi trường làm việc nên việc nhân viên tự do thể hiện cá tính cũng như điểm mạnh của mình rất được hoan nghênh (respect), và mọi người trong team sẵn sàng giúp đỡ nhau, bù đắp sự hạn chế, thiếu sót của cá nhân (teamwork) để từ đó đem lại kết quả tốt cho team cũng như cho công ty.
Dự định phát triển bản thân trong tương lai?
Mình vẫn còn đam mê với code nên dự định trong 3 năm tới mình cũng tiếp tục làm những việc liên quan tới code. Mình muốn đóng góp gì đó cho cộng đồng nên mình cũng đang follow các pull request cũng như issues của Ruby, Rails trên https://github.com/ruby/ruby, https://github.com/rails/rails và biết đâu mình sẽ trở thành ruby/rails committer :)
Author: Jim
Interviewer: JK
Các bài liên quan khác