Đây là vòng đầu tiên trong quy trình phỏng vấn của GEM Corp cho vị trí Rust Dev. Phía công ty mong muốn onboarding 2-3 devs cho dự án mới làm về fintech firm của client đến từ Úc. Vòng này mình đã phỏng vấn với một bác SA cũng lớn tuổi, hơn 10 năm trong ngành tech, tên của bác là Ross
Nội dung của buổi phỏng vấn gồm 3 phần: những khái niệm cơ bản của Rust, hỏi đáp về projects đã làm với Rust, Q&A. Cảm nhận ban đầu là bác khá cởi mở, phỏng vấn không mang tính đánh đố ứng viên. Vì có background từ .NET qua, nên bác cũng chỉ hỏi mình mấy điều sau ở phần 1:
- Giải thích về ownership & borrowing trong Rust
- Sự khác nhau giữa send vs async trait
- Khái niệm về life time
- Error Handling
- Sự khác nhau giữa tokio::spawn vs tokio::task::spawn_blocking
- Unsafe Rust <— cái này mình có kể về deamon peer node chạy trên Flutter app qua flutter_rust_bridge_codegen
Đến phần tiếp theo thì mình kể về U2DPN, khi số lượng CCU vượt ngưỡng, gây CPU tăng vọt thì nguyên nhân do đâu, cách khắc phục là gì, sau đấy thì mình làm gì để điều này không bị xảy ra trong tương lai nữa. Bác cũng hỏi về việc tăng CCU đấy nó nằm trong kế hoạch của Business hay nó là Unexpected. Cơ bản ở đây mình đã point out root cause và bác cũng hiểu được câu chuyện của mình nên mọi thứ đi khá suôn.
Đến phần cuối thì mình có 2 câu hỏi cho bác, bác cũng willing to share và bảo chờ khoảng 2-3 ngày nữa sẽ nhận được feedback và kết quả nhé.
Vậy đó, hết rồi. Qua lần này thì mình nên chuẩn bị kĩ hơn trước mỗi buổi phỏng vấn, nắm chắc những khái niệm cơ bản của Rust thay vì cầu may và đi lướt trên bề mặt như hiện tại.
