this is me

Lần đầu đi phỏng vấn

Đầu tháng 2 tui có đi phỏng vấn onsite lần đầu tiên trong cuộc đời. Tui chả biết phải mặc gì, nên cũng “play it safe” mà ra ngoài shop mua đại cái áo sơ mi với quần tây cho chỉnh tề. Ai ngờ vào office gặp cả team phỏng vấn mặc đồ casual, thế là uổng mấy chục đô mua đồ.

Tui vào sớm tận 20 phút nên anh teamlead rủ đi uống gì đó làm quen trước. Anh có vẻ thân thiện hơn gấp ∞ lần so với tui tưởng tượng. Thật ra pessimism và social anxiety là sở trường của tui nên hầu như trước khi gặp ai, làm việc gì tui đều có những tưởng tượng rất đáng sợ.

Anh hỏi tui uống coffee hay trà sữa. Tui không hảo coffee nên chọn qua trà sữa…mặc dù đã không uống trà sữa gần 10 năm roài. Thế là anh teamlead và tui ghé vào quán gongcha gần đó.

“Lạy trúa, em tưởng chỉ có starbucks mới order phức tạp thôi chớ? trà sữa cái mịa gì mà tùm lum option vại? “, tui ngó cái menu và bắt đầu hoảng.

Nhìn lướt qua menu, tui order đại mọi thứ gì mà tui có thể nhận dạng được. Anh nhân viên nhìn mặt tui như thể đây là lần đầu anh thấy con người. Còn tui thì toàn thân run rẩy như cầy sấy…chắc thế, tui cũng không biết cầy sấy là gì nhưng tui khá là chắc kèo là tui run bằng hoặc hơn.

Dù sao thì order cũng xong xuôi. Anh teamlead tính tiền luôn cho tui ly trà. Quá đỗi bất ngờ, tui chỉ biết quay sang cám ơn anh rối rít. Tụi tui quay lại office với 2 ly trà sữa. Tui hớp thử một ngụm………mèn, có vẻ tui đã tìm được cái combo kinh tởm nhứt mà loài người có thể order được ở gongcha.

Về tới nơi là ngay đúng giờ phỏng vấn. Đứng trong phòng phỏng vấn, nhìn ra cái khung cảnh thành phố bên ngoài cửa sổ, tui nghĩ tới tui lúc nhỏ. Tui nghĩ tới nhưng bất công mà tui đã phải gánh chịu trong cuộc sống; tui nghĩ tới những con số 4 5 6 đỏ chót trên bài kiểm tra do…không đi học thêm; tui nghĩ tới nhưng đêm mất ngủ lo về cái tương lai đang mờ nhạt dần. Sợ rằng sáng mai, khi thức dậy, nó sẽ không còn ở đó nữa. Nhưng may mắn thay, nỗi lo duy nhất của tui bây giờ là làm sao để chém gió thật ấn tượng về cái thứ mà tui đam mê nhất. Tui thở phào nhẹ nhõm…..tui đùa đấy, tui lo chết mịa đi được.

Phần 1: Coding test

Phần đầu tiên của bài phỏng vấn là 1 câu hỏi coding dễ ẹc. Tối hôm trước, tui ngồi ôn từ data structure tới algorithm, từ graph theory tới dynamic programming. Nhưng khi lên phỏng vấn lại là 1 câu hỏi na ná reverse string đơn giản, và lại còn được…xài hàm reverse built in nữa chớ.

Thế là tui giải bài trong vòng 1 phút và anh teamlead khá ấn tượng với tui…tui nghĩ thế, thấy ảnh gật đầu suốt.

Phần 2: System design

Đây là phần tui lo nhất vì trước giờ có làm system design đâu.

Và đúng như những gì tui lo sợ. Cái system tui cần design là 1 hệ thống lưu trữ bự tổ chảng. Hoảng quá nên tui xin cho đọc đề 5 phút. Mọi người gật đầu. Nhưng được chừng 2 phút, thấy không khí im lặng quá mà đầu tui thì cứ trống trơn nên thôi cứ lên bảng vẽ đại cái gì cho có đã rồi tính tiếp.

Tui vẽ rất nhiều thứ. Tui vẽ user, vẽ server, vẽ database, vẽ process. Tui cảm thấy mình thật may mắn khi sinh ra đã có khiếu vẽ. Ngày trước tui còn đại diện trường đi rớt vài kì thi nét vẽ xanh. Hôm nay tui áp dụng kinh nghiệm vẽ tích luỹ sau nhiều năm để vẽ cái server hình vuông…tròn xoe.

Tui cứ tiếp tục vẽ, bí quá lại liệt kê requirements, và lại…vẽ. Chẳng mấy chốc cái bảng (thiệt ra là cái tường) đã được bao phủ bởi 1 mạng lưới process chằng chịt, rối bù như cái headphone trong túi quần tui vậy.

Tui quay xuống nhìn anh teamlead. Ảnh vẫn gật đầu liên tục. Tui quay sang nhìn chị PM, chỉ có vẻ đang ngó nghiêng, tìm chỗ để đè ra hỏi. Tui quay qua anh DevOps, ảnh không nhìn vào design mà nhìn thẳng vào mặt tui với một lượng lớn sát khí nồng nặc…hóa ra tui đứng che cái bảng.

Chị PM là người hỏi đầu tiên, và cũng là người hỏi nhiều nhất. Chị hỏi từ chuyện làm sao để lấy được nhanh nhất một đoạn data ngắn ở giữa một chuỗi data dài thòng, tới chuyện lỡ như upload data theo gói (chunk) mà user bị rớt mạng giữa chừng thì tính sao. Tui phải rặn hết mọi loại kiến thức trong đầu về database design, indexing và networking để giải thích tại sao design của tui là tối ưu cho các trường hợp chị nêu ra. Chỉ khi tui chạm tới cái rìa của sự hiểu biết hạn hẹp của mình, thì chị mới tỏ vẻ hài lòng và nở một nụ cười thỏa mãn. Giải thích xong các câu hỏi của chị, thân nhiệt tui tăng mạnh, tay và trán toát đầy mồ hôi, phải chi mùa đông cũng có chị ghé qua nhà phỏng vấn thì đỡ tiền máy sưởi biết mấy…

Anh teamlead…vẫn gật đầu. Anh hỏi về các thứ công nghệ tui chọn. Như database thì em xài MySQL hay PostgreSQL? Tại sao chọn rứa? Cần requirement gì để deploy? Tui thì xuất thân front-end chính gốc, quanh đi quẩn lại cũng chỉ biết đi canh div cho nằm giữa trang chứ có biết ba cái database engines khác nhau chỗ nào đâu? Tui cũng đành ú ớ chém đại. May mà ảnh vẫn gật đầu.

Anh DevOps là một kiểu người trầm tính, im lặng. Nhưng hỏi câu nào là khó đỡ câu đấy. Em xài data structure gì cho cache? khi nào em invalidate cache? làm sao em đảm bảo data upload sẽ đến đúng server nếu em cho cả mớ server nằm sau load balancer?

Anh tìm được nhiều lỗ hổng trong design của tui. Nhiều lỗ lớn quá tui phải đập đi vẽ lại. Sửa xong một vài lỗi, cái design ra lò trông cũng ổn. Tui quay sang nhìn anh DevOps lần nữa để tìm sự đồng thuận. Ảnh vẫn lặng thinh.

“Này chắc rớt quá. Múa rìu chưa qua mắt thợ đã rớt giữa đường. Thôi thì mình về quê, mình nuôi cá và trồng thêm rau. ”, tui nghĩ.

Sau này quen thân anh DevOps, hỏi ra mới biết tui chém cũng khá. Chỉ là ảnh hơi ít nói, và làm chuyên technical nên khi hỏi làm tui cảm thấy sợ. Chứ thiệt ra ảnh hiền khô à.

Xong xuôi

Sau khoảng hơn 2 tiếng phỏng vấn, mọi chuyện cũng xong xuôi. Cả đám đứng dậy, tay bắt mặt mừng. Tui cám ơn mọi người vì buổi phỏng vấn, cám ơn anh teamlead vì ly trà sữa và cũng không quên để quên bà nó ly trà sữa trên bàn mà đi về luôn.

Tui cảm thấy trải nghiệm lần đầu phỏng vấn onsite của tui cũng khá “suôn sẻ”. Tui cảm thấy may mắn vì cái tưởng tượng của tui nó sai bét nhè; may mắn vì tui học được quá nhiều thứ mới chỉ trong vỏn vẹn gần 3 tiếng; may mắn vì tui tìm được nhiều thứ hay ho trong bản thân tui và cho nó uống thuốc.

Đây là những bước chân chập chững đầu tiên của tui khi bước vào đời. Khá là chắc kèo tui sẽ còn té nhiều. But you know what? Một ngày nào đó tui sẽ có thể chạy nhanh như tên bay vậy…hoặc đi bình thường thôi, có miếng stamina nào đâu mà đòi chạy?

Other posts

The lives unlived

std::mem::transmute the unsafe magic

Using mem::transmute for struct inheritance in Rust

Vấn đề về IME trên Linux

Một vấn đề muôn thuở của những IME hỗ trợ gõ tiếng Việt trên Linux là việc tương thích phương pháp gõ với cả ứng dụng lẫn người dùng.

Browser from Scratch: Introduction

This is the start of Browser from Scratch series, created to help me (and probably you too) to learn more about how a browser works by building one!

Browser from Scratch: DOM API

One of the main building blocks of the HTML rendering process is the DOM API. Before a browser can render the HTML document, it needs to parse the document content into a tree structure called the DOM tree. In this post, I'll break down my experimentation in building a DOM API with Rust.