Chút suy tư về sự nghiệp
Mình đã suy nghĩ nhiều về vấn đề sự nghiệp, nhất là trong những tháng gần đây, khi nhìn lại những gì đã đi qua và những gì muốn đạt được sắp tới.
Khi đang học năm thứ 4, mình bỏ học để đi làm. Hồi đó mình làm PHP, WordPress. Công ty đầu tiên mình làm là EngineThemes, cũng cùng một chủ với công ty hiện tại. Nghĩ lại còn thấy cảm kích leader của team lúc đó, đã chịu khó ngồi mấy tiếng đồng hồ để cùng phỏng vấn mình. Anh ấy hỏi mình một câu, và mình trả lời vô cùng lòng vòng, và trả lời rất nhiều. Đó là lần đầu tiên mình phỏng vấn.
Khi đó mình đã làm chuyện mà đến bây giờ mình vẫn coi trọng khi phỏng vấn một ai đó: Thể hiện sự đam mê, chân thành và chủ động. mình không thực sự biết anh Việt Anh đã nghĩ gì ở thời điểm đó, nhưng nhìn lại, mình nhận xét về lúc đó là như thế. Thực ra, trước khi đi làm, mình đã tìm hiểu về PHP nhiều. Hồi đó mình bắt đầu sự nghiệp code bằng cách mod, viết plugin cho các forum framework. Thời đó các forum rất thịnh hành, có IPB, vBulletin, mãi về sau có Xenforo. Nhưng xem cấu trúc thì mình thích IPB hơn cả, code các plugin cho nó cũng không phức tạp. Qua đó mình học được nhiều. Khi thời của các forum đi xuống, thì là lúc mọi người làm blog nhiều hơn. Thời đó WordPress là nhất, cũng nhờ thế mà mình rành WordPress trước khi ra trường. Code với WordPress thì không có gì quan trọng hơn hiểu được các hook và cách hook vận hành, đó là tất cả những gì bạn cần. Và nhờ vậy mình được nhận công việc đầu tiên.
Làm được một thời gian, mình nhận ra là thị trường của WordPress cũng chỉ tới đó mà thôi. WordPress có những vấn đề rất nghiêm trọng trong cách nó được thiết kế. Mặc dù đã có rất nhiều cách để cải thiện hiệu năng của nó, suy cho cùng không có gì là không thể, code trong core của nó cho đến bây giờ có lẽ đã không còn giống hồi trước nữa, nhưng vấn đề là nó định hình bản thân như thế nào? Nó chỉ muốn làm một CMS, việc mua lại WooCommerce cũng không thay đổi được. Nó vẫn là một CMS. Và với một CMS như thế, mình không nghĩ nó sẽ có thể mở rộng. Nên mình không muốn làm WordPress nữa. Hơn nữa, ở thời điểm đó mình nghĩ rằng mình không muốn chỉ code backend, mình luôn rất tức tối rằng mình không hiểu cách mà giao diện được hình thành. Hồi cấp 3 mình đã làm với Visual Basic, việc kéo thả giao diện là rất dễ, nhưng với những dòng code HTML, CSS mà có thể làm được giao diện thì lại quá khó. Giờ nghĩ lại, mình nghĩ cái khó ở chỗ hai khái niệm về HTML và CSS được tách ra quá rõ ràng, nên mình không mường tượng được cách mà nó phối hợp với nhau. Nhưng mình muốn học, mình muốn tự bản thân làm được một ứng dụng đầy đủ, vì thiếu các bạn frontend, mình không thể làm được gì cả. Nên mình có xin với anh lead là hãy để cho em học thêm frontend, nhưng anh ấy không chịu, anh ấy muốn mình đào sâu vào PHP hơn, để chuyên với nó, nhưng đối với mình lúc đó, mình cảm thấy mình đã làm PHP, WordPress đủ rồi, không còn gì thú vị nữa (giờ thì thấy không đúng).
Nhân lúc đang chán, thì một cơ hội lạ thường từ trên trời rơi xuống. Anh Phan An, người mà trước đó mình đã từng liên hệ, anh ấy là một nhà văn, và mình đinh ninh như thế. Anh ấy từ Singapore về, và muốn mở một văn phòng ở Việt Nam. Như buồn ngủ gặp chiếu manh, mình ngay lập tức đồng ý. Chuyển từ làm product qua làm outsource. Song mình không buồn anh Việt Anh, mình vẫn liên hệ với anh ấy sau đó, chỉ đơn giản là mình muốn bơi ở một vùng nước mới.
Đối với mình, việc học từ thực hành là quan trọng. Khi qua làm outsource, một project chỉ bao gồm một engineer và một PM, PM lại không phải là chuyên về kỹ thuật. Công ty mới này là một agency về marketing, nhưng việc thuê công ty outsource thì không phù hợp với nhu cầu scale của họ, vì vậy họ lập thêm một team developer ở Việt Nam. Trong môi trường như vậy, mình phải làm gần như là mọi thứ, ngoại trừ design. Làm việc trực tiếp với PM, làm FE, BE, thiết kế DB và phân tích các yêu cầu, tự deploy, tự lên production fix bug. Đó là đoạn thời gian hứng thú thứ hai trong sự nghiệp của mình.
Nhưng mọi thứ rất khó khăn, bên FE có một câu nói đùa là "senior FE vẫn phải lên mạng tìm cách center div đúng cách". Ừ, nó không phải là chuyện đơn giản, hai khái niệm về bố cục và về trang trí được tách biệt khỏi nhau, và giờ bạn phải gộp nó lại trong cùng một file code. Nhưng đó là đoạn thời gian mà mình làm việc thực sự hiệu quả và thực sự hạnh phúc. Có rất nhiều lần, mình làm việc tập trung, ở trạng thái flow, từ sáng tới chiều. Khi một thách thức mới được chinh phục, không còn cảm giác sung sướng nào hơn. Và có quá nhiều thứ như thế, vùng đất còn quá hoang sơ.
Nói đi thì cũng phải nói lại, sở dĩ mình được phép làm tất cả những điều đó là bởi môi trường. Chúng mình không có những buổi xây dựng văn hóa. Thứ văn hóa chúng mình có được phát triển tự nhiên và lành mạnh. Không biết vô tình hay cố ý, sếp An tuyển vào những người khá tử tế, chúng mình làm việc với nhau vui vẻ, môi trường rất empower, và an toàn. Sếp An không thường reviews code, mà mình chả biết anh ấy có reviews bao giờ không nữa, nhưng lần gần đây nhất anh ấy nói ở team hiện tại, anh ấy không reviews code. Thì đấy, nhưng quan trọng là những lần sự cố xảy ra, anh ấy luôn hướng dẫn và cùng mình khắc phục, không đổ lỗi, chỉ trích. mình rất biết ơn những tháng ngày làm việc tại đây. Nhưng sau đó anh An rời đi, mình cũng không còn lý do gì để ở lại nữa.
Bằng quen biết, mình rời qua một công ty mới, nhưng ở đây khá nhạt nhòa, không có gì nhiều để kể.
Rồi mình chuyển qua một công ty mới, Go1. mình luôn rất tự hào khi kể về công ty này. Nó là nơi mình ở ít nhất, nhưng học được rất rất rất nhiều, ngày nào đi làm ở đây cũng là một ngày "aha". Ngày phỏng vấn vào đây, cũng bình thường như những chỗ khác, mình cũng thể hiện hết những gì mà mình có. Tuy nhiên, ở đây có một vị trí mà mình chưa từng gặp, Engineering Manager, người giới thiệu rằng anh chăm lo mọi thứ cho engineer ở đây. mình không nhớ là anh Sĩ hay anh Hồng phỏng vấn mình. Nhưng mình rất nhớ cách mà anh Hồng làm việc. Go1 là một công ty về platform và solution giáo dục cho các công ty khác. Và rất hay là mặc dù mình không trải qua bất kỳ buổi training về văn hóa nào, nhưng mình cảm nhận rất rõ văn hóa học tập và chia sẻ tại đây. Dù là người mới, nhưng các anh không bao giờ bỏ mình ra khỏi một cuộc họp quan trọng nào, thậm chí mình thấy lạ là anh Hồng sao cứ kêu mình vào để nói những chuyện không liên quan tới task mà mình được giao. Anh nói về các vấn đề mà hệ thống microservice hiện tại đang gặp phải, nói rất rõ về các nỗi đau của nó, rồi nói về suy nghĩ của anh, solution mà anh vừa nghĩ ra trong đầu, và anh hỏi chúng mình về nó. Anh không biến nó thành task cho chúng mình, nhưng anh nói "các em hãy suy nghĩ về nó". Và bài học đó từ anh vẫn ảnh hưởng tới mình ở hiện tại, khi nói với các bạn mà mình muốn mentor, mình nói với các bạn về suy nghĩ của mình, về vấn đề gặp phải, mình thường cung cấp nhiều thông tin nhất có thể, mình không tỏ ra thông minh, mình chỉ muốn cho các bạn context, và cuối cùng mình nói các bạn là hãy nghĩ về nó. Thực sự, khi anh Hồng nói như thế với mình, mình đã suy nghĩ về các vấn đề đó rất nhiều, và nó ở lại trong đầu mình rất lâu. Rất biết ơn cách mà anh đã dạy mình như thế.
Không chỉ khuyến khích tự học, chủ động trong sự nghiệp của mình, ở Go1, chúng mình được nói lên suy nghĩ và mong muốn của mình. Chúng mình được giới thiệu một framework về con đường thăng tiến, chúng mình biết chính xác ma trận kỹ năng cần có của các vị trí, và khi mình muốn phấn đấu lên một vị trí nào đó, chúng mình sẽ nhìn vào ma trận đó và sẽ nói chuyện với leader của mình, hoặc sẽ theo dõi các hoạt động trong công ty và tìm cơ hội để xin được thực hiện các task nhất định để đạt được skill mà mình cần để đạt tiêu chuẩn cho vị trí đó. Khoảnh khắc mình biết được là có một framework như thế, và mọi thứ rất rõ ràng, mình đã "wow", lại một khoảnh khắc "aha" nữa.
Chúng mình được phép thử và được phép sai trong một giới hạn mà các anh leader giúp chúng mình xác định. Với một giới hạn như thế, mình có thể thoải mái mà biết rằng mình sẽ không thể gây ra tác hại nào quá lớn. Mãi về sau, khi tìm hiểu về giáo dục thì mình mới nhận ra, những giới hạn là điều vô cùng quan trọng. Khi một đứa trẻ không biết đâu là giới hạn, nó sẽ vô cùng bất an, sẽ liên tục thăm dò và chờ phản hồi để xác định các giới hạn. Bởi vậy, nhiều khi sự bướng bỉnh của con cái cũng chỉ là chúng đang thăm dò giới hạn mà thôi. Trong công việc, nếu bạn không nhận thấy giới hạn trong công việc mà mình được giao, hãy cố thăm dò nó. Nếu khó quá hoặc bạn bất an, hãy hỏi leader của mình về các giới hạn này, nhằm đảm bảo bạn không phạm những sai lầm quá nghiêm trọng đối với công ty. Điều này không có nghĩa là giới hạn sự sáng tạo của bạn, chỉ là các vấn đề về sự an toàn, về chính sách của công ty, ...
mình chỉ ở đây một thời gian ngắn, sau đó mình nhận được lời mời của anh Hoàng về việc xây dựng một ứng dụng dành cho Shopify. Đây là một lựa chọn rất khó khăn, giữa một nơi mà mình đang và sẽ học được rất nhiều với một nơi mình sẽ tự làm lại tất cả, tự đi và tự té. Sau một tuần suy nghĩ, sau khi nói chuyện với anh EM ở Go1, mình quyết định sẽ rời Go1 để tự mình xây dựng một ứng dụng mới. Một lựa chọn mà mình vẫn rất tự hào về nó. Mặc dù một điểm tối là lúc rời đi mình đã không dám nói sự thật với anh EM rằng ở bên này mình được trả lương tốt hơn bên Go1.
Một mình làm một hệ thống lớn không phải dễ, nhưng mình nghĩ sự trưởng thành lớn nhất của mình lúc này là mình không còn những suy nghĩ cố hữu khi là một developer nữa. mình học được mindset của anh Hồng. Lúc đó mình không nghĩ mình đang thiết kế hệ thống hay principal, nhưng trong suy nghĩ, mình thấy hệ thống này trong tương lai, nó sẽ có những người dev mới, nó sẽ cần phải phát triển nhanh, cần tiếp nhận cái mới, cần rũ bỏ cái cũ mà không gây ra ảnh hưởng lớn - đây là những cái mà Go1 gặp phải. Và mình nghĩ tới virus, mình muốn phần mềm của mình cũng như virus, không thể bị tiêu diệt hoàn toàn, luôn biết đổi, luôn chết đi. Trong lúc nghĩ về nó, mình không nghĩ xem mình có thể implement được hay không, mà chỉ nghĩ ra các tiêu chí cho nó, và nó vẫn luôn là tiêu chí cốt lõi của TrueProfit. Mặc dù nó cũng đem tới khá nhiều phiền toái, nhưng TrueProfit như là một tập hợp virus, nằm trong các nhóm nhất định. Bạn có thể loại bỏ một function nào đó, hoặc thay thế nó, việc đó diễn ra dễ hơn rất nhiều so với một hệ thống hướng đối tượng, monolithic. Nhưng chính thiết kế này cũng làm cho TrueProfit được release chậm hơn dự kiến rất nhiều. Điều này chỉ có thể nói cảm ơn tới anh Hoàng, đã dám nuôi nó lâu đến vậy.
Thực ra, không còn tiếp tục làm ở Go1, nên mình sẽ không thể nói lựa chọn này là may mắn hay là sai lầm, nó là một nhánh rẽ khác, trong một vũ trụ khác.
Trong thời gian làm với anh Hoàng, và sau đó là gia nhập FireGroup, mình đã có những chuyển biến mới về sự nghiệp, chuyển từ engineer trong sản phẩm, tách ra khỏi sản phẩm và làm R&D, rồi rời ra làm principal. Thực ra vị trí principal của mình hiện tại cũng không hẳn là như thế, mình ở trong một tình huống mà cái title một phần định nghĩa những gì mình làm. Điều mình muốn nhấn mạnh ở đây là mình luôn chủ động nói ra với cấp trên của mình rằng mình muốn làm gì tiếp theo, và mình không muốn làm gì. Bởi cũng có rất nhiều lúc, chỉ đơn giản là mình không muốn làm việc mình đang làm nữa, mình nói vấn đề của mình ra với cấp trên của mình. Thực sự có nhiều lúc mình muốn rời đi, nhưng nghĩ kỹ lại, mình quý trọng anh Hoàng, quý trọng những gì mà công ty đang mong muốn xây dựng (còn xây dựng tới hay không là do chính chúng ta). Nên mình bày tỏ với sếp, và rất may là công ty cũng có những vị trí phù hợp với mong muốn của mình.
Thực ra, mình là người hướng nội, làm việc giữa con người với con người là một vấn đề rất khó khăn đối với mình. mình không nhát và cũng không e thẹn. mình thích chia sẻ và thích cộng đồng, mình tham gia vào cộng đồng WordPress và host một số buổi meetup, tương tự với Vuejs và những hoạt động tương tự. Là người hướng nội, chẳng có gì sai khi cảm thấy không muốn ở trước đám đông, khi run khi đi vào đám đông, phát biểu hoặc gây chú ý, đó là điều bình thường. Khi chúng ta có sự chuẩn bị, chúng ta sẽ làm tốt. Nhưng con người không phải là một hàm, con người có quá nhiều phản ứng. Khi chơi game, billiards, đối thủ không có nhiều phản ứng, mình hoàn toàn có thể chủ động với những phản ứng của đối thủ, nhưng con người trong đời sống thì lại quá phức tạp. mình sợ phải đối mặt và làm việc với con người.
Nhưng càng làm nhiều với con người, mình càng cảm thấy thú vị. Bạn giúp một ai đó tháo gỡ một khúc mắc, tạo cho họ một bước đà, họ sẽ có thể phát triển vô cùng rực rỡ, sự thành công của họ giờ là một phần tự hào của bạn. mình thích những niềm vui, sự phát triển nơi người khác, một cách thật lòng.
Một cách nào đó, có thể nói, mình ở hiện tại là một chuỗi những may mắn và những lựa chọn chủ động. Nếu mình chỉ vào công ty, làm qua ngày, chờ đợi cấp trên tăng chức, tăng lương theo năm, mong ngóng leader promote thì thực sự chắc chẳng bao giờ phát triển nổi. Nếu bạn gặp một leader tốt, họ giúp bạn định hướng và xây dựng con đường sự nghiệp cho bạn, chủ động tạo điều kiện cho bạn, thì không có gì nhiều để nói nữa. Nhưng chẳng phải lúc nào cũng thế, và bạn phải chủ động đánh giá tình hình của mình, tự hoạch định con đường mình đi, có thể đi tìm sự giúp đỡ, nhưng tựu chung lại thì bạn vẫn phải tự thân, mở lời với leader về những gì bạn muốn, lắng nghe những gì công ty có, và tìm một điểm chung trong đó.
Suy cho cùng, leader của bạn có thể nhảy việc nay mai, 5 năm nữa mà bạn vẫn ngồi y chỗ này, thì là do bạn cả.
Ở công ty hiện tại, mặc dù vẫn chưa có một framework rõ ràng cho việc thăng tiến, các bạn có thể chưa biết mình làm sao để đạt được những gì trí trong ngành hoặc trong công ty, nhưng đáng mừng là công ty thay đổi lead nhân sự liên tục, cũng là để tìm ra người có thể giúp làm điều đó, và chỉ còn một chút nữa thôi, chúng ta sẽ có một "framework" như mình đã từng có.
Đúng, cũng có lúc mình nghĩ rằng làm văn hóa của công ty cũng chỉ là một công cụ để tư bản bốc lột nhân viên. Nhưng nghĩ lại, bạn mong đợi gì? Mong đợi văn hóa sẽ giúp bạn làm ít đi mà lương cao hơn? Điều đó chưa bao giờ là có thể, mặc dù theo một cách nào đó thì cũng có thể (gián tiếp thông qua việc tăng tỉ lệ chia sẻ), nhưng đó không phải là mục tiêu. Theo mình, việc có một văn hóa phù hợp là một điều vô cùng có ích, nó là quan hệ win-win. Nếu công ty không có văn hóa học tập như ở Go1, thì làm sao mình học được nhiều như thế? Và thiếu sự chuyển biến trong mindset do ảnh hưởng từ anh Hồng thì làm sao mình có thể đi đến thiết kế lâu dài cho TrueProfit. Nếu công ty không coi trọng sự đồng cảm, phát triển, leader của bạn sẽ chẳng thèm quan tâm bạn đang ở giai đoạn nào trong sự nghiệp, những khóa học sẽ không được diễn ra, bạn chỉ cần đến và đi, và họ sẽ tuyển những người trẻ khác, rẻ hơn bạn và giỏi hơn bạn.
Thú thật, mình rất quý team hiện tại ở AR. Các bạn nhiệt huyết, chủ động trong mọi việc, từ hồi rewrite Golang tới giờ, các bạn chẳng yêu cầu phải có một bản mô tả rõ ràng nào. Không đổ lỗi hay chờ đợi ai, khi FE cần thêm field, các bạn thêm ngay, FE và BE ngồi với nhau để giải quyết một vấn đề nào đó. Các bạn nhượng bộ nhau. Không biết các bạn nghĩ gì về những gì các bạn làm, nhưng với cảm nhận của một người từ team khác tới, mình đánh giá rất cao những gì các bạn đang có.
Các bạn chỉ thiếu một số kinh nghiệm về các tech stack đang được ứng dụng, vì dù sao đây cũng là lần đầu, việc đó rất thường. Nhưng đó cũng là một cơ hội rất lớn để tạo thêm dấu ấn phát triển của bản thân, và tạo ra giá trị cho team. Vẫn còn quá nhiều bài toán cần giải quyết: Tracing, logging, scaling, cách chia các service, feature flag, continues delivery
Quay trở lại, mình chỉ mới làm ở vị trí này một thời gian rất ngắn. Mục đích chính của vị trí này là bởi vì một bức tranh lớn hơn việc code: các product team phát triển, release các feature mới mỗi sprint, cứ qua một sprint, code base càng trở nên phức tạp hơn, tech debt nhiều hơn và team di chuyển chậm hơn, nên vị trí của mình sinh ra để đảm bảo điều đó không xảy ra, mình được kỳ vọng sẽ có thể hỗ trợ các team giải quyết các quyết định về technical hoặc bất cứ gì khác, nhằm làm sao mà về lâu về dài, vẫn đề technical phù hợp với định hướng kinh doanh của division.
Nói thật lòng, mình không thực sự biết mình cần phải làm gì cho vị trí này. Nỗ sợ lớn nhất của mình là làm cho các bạn mất đi hứng thú với công việc này. Khi nhận vị trí này mình đã nghĩ, hoặc là làm được như kỳ vọng hoặc là nghỉ luôn chứ ở lại làm gì. Ban đầu rất hứng thú, nhưng càng không nhìn thấy kết quả thì lại càng hoài nghi hơn. Có lúc mình hỏi, có lẽ nào vị trí của mình lại như một tản đá ngáng đường người khác, có người hai người nói với mình rằng "các anh cho em vào vị trí này để rồi em sẽ bị loại thải đi thôi", "đến ngày tản đá ngáng đường lớn lên hơn thì người ta sẽ đẩy đi vậy". Mình cũng nghĩ mình là tảng đá, khi các bạn đang code quá thoải mái, mình lại yêu cầu thay đổi đi, khi các bạn chẳng cần tài liệu, mình lại yêu cầu, code bình thường không khỏe người hay sao, lại code thành microservice, lại phải sửa tên function, sửa tên biến. Nhất là những lúc mình thiếu context, thiếu kỹ năng và ra những quyết định sai lầm.
Nhưng về sau, nghĩ lại, làm tảng đá cũng được, hãy cố là tảng đá có thể làm con đường thêm vững hơn. Thiếu ở đâu, học ở đó vậy.
Nhưng càng làm với mọi người, mình càng cảm thấy thích vị trí này hơn, thậm chí mình còn suy nghĩ về vị trí Engineering Manager, để mình có thể hoàn toàn suy nghĩ về phát triển con người. Nhưng vội gì nhảy đi khi vị trí hiện tại còn chưa làm xong được.
Cảm ơn anh Hoàng vẫn tin tưởng và hướng dẫn mình nhiều. Nhắc mình đặt các mục tiêu vừa phải, đừng quá ham hố mà ra các mục tiêu mơ hồ hơn.
Hy vọng mình có thể giúp tạo môi trường cho tất cả chúng ta cùng phát triển, cả leader lần engineer, lẫn mình nữa. Mình còn quá mới trong lĩnh vực này, có quá nhiều sai lầm, Mong các bạn nghiêm túc góp ý, mình luôn đánh giá cao điều đó.
Xin lỗi các bạn vì nhiều lúc mình chưa rõ ràng, bộp chộp và thiếu chắc chắn. Mình sẽ cải thiện. mình nhiều lúc nói nhiều, (nói nhiều hơn làm), mình thực sự muốn như thế, nhưng mình cũng rất dễ mất động lực, hy vọng mình sẽ cải thiện nó tốt.
p/s cảm ơn các bạn vẫn còn đọc tới đoạn này. Những lúc viết nhiều như vầy luôn làm mình nhớ tới ngày đầu đi phỏng vấn với anh Việt Anh, ôi trời, ảnh ráng chịu ngồi phỏng vấn với mình 2, 3 tiếng. Cũng làm mình nhớ tới anh Phan An, có lần mình nói với anh rằng mình ngại viết vì mình lan man lắm, ảnh nói là có sao đâu, Mạc Can còn là chúa lan man dữ nữa là. Tính ra, trong sự nghiệp của mình, toàn những anh rất hay.