Nội dung chính
- Chào anh Hạ! Anh đến với công việc System Engineer như thế nào?
- Anh có thể định nghĩa System Engineer là gì?
- DevOps Engineer vs System Engineer có phải là một vị trí?
- Thường thì một ngày làm việc của anh sẽ như thế nào?
- Công việc System Engineer có giống với tưởng tượng ban đầu của anh không?
- Sai lầm lớn anh từng mắc phải trong công việc System Engineer là gì?
- Những kỹ năng/ tố chất cần thiết nếu muốn trở thành System Engineer?
- Mức lương và cơ hội nghề nghiệp dành cho một System Engineer? Anh có nghĩ nghề này đã “bão hòa” ?
- Novobi tuyển dụng System Engineer dựa trên những tiêu chí nào?
- Những khó khăn ít ai biết của người làm System Engineer?
- Những resource nào anh thấy có ích cho nghề System Engineer của mình?
System Engineer là người quản lý toàn bộ môi trường IT của doanh nghiệp.
Tùy vào từng công ty, System Engineer có thể được gọi là System Administrator hoặc Sysadmin. Mức lương ngành công nghệ thông tin dành cho một Senior System Engineer có thể lên đến 2000 USD.
Đọc bài phỏng vấn của ITviec với anh Nguyễn Hữu Hạ, Lead System Engineer, của Novobi để biết được:
- System Engineer là gì? Nhiệm vụ chính của System Engineer
- Sai lầm anh đã từng mắc phải khi làm System Engineer
- Các tài liệu hữu ích cho System Engineer
Tham khảo việc làm System Engineer tại ITviec.
Chào anh Hạ! Anh đến với công việc System Engineer như thế nào?
Mình tốt nghiệp khoa Khoa học và Kỹ thuật Máy tính của Đại học Bách Khoa TP.HCM năm 2012.
Vốn yêu thích system nên tháng 9/2012, mình bắt đầu công việc của một Associate System Engineer tại VNG.
Sau khoảng 1,5 năm, mình được “lên level” thành System Engineer (cười). Ở VNG, mình học được quy trình làm việc bài bản của một công ty lớn và một nền tảng kỹ thuật rất tốt đối với một System Engineer.
Đến tháng 7/2015, mình chuyển sang làm việc ở TTV Online (một công ty chuyên phát hành game online) với vị trí Lead System Engineer. Ở đây mình có thêm cơ hội (và thử thách (cười)) khi được làm việc với các thiết bị physical như server và switch ở data center (trung tâm dữ liệu).
Tháng 3/2016, mình chuyển đến MySquar và làm mảng phát hành game với vị trí Senior System Engineer. Do team mới được thành lập, nên mình kiêm nhiệm khá nhiều việc. Trong năm đầu tiên, mình vừa làm System Engineer, vừa làm Data Engineer. Sau này khi team mở rộng, mình được lên làm Lead ở cả 2 mảng System và Data.
Tháng 9/2017, mình đầu quân cho Novobi với mong muốn nâng cao kỹ năng giao tiếp tiếng Anh và tiếp cận môi trường làm việc nước ngoài.
Ở Novobi, lúc đầu mình cũng làm Senior System Engineer trước khi trở thành Lead System Engineer và làm công việc này cho đến nay.
Anh có thể định nghĩa System Engineer là gì?
System Engineer cơ bản là người quản lý toàn bộ môi trường IT của doanh nghiệp.
Có thể chia System Engineer theo nhiều cách khác nhau, chẳng hạn như chia theo đối tượng phục vụ:
- Quản trị các thiết bị cho lĩnh vực văn phòng: máy tính, máy in, mail servers…
- Quản trị cho các hệ thống phục vụ end-user.
- Dùng để quản trị hạ tầng, đảm bảo hệ thống server, network ổn định cho các System Engineer khác.
Tùy vào từng công ty, System Engineer có thể được gọi là System Administrator hoặc Sysadmin.
DevOps Engineer vs System Engineer có phải là một vị trí?
Thực tế, mình nghĩ DevOps không phải là một nghề, nó là một văn hóa. Theo bản thân mình, ranh giới giữa System Engineer ( hoặc System Admin) với DevOps rất nhỏ.
Nhiều khi một bạn System Engineer chuyển qua công ty mới là được gán cho vị trí DevOps Engineer ngay.
Thường thì một ngày làm việc của anh sẽ như thế nào?
Thường buổi sáng mình sẽ check mail và họp với Product team hoặc Development team để xem các vấn đề còn tồn đọng cần xử lý hoặc có gì mới cần triển khai.
Sau đó, mình sẽ thực hiện các task đã được lên kế hoạch trước đó, chẳng hạn như khởi tạo hệ thống mới cho khách hàng, backup monitor, hoặc cấu hình thêm cho khách hàng.
Ngoài ra, team mình có hệ thống monitor 24/7 được báo qua điện thoại và email, nên bất kể thời điểm nào mình cũng cần phải sẵn sàng để xử lý sự cố.
Ví dụ, nếu website của khách hàng bị treo trong một vài thời điểm, mình cùng với các bạn Developer sẽ tìm kiếm nguyên nhân.
Đầu tiên, mình sẽ kiểm tra các tool monitor xem các thông số liên quan đến CPU memory và đĩa có gì bất thường hay không.
Nếu mọi thứ ổn, mình sẽ kiểm tra đến database. Chẳng hạn như có câu query nào chạy chậm không, bị locked hay không.
Việc này thực ra là của Database Administrator (DBA), tuy nhiên không phải công ty nào cũng có DBA nên mình phải kiểm tra.
Xem thêm: Database Administrator là gì
Nếu database cũng ổn, mình sẽ cùng Developer review đến code.
Trước đây System Engineer thường không thích code. Tuy nhiên, System Engineer thời đại ngày nay nên biết code ít nhất một ngôn ngữ. Khi bạn biết một ngôn ngữ, bạn có thể hiểu một phần code của ngôn ngữ khác vì các ngôn ngữ có sự tương đồng với nhau.
Ví dụ, bạn biết PHP ở mức độ đọc hiểu hoặc viết được, thì khi đọc qua code của Java hay Python, bạn sẽ thấy được vấn đề, chẳng hạn như: Sao logic code chỗ này bị lặp vô tận, có lỗi ở chỗ này.
Công việc System Engineer có giống với tưởng tượng ban đầu của anh không?
Mình định hướng làm System Engineer từ thời còn là sinh viên nhưng nghề này kiếm việc khó lắm.
Nhờ cơ duyên, có một người bạn làm HR kiên trì gửi cái CV trống trơn của mình đi 3 lần ở 3 phòng ban khác nhau của công ty, lần cuối mới đậu (cười).
Sai lầm lớn anh từng mắc phải trong công việc System Engineer là gì?
Sự cố này xảy ra ở công ty cũ, lúc mình vào công ty được có vài tháng.
Lần đó mình muốn shutdown một con server. Sau khi nhìn một số thông tin sơ bộ trên dashboard (mình dùng tool quản lý giao diện server) thì mình shut down.
Vài phút sau, tool monitor báo qua email server bị down là một server khác. Mình rất run và toàn thân đổ mồ hôi hột.
Mình nghĩ: “Trời ơi, là nhân viên mới của công ty, chưa đóng góp được gì nhiều thì đã shut down nhầm server rồi.”
Cũng may là sếp mình không khiển trách la mắng gì. Nhưng mình hiểu, mình quá bất cẩn và đối với một System Engineer, việc service bị down trong vòng vài phút là một vấn đề lớn.
Từ sự cố này, mình rút ra bài học xương máu là không bao giờ được phép dùng tool quản lý giao diện server để shut down nữa.
Thay vào đó, mỗi lần muốn shut down một con server, mình phải truy cập vào nó để xem host name của nó là gì, IP address là gì, service là gì, có đúng thông tin của con server mà mình muốn shut down hay không rồi mới shut down.
Những kỹ năng/ tố chất cần thiết nếu muốn trở thành System Engineer?
1. Ham học hỏi
Làm system buộc phải biết nhiều thứ, nhiều ngóc ngách nên luôn cần sự tìm tòi, học hỏi từ rất nhiều nguồn.
Theo mình, nhanh nhất, hiệu quả nhất và thực tế nhất chính là thông qua việc tìm cách tối ưu hóa hệ thống hiện tại của mình. Dành thời gian “chém gió” với bạn bè cũng là một cách bổ ích.
Mình có một nhóm gồm những anh em kỹ thuật ở đủ các mảng: System, DevOps, Front-end, Back-end, Data, Android, iOS chém gió về đủ thứ trên đờì.
2. Khả năng tổng quát hóa
Khi nhận một request nào đó từ khách hàng, cần tổng quát hóa vấn đề rồi tìm ra cách làm tốt nhất. Yêu cầu của Developer, của khách hàng thường quá chi tiết nên mình cần tìm hiểu thêm nhiều thông tin hơn từ họ để đưa ra một cách làm hợp lý.
Mức lương và cơ hội nghề nghiệp dành cho một System Engineer? Anh có nghĩ nghề này đã “bão hòa” ?
Mình nghĩ nghề này vẫn còn rất hot, nhưng có sự cạnh tranh rất lớn. Số lượng System Engineer / DevOps trong một công ty ít hơn rất nhiều so với số lượng Developer.
Mức lương thì tùy người, tùy khả năng, tùy vị trí. Bật mí là đợt rồi, Novobi có nhu cầu tuyển Senior với mức 2.000 USD đó (cười).
Novobi tuyển dụng System Engineer dựa trên những tiêu chí nào?
Novobi tuyển người không dựa trên công nghệ/kỹ thuật Novobi đang làm mà dựa trên kiến thức và suy nghĩ của ứng viên.
Hai câu nói khởi đầu của mình trong một cuộc phỏng vấn là :
+ Bạn đang làm dự án nào mà bạn thấy mình tâm đắc nhất (hoặc tự tin nhất)? Bỏ qua tất cả các thông tin nhạy cảm, bí mật công ty, bạn có thể mô tả hệ thống bạn đang làm bằng một system diagram được không ?
+ Để loại bỏ các rào cản trong suy nghĩ của ứng viên , mình luôn nói “Sếp của bạn không ở đây, khách hàng của bạn không ở đây, và công ty có đủ tiền cho bạn để làm một hệ thống đắt tiền nhất”. Sau đó mình nhờ bạn chỉ ra và giải quyết các vấn đề về : bottleneck, high availability trong cái system diagram phía trên (tức là hệ thống bạn đang làm ).
Chỉ bằng 2 câu hỏi này, mình mong muốn ứng viên cho mình thấy được:
+ Nếu bạn dành thời gian suy nghĩ đủ sâu về những gì bạn đang làm thì qua Novobi bạn cũng sẽ như vậy.
+ Cách suy nghĩ và cách giải quyết vấn đề của bạn.
Những khó khăn ít ai biết của người làm System Engineer?
Chịu cực/chịu khó vì mình là người chịu trách nhiệm về sự ổn định của hệ thống 24/7. Việc nửa đêm có alert báo phải dậy kiểm tra hệ thống là việc bình thường.
Mình còn nhớ như in hình ảnh cả team ngồi ôm laptop khi đang trên đường đi du lịch Vũng Tàu. Rồi cả đợt đi tuần trăng mật của 2 vợ chồng, mình vác balo laptop để leo đồi Radar ở Langbiang thay vì đi xe Zeep.
Chịu áp lực : Áp lực khi hệ thống xảy ra sự cố rất lớn từ sếp, từ khách hàng. Mình cần phải có tinh thần minh mẫn nhất để tìm ra nguyên nhân và cách giải quyết tối ưu nhất.
Những resource nào anh thấy có ích cho nghề System Engineer của mình?
- Góc IT: Chia sẻ kiến thức tin học opensource, Linux, VMWare
- serverfault.com: Website hỏi đáp dành cho System Admin
- highscalability.com: Trang này có nhiều bài viết cơ bản và nâng cao thú vị trong việc xây dựng hệ thống.
Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp, đừng quên nhấn nút Share bên dưới nhé!
Tham khảo việc làm System Engineer tại ITviec.