À chuyện là mình lại mới nghỉ việc, nghỉ việc ngay giữa mùa cô vít cô veo này, ở nhà rảnh rỗi nên mình cũng rải CV đi khắp nơi và đợi phỏng vấn online từ kha khá công ty, mình muốn chia sẻ lại một chút kinh nghiệm về cách phỏng vấn cũng như việc xem review công ty trước khi đi phỏng vấn vị trí Software Engineer.

Để mà kiếm JD thì cũng đơn giản, chỉ cần cập nhật thông tin cá nhân lên Vietnamwork, ITviec, Linkedin là tới tấp HR với headhunt vào inbox loạn xạ rồi gửi JD thôi, muốn chủ động hơn thì tự tìm công ty rồi apply vào.

Thường khi mình nộp CV với nhận lời mời phỏng vấn, thì mình sẽ lên reviewcongty.net để đọc review trước về công ty đó như thế nào, rồi môi trường làm việc ra sao, đồng nghiệp các thứ, định hướng phát triển, cũng như đủ loại chế độ lương thưởng của công ty từ những comment đấy, rồi tự đánh giá xem nơi đó có ổn không thì sẽ nộp CV vào.

Nhưng mà cũng không hẳn là sẽ dựa vào toàn bộ những review đó mà lựa chọn nộp CV, vì trên trang đấy tỉ lệ những review tiêu cực chắc chiếm tới 60% rồi, những review mang tính đóng góp cũng như khách quan thì không được nhiều, và có những công ty không có review, hoặc nhiều công ty có review tiêu cực nhưng thực tế mình phỏng vấn mình lại có cảm nhận rất là khác (khác ở mặt phỏng vấn với người tuyển dụng thôi nhé), nên cơ bản là cũng phải dựa vào phán đoán của bản thân là chính.

Mà đã dựa vào bản thân rồi thì mình căn cứ vào những tiêu chí sau đây:

  • Nội dung của JD hấp dẫn, trong yêu cầu công việc có nhiều tech stack mới lạ, nó trùng khớp với những kĩ năng mà bạn có, và những kĩ năng bạn muốn được làm sau này, được làm việc với những dự án có nghiệp vụ hay và khó: Fintech, Ví điện tử, Ngân hàng, Tài chính, Smart factory, bla blo…….
  • Benefit hấp dẫn: thực ra cái này cũng chỉ là một phần thôi nhé, vì khá nhiều công ty đưa ra benifit bừa phứa cho “vui”, kể cả là cái mức lương có thể trả cũng cho vui nốt, cái upto 3000$ 5000$ là một cái hư cấu và chỉ ghi cho nó hấp dẫn, chứ thực tế là mỗi công ty đã có một mức trần nhất định cho từng level rồi.(trừ những level cao như CTO thì mình không rõ) Nên là trước khi chấp nhận lời mời phỏng vấn thì hãy hỏi HR xem là mức lương thực sự công ty có thể trả cho vị trí bạn muốn ứng tuyển là bao nhiêu, nếu nằm trong dải mà bạn mong muốn thì chấp nhận phỏng vấn, không thì thôi, đỡ mất thời gian cả hai bên.
  • Môi trường làm việc: thường sẽ là Product/Outsource, bạn định hướng theo môi trường nào thì chọn môi trường đấy. Không môi trường nào là tốt nhất cả, có rất nhiều lý do, mỗi cái sẽ có ưu nhược khác nhau, bản chất vẫn nằm ở vấn đề tư duy con người.

Âu key, tiếp theo sẽ đến bước phỏng vấn, mà mùa dịch thế này nên là các công ty phần mềm cũng đều WFH cả nên là phỏng vấn online hết, khá là tiện, ngồi nhà phỏng vấn cho nó thoải mái, di chuyển vớ vẩn lại đóng góp ngân sách 2 củ thì nhục.

Mình nhận JD cũng khá là nhiều, nhưng phỏng vấn thì khoảng 6 công ty, có một vài công ty khá lớn trên thị trường hiện nay, tên công ty mình sẽ không đề cập ở đây, chỉ review lại một chút quá trình phỏng vấn với các anh Lead thôi.

Công ty A: đây là một công ty startup phần mềm, chủ yếu làm outsource cho thị trường Nhật là chính, mới thành lập được 1 năm và không có core product nào cả. Mình thấy cách nhà có mấy bước chân nên cũng tham gia phỏng vấn.

Trong buổi phỏng vấn chiều hôm đấy thì có ba anh chị, 1 chị HR, 1 anh CEO, 1 anh Technical Lead. Mình thấy chả hỏi gì những dự án mà mình đã tham gia hoặc là những dự án mình tâm đắc nhất cả, chỉ toàn hỏi loanh quanh mấy câu cơ bản về java, rồi spring, thêm một ít database, một ít về xử lý logic, một số cách giải quyết vấn đề của bản thân khi gặp bug, rồi đưa thêm cho mình một vài câu hỏi xử lý tình huống, rồi là định hướng phát triển của bản thân.

Tựu chung lại phần kĩ thuật mình đánh giá là ổn, còn phần offer mình đưa mức lương hơi cao nên phía công ty không đáp ứng được vì chỉ mới startup được 1 năm, không trả được mức đó. OK thôi có gì đâu, nhưng mà mình mới chỉ nói xong câu đó thì CEO chạy rồi, cũng không hỏi mình là có câu hỏi gì về phía công ty hay không, mình thấy không được chuyên nghiệp cho lắm, nhưng mà được cái là cũng gửi email báo kết quả fail, hơn khối công ty rồi ấy chứ.

Công ty B: đây là một công ty outsource cũng khá lớn, nằm ở thung lũng silicon của Việt Nam cơ mà, khá là có tiếng tăm trong mảng outsource cho Hàn, Mỹ, Âu, Nhật. Review đánh giá trên reviewcongty.net thì cứ phải gọi là tiêu cực thôi rồi.

Trong buổi phỏng vấn hôm đấy thì ngoài chị HR còn có hai anh, 1 anh Tech Lead, 1 anh Lead Frontend. Những câu hỏi thì cũng chỉ xoay quanh một số kiến thức về java core, rồi spring, phân biệt spring mvc vs spring boot, life cycle spring, một số câu về restful api, một số câu về message queue, một số câu hỏi về sql, cách xử lý trong một vài tình huống, cách tối ưu performance và đặc điểm chung của mấy công ty outsource là họ hay hỏi về store-produce. Xong rồi hỏi mình về những dự án cá nhân mình có đề cập trong CV, sau đấy thì có hỏi về cách để đánh giá một kiến trúc source code là good hay là bad, rồi có tự tin khi review code người khác không, úi giời mình tự tin lắm luôn.

Mình cũng không hỏi tuổi nhưng thấy level của anh phỏng vấn với mình cũng không khác bọt là bao, tựu chung chắc hơn mình một vài cái anh ấy đã biết thôi. Quan điểm cá nhân mình nhận được sau buổi phỏng vấn là như vậy chứ không có ý chê bai gì người phỏng vấn cả đâu nhé.

Sau đấy thì mình cũng pass, nhưng mà cân nhắc đã, vẫn muốn phỏng vấn tiếp để tăng cơ hội.

Công ty C: đây là công ty product về fintech, mới thành lập năm nay, nhưng dự án thì đang được triển khai rồi, có một số dự án hay ho về tích lũy điểm tín dụng khách hàng, cho vay vốn, áp dụng cũng đủ loại công nghệ mới nhất hiện giờ, cũng như là cách thức deploy tự động CI/CD luôn. Các phòng ban thì khá rõ ràng và đầy đủ (BA, Test, AI, Backend, Frontend, Mobile), đội ngũ dev thì cũng khá đông rồi, team java thì chưa nhiều lắm và đang cần lead.

Buổi phỏng vấn thì vẫn có ba người: chị HR, anh CTO, anh Tech Lead, và mình.

Cái hay ở công ty này là các anh ấy chỉ hỏi về những dự án mình đã làm, dự án mình tâm đắc nhất, học được những gì ở đấy, cách giải quyết vấn đề, cách tối ưu performance, một vài câu về microservice. Do mình làm nhiều dự án từ đầu đến cuối nên là quy trình phát triển một phần mềm mình nắm rất kỹ, các anh ý cứ hỏi về những cái đó thôi.

Cuối buổi thì mình có hỏi các anh ý về các dự án đang được triển khai ở công ty, quy trình làm việc giữa các phòng ban, rồi là người mới join team sẽ được làm những cái gì, chịu trách nhiệm thế nào.

Sau đấy thì mình cũng pass, và họ offer mức cũng khá ổn và đề nghị mình làm Lead team java, nhưng chỗ làm xa quá cộng thêm là startup mới thành lập nên mình cũng cảm thấy có chút xíu đắn đo và hơi rủi ro, thôi kệ đã, phỏng vấn tiếp.

Công ty D: đây là một công ty outsource viễn thông khá lớn, không phải công ty F đâu nha. Làm chủ yếu các sản phẩm cho các đối tác ở nước ngoài và những sản phẩm trong nước như ví điện tử, ngân hàng, bla blo,…..

Buổi phỏng vấn thì chỉ có mình với anh CTO, anh ấy hỏi khá kĩ về dự án mình tâm đắc và học được nhiều nhất từ đấy, rồi hỏi mình mấy câu về sql, hỏi về một vài câu về java spring, phân biệt spring mvc với spring boot, hay dùng thằng nào nhiều hơn, cách cấu hình, cách triển khai xây dựng một dự án mới toanh.

Rồi hỏi mình có biết dùng tính năng tự động kiểm tra API bằng postman khi mà chỉ sửa một phần code và có thể phần code khác cũng bị ảnh hưởng mà không biết hay không (câu này thì mình chưa dùng tính năng đó nên sau mình sẽ biên tập thành một bài riêng).

Bên này họ làm nhiều mô hình microservices nên hỏi khá nhiều và cách thức giao tiếp, rồi cách chia layer, cách kết nối các service, khi nào thì dùng restful – khi nào thì dùng message queue,….

Sau đấy thì hỏi mình về một vài Design Parttern mình hay dùng trong dự án, rồi là cách triển khai nó như thế nào, phần DP rất là hay luôn và những bạn nào muốn đi theo con đường trở thành Technical Lead thì nên đọc, học nhiều về DP.

Cuối buổi thì mình cũng hỏi anh ấy rất là kĩ về những dự án công ty đang triển khai, rồi là môi trường làm việc, quy trình làm việc, các phòng ban đội ngũ hiện tại trong công ty.

Kết thúc buổi phỏng vấn thì mình đánh giá là khá là ổn, mình cảm thấy anh CTO rất giống phong cách sếp công ty cũ nên mình cũng khá là hứng thú với công ty này. Sau đấy thì mình cũng pass.

Công ty E: đây là một công ty product con của một tập đoàn lớn, chuyên biệt mảng ví điện tử, tín dụng.

Buổi phỏng vấn đấy thì có 1 anh HR, 1 anh CTO, 1 anh CEO, 1 anh Lead team java, và mình.

Những câu hỏi thì cũng xoay quanh những dự án đã làm, học được nhiều từ những dự án nào, làm những gì ở những dự án đấy, một vài câu kĩ thuật java, rồi là DI trong spring, triển khai DI ra sao, rồi một vài câu sql, một vài câu về unit test, từng gặp khó ở vấn đề nào, cách giải quyết ra sao. Sau đấy thì mình cũng hỏi một loạt các câu hỏi về phía công ty, rồi dự án các thứ.

Sau buổi phỏng vấn thì mình cảm nhận là dự án của phía công ty khá là hay, có thể vọc vạch được nhiều, môi trường product cộng thêm chế độ làm việc cũng khá flexible nên là mình đánh giá khá cao, sau đấy thì mình cũng pass.

Công ty F: đây là một công ty khá lớn trong lĩnh vực ngân hàng, làm chuyên các dự án về tài chính.

Buổi phỏng vấn thì có 1 chị HR, 1 anh CTO, 1 anh SA, và mình.

Những câu hỏi ban đầu xoáy mạnh vào những dự án mình đã làm, những dự án mình tâm đắc nhất, cách triển khai dự án đấy, cách thực hiện, hỏi rất rất là chi tiết. từ flow nghiệp vụ cho đến cách xây dựng dự án.

Sau đó thì hỏi mình về spring mvc, hỏi rất kĩ về phần này do mình làm cũng nhiều về mvc với cả chắc bên đấy cũng đang chỉ dùng spring mvc thôi thì phải, cách cấu hình cũng như là cách xây dựng. Rồi lại đá qua cách test, hay dùng cách gì để test.

Sau đấy thì hỏi về việc dùng loại sql nào, phân biệt cách dùng orm vs native, viết như thế nào gọi là orm, viết như thế nào gọi là native. Ông nào mà không nắm kĩ thì cứ phải gọi là quay như chong chóng luôn nha, vì mình trả lời cũng nhanh nên anh ý cũng hỏi khá nhanh và nhiều.

Sau đấy đưa cho mình một bài toán và cách xây dựng giải pháp khi kết nối 1-nhiều, nhiều-nhiều, dùng annotation nào, hỏi kĩ đến mức hỏi cả dùng câu lệnh như nào luôn.

Rồi là cách để tối ưu một query bị chậm, dùng từ khóa nào, cách nhận định một query bị chậm rồi thì xử lý ra sao…cho một bài toán cụ thể và xử lý.

Gần cuối buổi thì có hỏi về cách xây dựng một giải thuật sắp xếp, mình cũng không hiểu sao lại hỏi cái này vì mình thấy nó đơn giản.

Sau rồi thì mình cũng hỏi về những dự án của công ty rồi là phòng ban các thứ, nhưng mà vì dự án mang tính private nên họ không chia sẻ, chỉ chia sẻ về domain chính thôi, còn lại là giới thiệu các phòng ban, quy trình làm việc cũng như career path ở công ty.

Cảm nhận sau buổi phỏng vấn với các anh ý thì mình thấy hỏi khá kĩ và sâu, nếu kiến thức không vững hoặc không làm nhiều là cảm thấy bị đuối ngay. Sau đấy thì mình cũng được thông báo pass và chờ offer.

Kết luận:

  • Sau những buổi phỏng vấn thế này thì mình cảm thấy sự tự tin, kỹ năng phỏng vấn, kĩ năng deal lương của bản thân tăng lên rất rất nhiều.
  • Hãy cứ đi phỏng vấn nhiều để biết được môi trường làm việc, cũng như người phỏng vấn mình họ ra làm sao, chứ không nên chỉ nhìn vào những review trên reviewcongty.net rồi là bỏ lỡ cơ hội (trừ cái công ty đầu tiên ra thì toàn bộ những công ty mình phỏng vấn nó đều khác một trời một vực với những review đấy, ít nhất về mặt phỏng vấn).
  • Việc phỏng vấn nhiều sẽ làm tăng cơ hội nhận được offer tốt nhất cho bản thân, bạn cảm thấy môi trường nào sẽ học được nhiều, sếp giỏi, chế độ lương thưởng, chế độ OT, career path rõ ràng, package theo năm nhận được nhiều thì chọn môi trường đó.

Đến đây là hết rồi, bài dài quá đi, nếu thấy hay và đem lại chút kinh nghiệm gì đó cho bạn thì hãy cho mình 1 share nha, Hùng xin cảm ơn.