Software Engineer làm về Machine Learning: góc nhìn từ Cinnamon AI | Phần 2: khi SE làm việc độc lập
Ở phần trước với phỏng vấn của anh Harry, Cinnamon đã giới thiệu với các bạn về công việc của một SE đa nhiệm là như thế nào với nhiều đầu việc cần làm cũng như tương tác với các team khác để hoàn thành công việc. Hôm nay, chúng ta sẽ tìm hiểu một mặt khác trong team SE công ty chúng tôi — khi mà bạn một mình một chiến tuyến và vẫn “cân” được khối lượng công việc khổng lồ. Xin giới thiệu với các bạn anh Shawn, là người lên sóng tiếp theo trong series “Software Engineer làm về Machine Learning: góc nhìn từ Cinnamon AI”.
Từ C++ Dev sang Machine Learning SE
Khi mới ra trường anh làm ở Gameloft, chủ yếu làm về Game trong 1 năm sau đó chuyển sang làm Trainer (đào tạo các bạn mới vào về game engines, C++, lập trình đồ họa cho game). Sau khi làm Gameloft 4 năm thì chuyển sang Nash Tech, làm về phần mềm tài chính cho một công ty quản lý quỹ đầu tư. Project khá lớn với team ở HN hơn 80 người, sau nửa năm thì anh lên làm team lead 1 team 8 người. Cinnamon với tech stack hoàn toàn mới so với những gì anh đã biết, hồi ở Bách Khoa có học về Machine Learning, về Computer Vision, ban đầu anh muốn apply AI Researcher nhưng cuối cùng vẫn chọn làm SE vì thấy phù hợp với kinh nghiệm và sở thích hơn.
Nói về kinh nghiệm của anh với C++ thì đó là một ngôn ngữ lâu đời, và rất nhiều maintainent project, đôi khi tech stack cũng rất lỗi thời, không được update nên chuyển sang AI là cả một chân trời rộng mở. Như trước đây làm NashTech, lúc mới vào, công cụ và môi trường phát triển phần mềm đều từ 10 năm trước (ssh/vim/gcc/gdb/svn), nhưng ở Cinnamon thì khác hẳn, đều hàng mới nhất cả. Thêm nữa hiện tại bên mình cho phép mọi người khá chủ động trong việc lựa chọn những giải pháp.
Tech stack mới là một trong những điều cuốn hút ở Cinnamon, anh học được nhiều thứ và vẫn đang học được thêm rất nhiều. Về AI, thì trước khi apply vào Cinnamon, anh có học qua 1 khóa ML trên mạng, cũng không có học thêm được gì nhiều khi làm ở vị trí SE như thế này. Anh nghĩ AIR cũng cần phải có khả năng nhất định của một SE, còn một AIR muốn thành SE thì thế nào nhỉ, có lẽ là cần thành thạo một ngôn ngữ lập trình, và một số công cụ cơ bản, sau đó là tích lũy kinh nghiệm đến thiết kế hệ thống
Khi một mình “cân” cả dự án
Hiện tại anh chủ yếu làm với Aurora Clipper (dự án NLP của Cinnamon) và Ninja (một sản phẩm nội bộ). Hầu hết các project Aurora đều có những công việc chung như thiết kế và cài đặt (implement) hệ thống theo yêu cầu của khách hàng, như xử lý văn bản đầu vào — là 1 phần anh đang xây dựng. Tuy nhiên, cũng có một số task khác biệt tùy vào project, như data crawling, hay chuyển data từ dạng này sang dạng khác…Một ngày bình thường anh được code khoảng 60% thời gian.
Một mình anh làm Aurora nên có những vấn đề anh muốn thảo luận, đặc biệt là những vấn đề rất riêng của Aurora thì không tìm được người để thảo luận cùng nên đôi lúc cũng hơi khó khăn. Một vấn đề nữa là khối lượng công việc khá lớn. Để giải quyết vấn đề trên đầu tiên thì khi một task bị chững lại, anh sẽ ngừng làm task đó trong một thời gian để chuyển qua một task khác cảm thấy hiệu quả hơn, khi tỉnh táo thì trở lại làm tiếp task trước. Aurora còn rất nhiều thử thách để chinh phục, và anh cũng muốn mở rộng kinh nghiệm của mình. Vì thế anh đang chuyển hướng sang Flax đồng thời muốn để nhiều bạn khác cùng tham gia vào Aurora Hiện tại cũng có I-Shen hỗ trợ bên project Sony rồi.
Đôi khi anh thấy mình khá tách biệt, một phần do tính cách, một phần do công việc một mình làm Aurora nên các bạn ngoài dự án không hỗ trợ được nhiều, nếu như Flax thì sẽ có sự hỗ trợ, tương tác nhiều hơn. ANh chỉ thực sự làm cùng với các bạn SE khác trong team Ninja (20% resource, không nhiều lắm).
Cơ hội phát triển bản thân linh hoạt
SE bên mình yêu cầu cũng khá cao, tương đương technical lead hoặc team lead, công việc liên quan nhiều đến engineering, quyết định giải pháp nhiều hơn là cài đặt, ở Cinnamon, SE sẽ được trải nghiệm với nhiều thử tháchthú vị hơn. Anh nghĩ điều anh vừa nói đúng với tất cả các level ở Cinnamon (junior, pre-senior, senior) hoặc ít nhất là đối với Aurora.
Nói về career path, thì Genius System, OKR ở Cinnamon đều là thứ mới, đó cũng là 1 điểm linh hoạt đặc biệt là đối với những bạn trẻ chủ động, và có mục tiêu rõ ràng. Đối với cá nhân thì anh thích phát triển về mặt technical hơn — tầm 70% technical, 30% management vì anh muốn hướng đến các vị trí tech lead.
— — — — -
Các bạn quan tâm đến vị trí Software Engineer tại Cinnamon có thể tham khảo Job Description tại đây:
Nếu bạn muốn có cơ hội trao đổi thêm về công việc và lời khuyên từ team SE, hãy gửi cho Cinnamon về social@cinnamon.is hoặc inbox trực tiếp fanpage nhé! ;)