Chỉ trong 3 năm từ sau khi tốt nghiệp, Thắng đã tạo ra nhiều kết quả quan trọng, mang đến những ảnh hưởng không thể thay thế tới sự phát triển của Got It.

Ngoài làm những công việc thường nhật của một Software Engineer, chàng trai 25 tuổi còn đặt nền móng cho sự hình thành của hệ thống Test Automation (kiểm thử tự động), từng là leader xây dựng Analytics Platform và hiện đang là leader của team Front End cho sản phẩm mới nhất của Got It – Conversational AI (CAI)

Lần này, mình đã có một cuộc trò chuyện rất kỹ cùng Thắng để hiểu về cách cậu giải quyết những vấn đề phức tạp, về hành trình Thắng tạo ra những đóng góp quan trọng cho team. Hãy cùng bắt đầu ngay nhé!

Cậu Intern và dòng code đầu tiên của
Test Automation System

Mình bắt đầu cuộc trò chuyện với Thắng bởi một “chiến tích” đã được nghe danh bấy lâu nay: Thắng chính là người đặt nền móng cho hệ thống Test Automation của Got It với những dòng code từ khi còn làm Intern của mình.

Hi Thắng, vì sao bạn lại nảy ra ý tưởng liên quan đến Test Automation từ khi còn làm Intern?

Thắng: Hồi đó, mình được giao việc ở team Excelchat. Lúc code, mình cần kiểm thử một tính năng liên quan đến quá trình đặt câu hỏi giữa expert (chuyên gia) và asker (người hỏi). Về sản phẩm này, khi một asker đặt câu hỏi về các vấn đề liên quan đến Excel, họ sẽ nhận được sự hỗ trợ ngay từ một expert.

Tại sao không làm một đoạn script tự động tạo ra asker, expert để các session diễn ra trong đó, và engineer chỉ cần dùng script này để kiểm thử?

Tuy nhiên, mình chợt nhận ra quá trình kiểm thử bằng tay cho từng session đang tiêu tốn quá nhiều thời gian. Điều đó khiến mình nghĩ rằng: Tại sao không làm một đoạn script tự động tạo ra asker, expert để các session diễn ra trong đó, và engineer chỉ cần dùng script này để kiểm thử?

Thế là, mình bắt đầu thử viết một đoạn code tạo ra các session tự động. Lúc ấy, mình mới chỉ viết một đoạn script bằng Selenium (công nghệ phổ biến nhất để thao tác với browser). Khi nhận thấy tiềm năng của đoạn script này, anh Vũ, mentor của mình lúc đó, đã động viên mình tìm hiểu thêm về kiểm thử tự động.

Vậy Thắng đã tìm hiểu và lựa chọn công nghệ thế nào để cho ra kết quả cuối cùng?

Thắng: Sau khi viết được đoạn script tự động bằng Selenium, bài toán mà anh mentor đặt ra cho mình lúc này là tìm một Testing Framework phù hợp.

Có một Testing Framework đồng nghĩa với việc các công việc trong Test Auto diễn ra một cách tuần tự và thống nhất, đảm đảo được khả năng mở rộng và bảo trì. Hiểu được tầm quan trọng ấy, mình đã phải nghiên cứu rất nhiều để lựa chọn được một Framework phù hợp với công ty.

Không phải trên thế giới có công nghệ gì phổ biến thì ta có thể vội vàng chạy theo và áp dụng nó một cách cứng nhắc

Framework phổ biến nhất lúc bấy giờ là Cucumber, bởi nó bố trí việc viết test case (trường hợp kiểm thử) và triển khai test script (kịch bản kiểm thử) cho từng bước rất hợp lí và dễ hiểu. Nhưng test script trong Framework này phải viết bằng Java, trong khi Got It chỉ chủ yếu sử dụng Python. Mày mò một thời gian thì mình tìm ra Behave, đó là một Framework có cách viết test case gần giống với Cucumber nhưng dùng được cho Python.

Từ trải nghiệm đó, mình nhận ra một điều rằng, không phải trên thế giới có công nghệ gì phổ biến thì ta có thể vội vàng chạy theo và áp dụng nó một cách cứng nhắc. Điều quan trọng là mình phải thực sự hiểu bản chất của nó, rồi áp dụng vào bối cảnh của từng công việc và chọn giải pháp phù hợp.

Thành quả
Lần đầu làm Tech Lead

Sau 2 năm ở Got It, Thắng vừa làm Software Engineer, vừa hỗ trợ team Test Auto cải thiện nhiều vấn đề để vận hành một hệ thống hiệu quả. Nhưng chưa có một lần nào, Thắng là người trực tiếp “lead” một team nào đó.

Mình còn nhớ y nguyên buổi All-hands Meeting vào T2/2020. Khi ấy, anh Hùng Trần thông báo với mọi người rằng: “Chúng ta sẽ có một team mới, đó là Analytics Platform, do Thắng làm leader…” Đó là lần đầu tiên chàng trai 24 tuổi đứng lên chịu trách nhiệm chính cho một sản phẩm của Got It.

All-hands Meeting là buổi họp vào sáng thứ Sáu hàng tuần của cả team Mỹ và Việt Nam
All-hands Meeting là buổi họp vào sáng thứ Sáu hàng tuần của cả team Mỹ và Việt Nam
Analytics Platform

Bạn có thể chia sẻ thêm Analytics Platform là sản phẩm gì và lý do nó ra đời không?

Thắng: Analytics Platform xuất phát từ một nhu cầu thiết yếu của công ty. Thông thường, team làm sản phẩm cần có một công cụ để đo lường độ hiệu quả của các tính năng thông qua tương tác của người dùng.

Trước đây, team mình sử dụng Mixpanel, công cụ thu thập và phân tích data hiệu quả nhất lúc bấy giờ. Nhưng chi phí bỏ ra cho Mixpanel khi ấy là quá lớn, trong khi nó lại cung cấp nhiều tính năng team không dùng đến, còn các công cụ khác thì không đem đến hiệu quả tương đương. Lúc này, team đứng trước thử thách buộc phải nghĩ ra một giải pháp lâu dài cho mình.

Cuối cùng, một quyết định then chốt đã được đưa ra: Không có cách nào tốt hơn ngoài tự tạo một công cụ cho riêng mình. Đó chính là lý do Analytics Platform ra đời. Đây là một sản phẩm nội bộ do Engineer của Got It tự xây dựng để thu thập, làm giàu dữ liệu và đưa lên Elasticsearch, giúp team đo lường độ hiệu quả của các tính năng.

Lần đầu làm Tech Lead, nhưng kiêm luôn cả Product Manager (PM)…

Đây có phải lần đầu Thắng làm leader không? Trải nghiệm lần này có gì đặc biệt?

Thắng: Đúng vậy, đây là lần đầu mình làm leader của một team có đủ cả Frontend, Backend Engineer và Tester. Điều đặc biệt hơn cả là mình vừa làm Tech Lead, nhưng cũng vừa làm PM luôn. Vì đây là một project gấp và có nhiều yêu cầu cao về kỹ thuật nên không có PM nào đủ thời gian tham gia.

Tất cả chỉ diễn ra trong một tháng, nhưng mình đã được trải nghiệm đủ cảm giác ở cả ba vị trí tech lead - PM - coder.

Khi nhận nhiệm vụ, mình tìm giải pháp, xác định specs (đặc tả) của sản phẩm, truyền lại cho Engineer thực hiện. Thông thường, đó là công việc của PM. Sau khi cả team code xong, mình lại cùng Tester kiểm thử luôn sản phẩm. Tất cả chỉ diễn ra trong một tháng, nhưng mình đã được trải nghiệm đủ cảm giác ở cả ba vị trí tech lead – PM – coder

Khi xây dựng Analytics Platform, Thắng có cảm nhận được những thay đổi nào về trình độ kỹ thuật và kỹ năng mềm ở mình không?

Thắng: Đây là lần đầu tiên mình thực sự được làm một Tech Lead. Làm leader, mình phải nghĩ về kiến trúc của cả một phần mềm chứ không đơn giản chỉ ngồi lập trình nữa. Khi chưa có một dòng code nào, Tech Lead sẽ có rất nhiều thứ phải nghiên cứu, cân nhắc để lựa chọn cách triển khai hiệu quả nhất. 

Thêm nữa, tuy mình không quá lạ lẫm với việc xây một sản phẩm mới, nhưng là một sản phẩm cần có performance ổn định để team sử dụng ngay thì đúng là lần đầu tiên. Nghĩ lại thì đúng là có rất nhiều khó khăn, cũng may là ngày nào cũng được ngồi review cùng anh Hùng Trần, được bác Gabi (Principal Architect tại Got It) giúp đỡ, không thì “chết toi” (cười).

Còn về kỹ năng mềm, đây là lần đầu mình phải giao tiếp với nhiều bên đến thế, phải quản lý công việc của một nhóm người, phải phân chia workload sao cho phù hợp. Mình vừa code phần của mình, vừa phải chịu trách nhiệm review cho các thành viên. Đáng nhớ nhất là khi mình phải kiểm tra code của Back End. Trước đây mình chỉ làm Front End thôi, nên khi review xong và sản phẩm chạy được ngon là thở phào (cười).

Thành quả
Một Front End Leader tin cậy
của sản phẩm Conversational AI (CAI)

Là một Frontend Engineer “cứng” của team, cộng thêm việc có kinh nghiệm làm leader của Analytics Platform, mình không bất ngờ khi chàng trai 25 tuổi được trở thành Front End Leader của team CAI hiện tại. Conversational AI (CAI) là nền tảng Trí tuệ Nhân tạo Hội thoại mà Got It đang xây dựng. Không chỉ phục vụ người dùng cá nhân, CAI mang trong mình tiềm năng tạo ra một cuộc cách mạng mới: Đưa AI đến với tất cả các doanh nghiệp trong việc tự động hoá quản lý trải nghiệm người dùng.

Trong những điều khiến Thắng tự hào nhất ở Got It, việc làm cuối cùng nhưng cũng rất quan trọng mà chàng trai nhắc đến chính là những thay đổi công nghệ ở CAI.

Sự “nâng cấp" công nghệ quan trọng của team Front End

Q: Thắng có từng đề cập với mình rằng bạn tự hào vì có thể thay đổi một số công nghệ cho team Front End khi làm sản phẩm CAI. Bạn có thể chia sẻ thêm không?

Thắng: (Cười) Ôi, đúng là mình cảm thấy tự hào, nhưng đó cũng chỉ là những thay đổi thiết yếu để team có thể “theo kịp thời đại” mà thôi. 

Sau 3 năm ở Got It, khi xây dựng CAI, mình nhận ra có một số công nghệ cũ team đang sử dụng cần được thay đổi. Điều đầu tiên mà team buộc phải nâng cấp đó chính là cách lập trình trong React.js. Thay vì Components, mọi người giờ đây nên áp dụng Hooks bởi đó là kiểu lập trình mới mà React.js đưa ra. Trên thế giới, hầu như không còn ai sử dụng cách cũ cho những project mới nữa.

Hai thay đổi công nghệ của team
Front End ở CAI

Thêm vào đó, trước đây, team Front End thường chỉ viết Unit Test (Kiểm thử mức đơn vị) khi làm sản phẩm. Nhưng Unit Test chỉ giúp mình kiểm tra từng file, từng hàm một, không đảm bảo output của một portal nào đó có ổn hay không. Sau khi cân nhắc, mình đã quyết định đề xuất team chuyển sang Integration Test (Kiểm thử tích hợp).

Để dễ hình dung, bạn có thể hiểu rằng chúng mình sẽ chạy một app hoàn chỉnh nhưng data không phải thật, không kết nối với một phần Back End nào cả. Việc test này sẽ đảm bảo mọi thứ hoạt động đúng khi được chuyển lên môi trường thật. Cũng may là vì mình đã từng kiểm chứng hai công nghệ này ở một sản phẩm khác trước đó nên khi sang CAI là mọi người đồng ý thay đổi theo đề xuất của mình luôn (cười).

Hành trình hoàn thiện mình, để trở thành một leader tốt hơn…

Trải qua một chặng đường dài, khi trở thành leader lần này, bạn còn gặp khó khăn gì không?

Thắng: Đúng là mỗi một vai trò mới vẫn luôn mang lại cho mình những trải nghiệm mới. Mình nhận ra rằng những bài học dành cho bản thân chưa bao giờ có giới hạn.

Khó khăn lớn nhất mình gặp phải lần này là việc cân bằng thời gian. Vì có hai thay đổi lớn về mặt công nghệ, các thành viên trong team đều cần vừa làm, vừa học. Có rất nhiều câu hỏi, vấn đề được đặt ra mà một người leader cần hỗ trợ team giải quyết. Điều này dẫn đến một tình trạng: Bình thường, mình vẫn phải làm việc, nhưng khi dành thêm thời gian để giúp đỡ, giải đáp cho mọi người, mình không còn thời gian để hoàn thành phần việc của chính mình nữa.

Thời gian ấy, mình đã phải ngồi review cùng anh Hùng Trần rất nhiều để có thể tìm biện pháp giải quyết các khó khăn. Đây cũng là lúc Got It cần phải áp dụng một cấu trúc quản lý mới bởi có rất nhiều team gặp phải tình trạng tương tự, đặc biệt là khi quy mô sản phẩm ngày càng lớn.

Buổi chia sẻ của anh Hùng Trần với team về sự thay đổi trong leadership
Buổi chia sẻ của anh Hùng Trần với team về sự thay đổi trong cấu trúc quản lý

Nhờ những định hướng của anh Hùng, mình mới nhận ra rằng: Leader không phải người đóng góp cá nhân (individual contributor) như bao thành viên khác. Thay vào đó, leader chỉ là người phụ trách những phần việc phức tạp nhất mà không ai giải quyết được, và phải biết cách phân chia khối lượng còn lại cho thành viên.

Điều quan trọng nhất là phải biết tạo động lực cho team.

Điều quan trọng nhất là phải biết tạo động lực cho team. Leader cần thuyết phục và truyền cảm hứng cho mọi người tại sao mình phải làm việc a, việc b, giúp đỡ khi họ gặp khó khăn và kiểm chứng lại chất lượng khi công việc hoàn thành.

Sau một thời gian cố gắng để thay đổi theo hướng này, mình đã thấy chất lượng công việc cải thiện đáng kể, mọi thứ đều trôi chảy hơn. Dù chưa phải là một người leader hoàn hảo nhưng hy vọng team member cũng cảm nhận được giống mình (cười).


Got It Family ❤️

Kết thúc cuộc trò chuyện, Thắng chia sẻ với mình cậu cảm thấy biết ơn vì Got It đã cho cậu nhiều cơ hội để thúc đẩy bản thân. Startup thì luôn nảy sinh rất nhiều vấn đề, nhưng chính những thử thách tưởng chừng “không lối thoát” ấy lại khiến các thành viên phải tìm tòi, áp dụng công nghệ mới và đề xuất những cách giải quyết phù hợp. Thắng coi đó chính là cách nhanh nhất để mình phát triển.

Nếu Thắng biết ơn Got It 1 lần, thì có lẽ Got It sẽ phải cảm ơn cậu gấp đôi. Ngọn lửa trong cậu từ khi còn là sinh viên thực tập 3 năm trước, đến tận hiện tại – khi cậu trở thành một leader cứng cáp của team, vẫn chưa bao giờ thay đổi. Got It có thể đem đến những cơ hội, nhưng biết cách tận dụng nó để phát triển hay không là nằm ở Thắng. Dù là 5, hay 10, 15 năm nữa, có lẽ sẽ không ai quên được dấu ấn của chàng trai trẻ này ở Test Automation System, Analytics Platform hay Conversational AI. Mình hẹn Thắng, chắc chắn sẽ có ngày mình gặp Thắng khi cậu là một Senior Software Engineer, một Tech Lead tuyệt vời của đàn em… Và ngày đó, chắc chắn sẽ không còn xa.

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
May 13, 2021
Share this post to:
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
Làm Software Engineer từ năm 3 đại học là trải nghiệm như thế nào? - Blog | Got It AI
2 years ago

[…] cầu về độ hoàn thiện sản phẩm của công ty mình khá cao. May là, chị Hoà, anh Thắng và các anh chị Engineer khác luôn đồng hành, check in với tớ hàng ngày, hàng […]

trackback
Conversational AI - Blog | Got It AI
2 years ago

[…] PPS: Bạn có thể đọc thêm về chia sẻ của các team member của CAI:Chandra Khatri – Chief Scientist, Head of CAI Thang Tran – Front-end Lead of CAI […]

Các bài viết liên quan
IELTS 7.0 và những nỗ lực bứt phá không ngừng

IELTS 7.0 và những nỗ lực bứt phá không ngừng

“Một năm rưỡi đầu tiên ở Got It, tôi tự ti kinh khủng.” Từ cậu intern part-time rụt rè, đầy tự ti về tiếng Anh và kỹ năng cứng, sau gần năm năm ở Got It, Jon đã trở thành một Backend Engineer nhiệt huyết và chỉn chu của team, một anh mentor tận tâm […]
Zero-to-one: Kyle và hành trình chinh phục giấc mơ lập trình viên chuyên nghiệp tại Got It

Zero-to-one: Kyle và hành trình chinh phục giấc mơ lập trình viên chuyên nghiệp tại Got It

Q: Xin chào Kyle, anh có thể chia sẻ với Got It E-Magazine về cơ duyên đã khiến anh biết đến Got It không? K: Bản thân anh cũng là một người rất thích tìm hiểu về mảng công nghệ và vào thời gian rảnh rỗi anh cũng tự tìm tòi ngồi học code (cười). […]
Về nhà ăn Tết – Tết trong tôi là …

Về nhà ăn Tết – Tết trong tôi là …

Gần Tết, phố xá tấp nập, không khí rộn ràng khiến lòng người thêm nô nức. Vào thời điểm này, không chốn nào có thể náo nhiệt hơn là bến xe, sân bay – nơi có những người con xa quê đang khấp khởi trở về nhà. Got It cũng có nhiều thành viên sống […]
Hành động nhỏ – Ảnh hưởng lớn

Hành động nhỏ – Ảnh hưởng lớn

Bạn biết không, trong cuộc trò chuyện giữa mình và một vài anh chị Senior Engineer, chủ đề được chúng mình đưa ra bàn luận rôm rả nhất chính là: “Điều gì đã khiến Got It thu hút trên thị trường?” Bên cạnh câu chuyện về con người, chương trình đào tạo, hay cơ hội […]
Louis – Nỗ lực tìm lối đi giữa muôn vàn ngã rẽ

Louis – Nỗ lực tìm lối đi giữa muôn vàn ngã rẽ

Vào một buổi sáng cuối thu, tôi có cơ hội gặp gỡ và trải lòng cùng Louis – Remote Engineer đầu tiên của Got It – chàng lập trình viên mang trong mình ‘một túi ba gang’ đựng đầy những trải nghiệm thú vị. Trước khi cập bến Got It tại Hà Nội, Louis từng […]
Sinh viên VinUniversity thực tập dài hạn tại Got It: Thử thách khó nhằn hay Trải nghiệm rực rỡ?

Sinh viên VinUniversity thực tập dài hạn tại Got It: Thử thách khó nhằn hay Trải nghiệm rực rỡ?

Mới thành lập được một thời gian khá ngắn, nhưng VinUniversity (gọi tắt là VinUni) đã và đang chứng tỏ bản thân là một đối thủ đáng gờm với các trường đại học có tiếng khác trong và ngoài nước qua những nỗ lực cải tiến chương trình giáo dục, tạo điều kiện hết sức […]