Tôi đã lên cấp và tiến hoá như thế nào qua 6 năm lăn lộn trong ngành – Phần 2

phần trước, mình đã chia sẻ về những trải nghiệm, những điều mình đã học được khi còn ở Việt Nam và UK. Trong phần này, mình sẽ chia sẻ về những thứ giúp mình “tiến hoá” khi làm việc tại Singapore nhé.

Đây là phần 2 trong series 2 phần Tôi đã lên cấp và tiến hoá như thế nào:

Năm 5,6 – Làm Senior Full Stack Developer tại startup Algomerchant

Lúc này, do đã có kinh nghiệm nên mình chém gió phỏng vấn khá ok, vào công ty là đã có title Senior. Vị trí thì là front-end, nhưng công việc thì full-stack từ front-end đến back-end luôn.

Về sản phẩm thì mình đã kể rồi, hồi đó mình làm 1 cái app hỗ trợ trading, thu phí khách hàng 90$/tháng để tự mua/bán chứng khoán.

Gia nhập start-up, ít người, nhiều việc, mình học được rất nhiều thứ so với các công ty lớn:

  • Sales và khách hàng: Mình tham gia vào sales event của công ty để xem khách hàng là ai, làm sao sales bán được sản phẩm. Khi người dùng nhiều lên, mình nói chuyện với cả Customer Support để hiểu những vấn đề khách hàng gặp phải, những tính năng mà họ cần…
  • Build sản phẩm: Mình được build 1 sản phẩm từ đầu tới cuối, từ lúc chưa có gì tới lúc nó thành 1 sản phẩm bự, lúc cao điểm thì tổng số tiền trading lên đến 1 triệu SGD.
  • Cách đưa ra ý kiến và quyết định: Do startup ít người nên tiếng nói của mình rất có trọng lượng: Mình được quyền tranh cãi trực tiếp với PM, CTO, CEO về cách hệ thống hoạt động như thế nào. Mình học được cách dẫn chứng, thuyết phục cấp trên.
  • Cloud Computing (Azure) và Microservice: Sản phẩm khá phức tạp, nên mình phải học thêm rất nhiều thứ. Mình học việc sử dụng Cloud, tạo máy ảo, sử dụng Kubernetes này nọ. Do công ty sử dụng kiến trúc Microservice, mình mới biết Microservice viết như thế nào, các service nói chuyện với nhau ra sao, sử dụng database gì, rồi sử dụng message queue này nọ
  • Monitor hệ thống, sửa lỗi Production: Sau này khi hệ thống ổn định rồi, mình bắt đầu xây dựng các hệ thống phụ bên ngoài để mà monitoring.
    • Monitoring và logging giúp mình biết hệ thống của mình có ổn định hay không, trade được bao nhiêu tiền 1 ngày, lời lỗi ra sao, hệ thống có sập thay chết gì không
    • Hồi trước mình chỉ viết code thôi. Còn bây giờ mình làm luôn cả Operation. Code xong rồi, mình không chỉ quăng cái code cho người ta lo, mà còn phải deploy code đó lên môi trường thực tế (production) để khách hàng sử dụng
    • Lâu lâu hệ thống chạy chậm, người dùng báo lỗi, hoặc không trade được v…v, mình phải kiểm tra và sửa lỗi ngay để hệ thống hoạt động lại bình thường
Team mình hồi ở Algomerchant (mình là thanh niên áo đen bên phải)

Khối lượng công việc khá là nhiều, làm nhiều lúc mình thấy hơi mệt. Tuy nhiên, nhờ vậy mà mình học được rất nhiều thứ so với 1-2 năm đầu, mình cảm thấy khả năng code và kiến thức ngày càng tiến bộ.

Sau 2 năm, có kinh nghiệm và quan hệ, mình tự tin đi phỏng vấn và nhảy việc qua công ty khác, lương tăng gấp rưỡi.

Chuyện sau đó – Làm Senior, lên Team Lead tại 90Seconds

Từ giã AlgoMerchant, mình nhảy qua 90Seconds làm Senior Front-end Engineer. Bên 90Seconds cũng là startup, nhưng được cái team đông hơn, có cả team back-end, front-end lẫn DevOps.

Mặc dù lúc này đã hơn 5 năm kinh nghiệm, nhưng mình vẫn khá ngạc nhiên khi có rất nhiều thứ mình học được:

  • TypeScript: TypeScript là một ngôn ngữ compile ra JS, với Type Checking khá là bá đạo. Từ hồi dùng TypeScript, mình code thấy sướng và đỡ lỗi hơn hẳn. Nhắc lệnh này nọ cũng mạnh hơn, không còn vừa code vừa mò như thời JavaScript nữa
  • GraphQL: Trước giờ, để giao tiếp với server, mình toàn dùng RestAPI. Dùng GraphQL có hơi khó học hơn 1 tí, nhưng bù lại mình có thể dễ dàng kiểm soát dữ liệu nhận về. Cộng thêm TypeScript để generate type dựa theo query nữa là bá chấy luôn
  • Qui trình làm việc: May mắn là đồng nghiệp của mình khá là giỏi và thân thiện. Các team có qui trình rất bài bản: Code xong phải có Merge Request, phải được review kĩ rồi mới được merge.
    • Nhờ review code mà mình có thể hướng dẫn các bạn junior rằng code thế này có vấn đề gì, cần cải tiến như thế nào. Hoặc các bạn khác có thể chỉ mình cách cải thiện code, viết code rõ ràng, dễ hiểu hơn.
  • DevOps và CI/CD: Hồi đó team DevOps có 1 anh người Việt tên Tommy, rất là đẹp trai và tài năng. Nhờ làm chung với ảnh, mình hiểu rõ hơn về công việc của mấy anh DevOps làm trò gì, làm sao để build 1 cái CI/CD pipeline cho nó chuẩn. Làm sao để chỉ cần bấm nút là deploy code thẳng lên Production luôn.
  • Kĩ năng lead: Làm hồi lâu, chắc nhờ mình lượn lẹo hay đẹp trai hay gì đấy, nên mình được lên chức team lead. Mình phải nhận nhiều trách nhiệm hơn.
    • Thay vì chỉ ngồi code không, thì bây giờ mình lead team, phải chia công việc như thế nào để cho mọi người làm. Mệt hơn là phải nói chuyện với CEO, với các phòng ban khác, họp hành nhiều hơn để xem công ty định hướng sẽ làm cái gì. Sau đó phải cho họ biết estimation khoảng bao lâu thì xong
    • Mình cảm thấy mình phải nói nhiều hơn, ít thời gian code lại. Mình tập trung thời gian review, viết document, làm những cái linh tinh nhiều hơn. Có nhiều ngày, mình mất gần nửa ngày chỉ để phân chia task, clean backlog, giải thích, hướng dẫn cho mấy bạn Junior trong team
Team trà sữa tại 90Seconds – Cứ 2,3 hôm là mình lại kéo 1 băng đi mua trà sữa

Tạm kết

Túm cái quần lại, qua 5-6 năm, nhờ được nhiều công ty vắt sữa, à nhầm, bóc lột, thì mình đã tiến hóa từ 1 thằng Fresher ngáo ngơ lên Senior, lên Full Stack, lên Team Lead.

Mặc dù công việc không phải lúc nào cũng vui vẻ, con đường thăng tiến không phải lúc nào cũng thẳng băng, mà cũng có lắm trắc trở và gập ghềnh.

May mắn thay là mình vẫn chưa thấy… chán ngành. Mỗi ngày đi làm, mình vẫn cảm thấy có nhiều điều mình chưa biết, có nhiều thứ mình có thể học.

Sau cùng, mình chỉ có 1 lời khuyên nhỏ cho các bạn sinh viên:

  • Mới ra trường thì nên làm cho các công ty outsourcing/công ty lớn 1 thời gian. Bạn có thể học hỏi về qui trình, cách làm việc, học hỏi từ mấy ông senior
  • Làm được 2-3 năm thì nên làm ở các công ty vừa hoặc startup. Bạn sẽ được nắm nhiều trọng trách hơn, ôm đồm nhiều thứ hơn, học hỏi được nhiều hơn.
  • Từ nằm 3-4 trở đi thì cứ nhắm những chỗ nào lương ổn, công việc hay, học hỏi được nhiều thì làm thôi! Hãy kiếm những nơi mà bạn có thể học hỏi, nâng cao khả năng của mình.
  • Hãy suy nghĩ: Làm nửa năm, một năm ở đây mình có học được gì hay không? Nếu như làm nửa năm, một năm mà không tiến bộ, năm sau cũng vẫn như năm trước; thì đừng phí 1 năm của bạn, mà hãy kiếm nơi khác phù hợp hơn

Đấy, lời khuyên đến đây kà hết rồi. Blog kì này hơi dài, cảm ơn các bạn đã chịu khó xem tới cùng nha.

 

Bonus: Nếu các bạn ngại đọc thì có thể nghe clip Youtube chém gió của mình nhen. Có thể không chi tiết bằng blog nhưng cũng khá hay ho và hấp dẫn nha.

5 thoughts on “Tôi đã lên cấp và tiến hoá như thế nào qua 6 năm lăn lộn trong ngành – Phần 2”

  1. Nhảy nhiều chỗ mà toàn nhảy nội bộ 😦 chưa từng thử startup có bị gọi là FAIL không ta :((((

    Like

  2. Team 90Seconds đang xài Loopback 4 phải không ạ (do TypeScript với GraphQL là base của nó)? Em đang ý định build hệ thống trên cái base này mà ngại học thứ mới ko vì không biết nó có tiện hơn trong quá trình phát triển và vận hành không? Anh có thể so sánh nó so với bản 3 và Express được không ạ?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s