#AskADeveloper: “Hãy giảm dần sự hào nhoáng và đưa công nghệ về vị trí thật nhất có thể.” — Nguyễn Ngọc Thịnh, Chief Technology Officer

Duyen Tran
lozi-teamblog
Published in
17 min readApr 29, 2020

This story is also available in English.

Còn nhớ những ngày cuối năm 2017, ứng dụng giao đồ ăn Loship chính thức được ra mắt thị trường. Loship nhanh chóng ghi điểm với người dùng Việt bởi chất lượng và kỹ thuật công nghệ không hề kém cạnh những đối thủ khác trong khu vực, nhất là khi chúng được “thai nghén” và phát triển bởi một đội ngũ kỹ sư Việt trẻ và tài năng.

Tua nhanh đến thời điểm hiện tại, tới nay Loship đã phát triển thành một hệ thống giao nhận và thương mại điện tử. Các nền tảng công nghệ của Loship cũng theo đó mà không ngừng thay đổi và mở rộng. Một quá trình “tiến hóa” tuy không dài, nhưng ẩn chứa trong đó là rất nhiều nỗ lực và đóng góp về mặt trí tuệ, sự cống hiến đầy chỉn chu, nhiệt huyết của đội ngũ những người Tech tại Lozi.

Trong series #AskaDeveloper lần này, hãy ngồi xuống cùng anh Nguyễn Ngọc Thịnh, Giám đốc Công nghệ, “bộ não” đằng sau những bước tiến công nghệ của Lozi. Lắng nghe anh Thịnh kể về giấc mơ và hành trình của anh từ thuở đầu Lozi “khai thiên lập quốc” cho đến một Loship “trưởng thành” ngày hôm nay.

Hey, anh có thể giới thiệu về bản thân cũng như câu chuyện của mình? Cơ duyên nào đã đưa anh đến với Lozi?

Hi em, anh tên là Nguyễn Ngọc Thịnh, đã đồng hành cùng Lozi từ những ngày đầu tiên. Vào hè năm 2013 lúc anh ở năm 3 Đại Học, trong thời gian về quê nghỉ hè thì anh nhận được cuộc gọi từ một người bạn, mời anh tham gia vào Lozi. Sau đó, anh và Trung CEO cùng người bạn đó cũng có hẹn nhau một buổi cafe để trao đổi kỹ hơn.

Thời điểm đó, anh biết đến Lozi với cái ý tưởng mạng xã hội ăn uống, anh đã nghĩ đây chắc là một dự án làm chơi cho vui thôi. Nhưng sau khi gặp Trung, nghe Trung giải thích về sản phẩm, về những ước mơ lớn và khát vọng tạo nên một sản phẩm công nghệ của người Việt, anh nhận ra rằng Lozi chính là cơ hội mà mình không thể bỏ lỡ. Và câu chuyện của anh tại Lozi bắt đầu.

Ngày anh tham gia Lozi, team ở Sài Gòn chỉ vỏn vẹn 5 người, lúc đó anh chịu trách nhiệm xây dựng tool hỗ trợ các tính năng trên website, như là xử lý địa chỉ quán ăn hay bài đăng review của khách hàng. Sau 6 tháng, anh quyết định tạm dừng công việc tại Lozi để ưu tiên hơn vào việc học. Nhưng hữu duyên ắt sẽ gặp lại, một năm sau, sau khi hoàn tất chương trình Đại Học, anh quay trở lại Lozi và viết tiếp câu chuyện của mình.

Tại sao anh lại quyết định rời Lozi sau 6 tháng vậy ạ? Và đâu là lý do khiến anh quay trở lại?

Nói về lý do anh tham gia vào Lozi trước nhé. Thứ nhất là vì yếu tố con người — đó là những người bạn, những người cộng sự đã đồng hành cùng anh ngay từ thuở ban đầu. Họ là những người tràn đầy nhiệt huyết và truyền lửa cực kỳ tốt, họ mang đến những giá trị mà anh cảm thấy choáng ngợp ở nhiều khía cạnh. Thứ hai là yếu tố sản phẩm — thời điểm đó có thể anh chưa hiểu nhiều về sản phẩm Lozi, nhưng anh nhận thấy đây là một nền tảng tạo ra giá trị trực tiếp cho cộng đồng và có khả năng tạo nên sức ảnh hưởng lớn. Thứ ba, anh muốn có thêm sự trải nghiệm mới ngoài trường học, và Lozi là cơ hội tuyệt vời.

Sau 6 tháng làm việc, anh nhận thấy có 1 vấn đề nảy sinh: lúc đó anh chỉ là chàng sinh viên năm 3 Đại Học với rất ít kinh nghiệm thực tiễn, do vậy giá trị anh đóng góp được cho công ty cũng còn hạn chế. Anh quyết định rời Lozi và quay về trường hoàn thành xong chương trình học. Những ngày tháng tiếp theo, anh đi thực tập tại một công ty tạo ra sản phẩm tầm global để gặt hái thêm kinh nghiệm cho mình. Từ đó, anh có thêm góc nhìn đa chiều và cặn kẽ hơn về thế giới ngoài kia đang vận hành như thế nào, cuộc sống startup như thế nào, và Lozi như thế nào. Mọi thứ dần trở nên rõ ràng hơn đối với anh, và anh biết mình sẽ áp dụng được những gì khi quay trở lại Lozi.

Trong suốt một năm break, suy nghĩ và tâm thế của anh vẫn luôn ở Lozi. Anh vẫn thường xuyên liên lạc với mọi người, cập nhật công việc và tìm tòi những hướng phát triển mới — cảm giác như anh vẫn luôn là một phần của Lozi. Đến nỗi có một anh trong core team thời điểm đó đã nhận xét về anh rằng: “Thịnh là một người tuy không ở Lozi, nhưng mà chưa bao giờ rời Lozi.”

Còn nói về lý do khiến anh ở lại Lozi đến bây giờ, và sẽ còn rất lâu nữa, cũng chỉ xoay quanh hai yếu tố con người và sản phẩm. Về câu chuyện con người, chắc chắn sẽ “có đi có ở”, tuy nhiên lửa nhiệt huyết thì vẫn luôn cháy trong mỗi con người chọn ở lại Lozi. Về sản phẩm, nó có phần hơi khác so với suy nghĩ của anh lúc trước. Nếu lúc trước anh chưa hiểu rõ, thì bây giờ anh đã hình dung cụ thể hơn cái impact của sản phẩm mà mình đang tạo ra với cả thế giới ngoài kia.

Lozi tăng trưởng liên tục mang lại nhiều cơ hội học hỏi, giúp anh góp phần tạo ra giá trị cho xã hội. Và chính anh cũng nhận lại những giá trị từ đó.

Anh có thể chia sẻ về công việc của mình ở cương vị Giám đốc Công nghệ của Lozi?

Anh bắt đầu đảm nhiệm vị trí CTO của Lozi vào tháng 7/2016, thời điểm này Lozi đã chuyển mình thành Loship. Công việc của anh ở cương vị này, thứ nhất là code, chắc chắn rồi! Anh dành khá nhiều thời gian trong ngày để code, đơn giản vì anh rất thích code. Nhưng mà anh sẽ code theo một cách khác so với trước kia, có thể nói là code nhanh và hiệu quả hơn gấp 3 lần. Và anh buộc phải có góc nhìn rộng hơn khi viết những dòng code, vì nó sẽ ảnh hưởng trực tiếp đến cả một business chứ không chỉ đơn thuần là một vài tính năng nhỏ lẻ.

Thứ hai là anh tập trung vào công việc optimize, đầu tư cho phát triển và vận hành. Thứ ba là câu chuyện xây dựng, quản lý team làm sản phẩm, đảm bảo sự thống nhất với mục tiêu kinh doanh và chiến lược đã đề ra.

Với anh, người ở team Tech không bao giờ là đủ. Và 1 CTO thì vẫn phải code như thường. Anh quan niệm rằng khi bạn bỏ code và tập trung vào những việc khác thì bạn sẽ không thể hiểu được những khía cạnh đang có vấn đề của sản phẩm. Sau này khi team mở rộng hơn và chúng ta có đủ người để handle từng mảng sản phẩm, anh sẽ giảm dần việc code lại, chuyển sang hướng quản lý và optimize nhiều hơn.

Cuộc sống trước và sau khi trở thành CTO có điểm gì khác biệt không ạ? Quan điểm của anh về work-life balance?

Cá nhân anh thấy không có sự khác biệt. Lúc trước anh code với một cái lửa rất lớn và bây giờ vẫn vậy. Tính chất công việc có sự chuyển biến nhẹ, nhưng nhìn chung thì cuộc sống của anh vẫn thế, anh vẫn làm 12 tiếng/ ngày.

Trước đây anh hay nói về câu chuyện cân bằng cuộc sống, work-life balance. Anh đã từng nghĩ luôn có 1 ranh giới phân chia rạch ròi, nghĩa là sau khi anh hoàn thành công việc, phần thời gian còn lại là dành cho cuộc sống, lúc đó công việc sẽ trở nên miễn nhiễm. Nhưng đó là câu chuyện cách đây 3 năm, bây giờ thì suy nghĩ của anh khác đi nhiều. Work-life balance không còn là vấn đề quan trọng và không nhất thiết phải tách biệt chúng. Điều quan trọng ở đây là ta phải tìm ra được một công việc hòa trộn với cuộc sống. Tức là tại mọi thời điểm, 2 phần đó phải tự balance với nhau và ta luôn có cảm giác cân bằng.

Work-life balance không còn là vấn đề quan trọng. Điều quan trọng ở đây là ta phải tìm ra được một công việc hòa trộn với cuộc sống.

Anh có thể chia sẻ về chiến lược thay đổi cơ sở hạ tầng để biến Lozi, từ một website review ăn uống trở thành ứng dụng thương mại điện tử và giao nhận như hiện nay?

Nói về chiến lược thì hơi “đao to búa lớn”. Tại thời điểm 2017 khi Lozi ra mắt dịch vụ Loship, những thứ mà chúng ta có hiểu biết về câu chuyện “ship” là rất hạn chế. Và chúng ta buộc phải “vừa đi vừa học”. Trước đó, Lozi đã có sẵn hệ thống về users và merchants, bài toán cần phải giải ở đây là hệ thống liên quan tới ship. Chỉ đúng 1 tháng, chúng ta đã xây dựng hoàn chỉnh hệ thống về ship, bắt đầu vận hành được câu chuyện có người đặt đơn, có tài xế nhận đơn và hoàn thành đơn.

Có thể nói, Loship được kế thừa và phát triển trên nền tảng sẵn có của Lozi nên không có quá nhiều sự thay đổi về hạ tầng. Điều quan trọng khi thiết kế hệ thống là những bước đặt nền móng đầu tiên phải thật chuẩn, may mắn là những bước đầu của Lozi đã rất vững. Core về hạ tầng của Lozi trước đó đã rất lớn, vấn đề còn lại chỉ là làm thế nào để khai thác hạ tầng đó một cách phù hợp với những dịch vụ của Loship.

Nhìn chung, sự thay đổi hạ tầng lúc đó vẫn nằm ở câu chuyện vừa đi vừa học, anh không nghĩ đó là một chiến lược quá to lớn. Một trong những giá trị cốt lõi của Lozi là “Speed matters” — Chúng ta cần câu chuyện đi nhanh. Khi ta có được phiên bản đầu tiên, sau đó mới đến giai đoạn phát triển và tối ưu hệ thống.

Với tốc độ tăng trưởng nhanh chóng của business, nền tảng công nghệ chắc chắn sẽ chịu một áp lực chuyển đổi cực lớn. Vậy anh có chiến lược như thế nào để phát triển hệ thống theo kịp với business?

Vai trò của hệ thống là không được làm trì hoãn kế hoạch phát triển của business. Để phát triển hệ thống theo kịp business, bọn anh đã lên kế hoạch trước đó rất dài. Ví dụ vào đầu năm 2020, bọn anh đã có kế hoạch phát triển hạ tầng trong nửa năm tiếp theo, đã ra quyết định làm những gì để trong nửa năm đó, hạ tầng sẽ được phát triển tới giai đoạn mong muốn.

Và một điều anh luôn nhấn mạnh là: Ngay tại mọi thời điểm, hạ tầng phải đảm bảo lượng tải gấp 10 lần so với hiện tại. Lấy ví dụ, ngay thời điểm có 100 users truy cập thì hệ thống phải đáp ứng được lượng users là 1000 người. Chỉ cần đảm bảo được điều đó thì phần lớn mọi bài toán của business sẽ được giải quyết.

Chúng ta nói về scalability. Lượng truy cập và nhu cầu người dùng ngày càng gia tăng đặt ra bài toán về khả năng mở rộng. Vậy Loship đã chuẩn bị những gì để đáp ứng yêu cầu mở rộng?

Có 2 phương án đảm bảo độ scalability của hệ thống: mở rộng theo chiều ngang và mở rộng theo chiều sâu. Hiểu đơn giản, mở rộng theo chiều ngang nghĩa là thêm những hệ thống hạ tầng liên quan đến server vào mạng lưới đang có, làm tăng khả năng chịu tải của hệ thống để đáp ứng khối lượng công việc và nhu cầu người dùng. Còn mở rộng theo chiều sâu là tối ưu bản thân từng dịch vụ, thiết kế hệ thống, các thành phần liên kết với nhau, em có thể hình dung đơn vị cơ bản của phần mềm là từng dòng code.

Bọn anh lên kế hoạch mở rộng hệ thống cho từng ngày, cả về chiều ngang và chiều sâu. Ví dụ, tháng này phải mở rộng được bao nhiêu server, tháng sau sẽ là bao nhiêu. Tất cả đều được lượng hóa tùy theo giới hạn tải của hệ thống hiện tại và khả năng chịu tải của hệ thống trong tương lai. Và như anh đã nói, ngay tại mọi thời điểm, hệ thống phải đảm bảo lượng tải gấp 10 lần so với hiện tại.

Vậy còn availability — khả năng hoạt động của hệ thống vào mọi thời điểm, đáp ứng 24/7 mọi giao dịch mà không xảy ra bất cứ downtime nào. Anh có thể chia sẻ thêm về cách thức mà Loship đã làm để đảm bảo độ availability?

Ở công ty có hệ thống monitoring & alerting giúp anh quan sát và nhận biết được hệ thống đang vận hành như thế nào, đâu là ngưỡng giới hạn mà hệ thống sẽ gặp vấn đề. Ngay tại mọi thời điểm, anh biết được chính xác trạng thái của hệ thống, server, các chỉ số về Memory, CPU, RAM,… Đây là những thước đo cơ bản giúp anh có thể chủ động theo dõi và phát hiện vấn đề trước khi chúng ảnh hưởng đến users.

Anh lấy 1 ví dụ đơn giản, mình biết khi lượng users truy cập đồng thời đạt tới ngưỡng 10.000.000 thì hệ thống sẽ gặp vấn đề. Thì trước đó, tại thời điểm hệ thống đang tải 40% so với ngưỡng, tương ứng 4.000.000 users, hệ thống monitoring & alerting đã cảnh báo cho anh biết và anh đã có những kế hoạch phản ứng thích hợp cho câu chuyện tiếp theo.

Ở thời điểm hiện tại, rất khó để hệ thống của chúng ta bị down. Tuy nhiên, giai đoạn trước đó thì cũng xảy ra khá nhiều vấn đề, vì như anh đã nói, nó giống như câu chuyện vừa đi vừa học. Là startup, chúng ta phải tự làm tất cả mọi thứ, sẽ không có ai ở đó hướng dẫn chúng ta phải làm những gì để tránh khỏi sai sót. Thậm chí là chúng ta biết trước vấn đề kèm cách xử lý, tuy nhiên, chỉ khi chúng ta gặp phải, sau đó phản ứng và xử lý vấn đề đủ nhanh, đủ tốt, chúng ta sẽ không ngừng thay đổi và tiến lên.

Về bản chất, số lần bạn gặp vấn đề không quan trọng bằng tốc độ nhận biết và xử lý vấn đề.

Ở Lozi là không có giới hạn về mặt công nghệ. Vậy, với cương vị là “bộ não” đứng đằng sau mọi công nghệ của Lozi, anh có gặp phải khó khăn gì khi áp dụng một công nghệ mới?

Từ trước đến giờ, anh luôn có một sự tự tin rất lớn là: ở Lozi không có giới hạn về mặt công nghệ, đó là 1 điểm mạnh của công ty mình. Độ tiếp cận công nghệ của các bạn khá cao, và một khi có vấn đề nảy sinh, các bạn đều có thể tự phân tích và giải quyết vấn đề. Điều quan trọng ở đây là làm sao chúng ta build được mindset cho các bạn về việc tiếp cận công nghệ mới; các bạn có thể bị động khi gặp vấn đề, nhưng phải chủ động giải quyết được nó.

Anh luôn khuyến khích các bạn trong team đọc tin tức về công nghệ mỗi ngày để nắm bắt được thế giới công nghệ ngoài kia đang chuyển động ra sao, có những cập nhật như thế nào.

Anh sẽ lấy 1 ví dụ về cách mà Lozi áp dụng công nghệ mới. Đó là câu chuyện liên quan đến hệ thống back-end diễn ra cách đây 4 năm. Tại thời điểm đó, có khá nhiều ngôn ngữ lập trình để xây dựng hệ thống back-end như Java, Php, Node Js, và Lozi quyết định chọn Golang. Golang được ra mắt vào năm 2009 và đã phát triển mạnh mẽ ở thị trường global. Thế nhưng tại thời điểm 2015, ngôn ngữ này vẫn còn rất mới ở Việt Nam và có rất ít công ty local dám apply. Có thể nói Lozi là một trong những người tiên phong. Cho đến nay, khi Golang đã trở thành xu thế thì nhiều công ty Việt Nam mới rục rịch chuyển qua, trong khi Lozi đã có base trước đó 4 năm.

Tại sao chúng ta ra quyết định chọn Golang? Thứ nhất, đó là tầm ảnh hưởng của ngôn ngữ, Golang đã (tương đối) trưởng thành, được back bởi Google, được apply bởi các công ty công nghệ trên thế giới — kèm theo đó là một cộng đồng rộng lớn. Thứ 2 là benchmark về tính bảo trì và tốc độ. Thứ 3 là điều không thể thiếu khi chọn công nghệ, đó là tính thử thách dành cho team — điều giúp các bạn có thể grow lên next level, đây cũng chính là cách anh build con người làm tech.

Dạo gần đây em thấy có những góp ý về chất lượng sản phẩm không đồng đều giữa 2 hệ điều hành iOS và Android. Anh có thể chia sẻ thêm về câu chuyện này?

Về câu chuyện chất lượng không đồng đều giữa 2 hệ điều hành, anh nghĩ ở môi trường nào cũng sẽ gặp phải vấn đề này. Cơ bản là văn hóa của iOS và Android đã rất khác nhau. Ở iOS có sự đồng nhất về thiết bị và hệ điều hành là iPhone. Android lại có rất nhiều hãng khác nhau sử dụng, mỗi hãng lại customize theo 1 kiểu dẫn đến product của Android bị phân mảnh khá nhiều.

Để đảm bảo chất lượng product trên iOS và Android có thể đồng nhất với nhau là một thử thách ngay từ gốc rễ. Tuy nhiên, sẽ luôn có cách giải quyết cho mọi vấn đề, phụ thuộc vào câu chuyện bạn làm product có tốt hay không, trình độ của các bạn có đủ cao để đáp ứng những yêu cầu của sản phẩm hay không. Chúng ta hoàn toàn có khả năng giải quyết được câu chuyện đó, điều ta cần chỉ là thời gian.

Theo em thấy là các công nghệ AI, Machine Learning, Data Mining hay Blockchain là những xu hướng phát triển công nghệ chủ đạo. Quan điểm cá nhân của anh về tiềm năng của những công nghệ này? Đâu là tương lai công nghệ mà Lozi hướng tới?

Nó sẽ phụ thuộc vào câu chuyện đó là công nghệ nào. Anh ví dụ như AI, Machine Learning hay Data Mining, đó là những xu hướng công nghệ mà chúng ta chắc chắn sẽ áp dụng và phải làm tốt trong thời gian tới, và hiện tại chúng ta đã có được hệ thống sơ khai. Còn về Blockchain, tại thời điểm hiện tại thì anh nghĩ sẽ chưa áp dụng. Mọi người thường hay nghĩ Blockchain là một công nghệ mới nổi, hấp dẫn và hào nhoáng với tiềm năng ứng dụng to lớn. Thế nhưng, việc ứng dụng công nghệ này còn tùy thuộc vào từng môi trường cụ thể. Trong thương mại điện tử, có khá nhiều điểm có thể khai thác bởi công nghệ Blockchain, tuy nhiên, ở góc độ xa hơn, anh vẫn chưa được thuyết phục bởi một ứng dụng có thể tạo ra giá trị phù hợp của việc xây dựng một hệ thống Blockchain.

Như anh nói, hiện tại chúng ta đã có hệ thống sơ khai về công nghệ AI, Machine Learning và Data Mining. Câu chuyện tiếp theo là tập trung làm tốt và tối ưu những hệ thống đó. Chúng ta còn cách vạch đích một chặng đường dài và sẽ luôn ở trên mặt trận vừa đi vừa học vừa tối ưu.

Mình trò chuyện một xíu về quan điểm làm việc của anh nhé. Anh thường tìm kiếm những tố chất gì ở những người cộng sự của mình?

Thứ nhất là Ownership: mỗi bạn phải có ownership cực kỳ cao trong từng công việc hằng ngày mà bạn làm. Thứ hai là tạo ra giá trị: bạn buộc phải tạo ra giá trị để có thể ở lại team. Và cuối cùng là trách nhiệm với công việc. Anh không đặt nặng vấn đề về mặt thời gian, các bạn được toàn quyền quyết định và sử dụng thời gian của chính mình. Sẽ không ai kè kè nhắc bạn phải làm cái này hay cái kia, mà tự bạn sẽ phải có trách nhiệm với team, với chính công việc mà mình được giao.

Nếu có ai đó tìm đến anh để xin lời khuyên về làm việc trong một startup công nghệ, anh sẽ nói gì với họ?

Các bạn đừng nghĩ rằng công nghệ là một thứ gì đó rất hào nhoáng. Chính xác công nghệ phải được dùng để tạo ra giá trị và giải quyết vấn đề cụ thể của thế giới ngoài kia. Nếu startup cứ mãi chạy theo những thứ hào nhoáng mà không giải quyết được vấn đề của người dùng, chắc chắn startup đó sẽ thất bại.

Lời khuyên của anh là hãy “ở dưới mặt đất”, giảm dần sự hào nhoáng xuống và đưa công nghệ về vị trí thật nhất có thể.

Chúng ta đã đi đến cuối cuộc trò chuyện, bây giờ là một vài câu hỏi nhanh về anh:

  • 3 từ mô tả bản thân anh tốt nhất? Thẳng thắn; bộc trực; thông minh
  • 3 điều anh thích nhất về công việc hiện tại? Thử thách; tạo ra giá trị rõ ràng; mang lại giá trị cho bản thân
  • 3 giá trị trong công việc mà anh không bao giờ thỏa hiệp? Đổ lỗi (không có ownership); vô dụng (không tạo được giá trị); lười
  • Ứng dụng yêu thích nhất của anh? Anh thích ứng dụng phải mang lại giá trị cho anh. Có thể là Medium hoặc Hacker News
  • 3 từ miêu tả về định hướng công nghệ tại Lozi? Công nghệ mang tầm global; build sản phẩm đạt chuẩn chứng nhận global; build đội ngũ talent về công nghệ top 1 Việt Nam
  • 3 từ để nói về Loship hiện tại? Đầy đủ tính năng; tạo ra giá trị; cần cải thiện thêm
  • 3 từ để nói về Loship ở tương lai? Trải nghiệm người dùng số 1, người Việt Nam thì dùng Loship, national app (hệ thống mang tầm quốc gia)

Rất cảm ơn anh Thịnh về cuộc trò chuyện thú vị này!

Trong series #AskADeveloper, ngoài những câu chuyện về anh Ngọc Thịnh CTO hay anh Cường Thịnh Product Manager, vẫn còn đó rất nhiều câu chuyện về sự trưởng thành kỳ diệu của những mảnh ghép tại Lozi. Hy vọng qua series này, bạn có thể thấy được phần nào chặng đường 5 năm phát triển với nhiều thăng trầm của Lozi, trong đó con người là nét vẽ không thể thiếu làm nên bức tranh giá trị ngày hôm nay.

Vậy còn bạn, bạn đã sẵn sàng viết nên giấc mơ lớn của chính mình và chinh phục những cột mốc thành công mới cùng Lozi? Hãy đến với chúng tôi!

Xem thêm cơ hội nghề nghiệp tại: https://lozi.vn/career/

--

--

Duyen Tran
lozi-teamblog

A highly responsible, results-driven, and detail-oriented individual with 5+ years of experience in public relations, communications, and content marketing.