thảo luận Hội Dev 35 đi phỏng vấn tìm việc.

  • Người tạo chủ đề Người tạo chủ đề Kaiser2013
  • Ngày bắt đầu Ngày bắt đầu
ngành này ác liệt thế, lướt còm toàn 3 4 mươi m là thấp nhất
KAUdgHo.png
 
=))
trước có ông nào trong này kể làm IT bên tư bổn, cụ thể là nhật, server đuối là upgrade cấu hình lên, còn ở xứ nào đó, ** mé bắt dev tối ưu bằng code hâhhaha
cái này là 1 trong những cách thôi chứ không phải là cách tối ưu nhất
muốn nhanh nhất là vậy ok cho chạy tạm, nhưng rơi vào case thằng dev nó đó code loop thì cpu nó peak lên vô cực upgrade lên đằng trời cũng thế
 
vấn đề là đang phỏng vấn role middle ông ơi =)) và thằng phỏng vấn chưa chắc trả lời được câu hỏi mà nó đặt ra, tôi đoán ở đây là system của cty mà ứng viên đang pvan cũng đang có bài toán tương tự về perf test và người pv cố tình khai thác ứng viên senior để lấy thôgn tin thoi chứ chưa chắc tuyển thật ấy, phí công sức của người khác đi pv =))
Phỏng vấn đôi khi không cần câu trả lời chính xác như thi cử mà chỉ là cách để gợi mở chủ đề câu chuyện thôi. Người ta xem cách bạn tư duy, tương tác thế nào. Để giải quyết vấn đề cần hiểu rõ bài toán thực tế, hệ thống hiện tại, nguồn lực của công ty,... Một câu hỏi chung chung kiểu làm sao để handle 1M users chẳng có tác dụng gì cả. Câu hỏi này tương tự như hỏi làm sao kiếm dc 1M $, chỉ là gợi mở chủ đề, từ đó 2 bên tâm sự hiểu nhau hơn :doubt:
 
=))
trước có ông nào trong này kể làm IT bên tư bổn, cụ thể là nhật, server đuối là upgrade cấu hình lên, còn ở xứ nào đó, ** mé bắt dev tối ưu bằng code hâhhaha
Tây Nhật hay ta cũng vậy thôi, tư duy làm sản phẩm nó phải thực dụng . Quan trọng ra sản phẩm nhanh, chạy kiếm user thật, rồi mới cân nhắc tối ưu. Chi phí(tiền, thời gian) thuê dev xịn về tối ưu quá cha nó chi phí thuê server. Sản phẩm chắc d' gì đã sống dc đến lúc quá tải hệ thống.
Nhưng đi phỏng vấn thì người ta nhắm vào trình độ kỹ thuật nên cứ phải hỏi thôi. Và vào việc thực tế vẫn cần kiến thức, kinh nghiệm để cân nhắc thiệt hơn giữa việc tối ưu code và upgrade cấu hình.
 
Tôi trả lời ở trên kìa fen. Ông nào hỏi tôi câu làm sao xử lý 1 mil requests per second, tôi trả lời luôn tôi viết backend bằng C++ (Drogon, Oat++, Crow).

Như benchmarks của Drogon framework ở trên có thể xử lý được >500k rps với trường hợp 1 connection có thể gửi nhiều request, ~140k rps trong th mỗi request phải tạo 1 connection. Outperform cả Nginx luôn :beauty:

Benchmarks được chạy trên con server 2 CPUs 16 cores, 32 threads, 64GB RAM, giá thuê chắc xấp xỉ $250/m, quá bèo cho 1 cty có số lượng traffic như vậy. Ông nào lăn tăn mời vào repo của Drogon mà var :beauty:
xin đừng quay tay
 
Lụm review túm tắt thị trường htai (vn):
  • như tao đang làm. 2022,2023 rât dễ kiếm remote , có nhiều job 5000,6000 là bình thường. h khó chết mẹ, ngày xưa bố hãy tìm việc trên angelist, tokyodev nhưng pv h khó vcl, éo có home assignment đâu , whiteboard hết rồi , nó cho 1,2 tiếng pair code với senior nó éo có Al , éo có stackoverflow , thi thoảng google hói han ) ,mà éo phải thuật toán ko đâu ,h nó bắt dựng cả 1 mini app . System thì hỏi toàn trên trời, mệt vkl . PV éo gì toàn 2,3 tuần mới xong -> rồi trượt
  • Đi làm cho các công ty outsource: làm outsource dễ kiếm nhưng lương thấp, trăm củ đến BU lead ở fsoft chưa chắc đc . Nhưng ko phải ko có, làm outsource các vị trí PM/PO/Brse thường cao nhất là biết tiếng nhật (N1 trở lên) , hàn nhưng nói thật làm vị trí này tù ng có thể trăm triệu nhưng ngoài kỹ năng chém gió - thông dịch ra, kỹ năng IT éo có mấy. Tao từng làm chung 1 ông pm /Brse (U50) đến git éo biết dùng hỏi loạn xạ cả lên.
  • Đi làm product cho water house (Vnpay , ...) hay ngân hàng : Đc. Nhưng bên này quy tắc nó rõ ràng , 1 .Mày có quan hệ , 2. Mày phải trội , giỏi hơn thị trường
BU lead lương 100 là ez vl mà anh, trc tôi SA Fsoft lương đã 8x nhỏ rồi. Nhưng so với làm product thì vẫn xa vl

via theNEXTvoz for iPhone
 
=))
trước có ông nào trong này kể làm IT bên tư bổn, cụ thể là nhật, server đuối là upgrade cấu hình lên, còn ở xứ nào đó, ** mé bắt dev tối ưu bằng code hâhhaha
Anh siêu nhầm cmnr, product lớn mà a đập infra thì có mà tiền núi. Làm sàn mà code cùi thì có bn lãi trả tiền infra chắc đi moẹ hết

via theNEXTvoz for iPhone
 
Tôi trả lời ở trên kìa fen. Ông nào hỏi tôi câu làm sao xử lý 1 mil requests per second, tôi trả lời luôn tôi viết backend bằng C++ (Drogon, Oat++, Crow).

Như benchmarks của Drogon framework ở trên có thể xử lý được >500k rps với trường hợp 1 connection có thể gửi nhiều request, ~140k rps trong th mỗi request phải tạo 1 connection. Outperform cả Nginx luôn :beauty:

Benchmarks được chạy trên con server 2 CPUs 16 cores, 32 threads, 64GB RAM, giá thuê chắc xấp xỉ $250/m, quá bèo cho 1 cty có số lượng traffic như vậy. Ông nào lăn tăn mời vào repo của Drogon mà var :beauty:

Thấy anh zai khoe tới khoe lui con framework gần như no-name, tôi cũng tò mò vào xem vì anh qc tận 2-3 lần. Tưởng gì ghê té ra bench bằng cách trả về chuỗi String hello world :oops:

Anh zai đi làm bao năm rồi mà ko hiểu bench và real world nó khác nhau cỡ nào. 500k rps trả về chuỗi ko đổi mà cũng khoe.
Bài toán thực tế nó phức tạp gấp trăm lần, hệ thống back-end chạy đc 40k rps là cũng dạng trâu rồi, bao gồm tất cả các thể loại query db, authen/autho, serialize/deserialize, searching, paging... đủ các món.

Mà cứ cho là Drogon nó chạy đc 500k rps thật đi, anh zai có contribute gì trong đó k? Hay là fork về build rồi chạy back-end với 10 DAU :sneaky:
 
xin đừng quay tay
Có éo gì mà phải quay tay nhỉ? Mấy cái requests đơn giản mà không cần phải thọc vào DB, không phải parsing các file JSON lớn thì các C/C++ backend frameworks nó xử lý nhanh như rửa đít :doubt:

Anh lấy performance là ưu tiên số 1 thì chọn 1 ngôn ngữ có lợi thế về performance để phát triển là solution hợp lý nhất rồi. Chỉ cần following document của framework đấy thôi là cũng đủ rồi, éo cần phải áp dụng mấy kỹ thuật như kiểu load balancer, redis caching blah blah.

Éo phải tự nhiên mà top web framework benchmarks toàn C/C++ và Rust:
1763654017953.png


Source: TechEmpower Web Framework Performance Comparison (https://www.techempower.com/benchmarks/#section=data-r23)
 
Thấy anh zai khoe tới khoe lui con framework gần như no-name, tôi cũng tò mò vào xem vì anh qc tận 2-3 lần. Tưởng gì ghê té ra bench bằng cách trả về chuỗi String hello world :oops:

Anh zai đi làm bao năm rồi mà ko hiểu bench và real world nó khác nhau cỡ nào. 500k rps trả về chuỗi ko đổi mà cũng khoe.
Bài toán thực tế nó phức tạp gấp trăm lần, hệ thống back-end chạy đc 40k rps là cũng dạng trâu rồi, bao gồm tất cả các thể loại query db, authen/autho, serialize/deserialize, searching, paging... đủ các món.

Mà cứ cho là Drogon nó chạy đc 500k rps thật đi, anh zai có contribute gì trong đó k? Hay là fork về build rồi chạy back-end với 10 DAU :sneaky:
Tôi thất học anh ạ :doubt:

Tôi contribute mảng khác thôi. Back-end tôi là junior :doubt:
 
Câu hỏi làm sao serve đc 1M request/s là câu hỏi mở, chém gió cho vui, cả người pv lẫn ứng viên ko nên quá chú trọng vào đó mà đánh giá rớt hay đậu.

Còn mà serious, thì t nghĩ ku interview có vấn đề, này tôi cũng gặp 1 lần rồi.
 
Nếu nó trả lương cao thì level nào không quan trọng. Vì middle công ty này là senior công ty khác bình thường
còn phỏng vấn vài câu mà giải quyết được bài toán ở hạ tầng và kiến trúc cho cả doanh nghiệp thì kinh quá.

tâm lý lo sợ giống mấy đứa gen Z bảo công ty ra bài test để collect our brain
tôi thấy ông mới là gen z thiếu muối ấy, chỗ nào tôi bảo bào toán hạ tầng với kiến trúc cả dn vậy, rồi thằng interviewer chắc nó đủ quyền để đề xuất thay đổi cả hệ thống ? hay nhiều khi nó chỉ là 1 SE ở 1 vertical con con trong nguyên cái org?
 
Sửa lần cuối:
nói chung là mấy câu hỏi dạng này chỉ có giá trị phân loại ứng viên chứ không có giá trị trong thực tế. Tôi nghĩ cả thằng hỏi và thằng trả lời đều không có cơ hội để đụng vào mấy hệ thống tầm cỡ như thế, và nếu may mắn được làm thì bài toán khi đấy nó khác rất nhiều khi ngồi chém gió với nhau, Nhưng đã xác định đi pv thì phải chấp nhận thôi.
 
Có éo gì mà phải quay tay nhỉ? Mấy cái requests đơn giản mà không cần phải thọc vào DB, không phải parsing các file JSON lớn thì các C/C++ backend frameworks nó xử lý nhanh như rửa đít :doubt:

Anh lấy performance là ưu tiên số 1 thì chọn 1 ngôn ngữ có lợi thế về performance để phát triển là solution hợp lý nhất rồi. Chỉ cần following document của framework đấy thôi là cũng đủ rồi, éo cần phải áp dụng mấy kỹ thuật như kiểu load balancer, redis caching blah blah.

Éo phải tự nhiên mà top web framework benchmarks toàn C/C++ và Rust:
Xem tệp đính kèm 3345718

Source: TechEmpower Web Framework Performance Comparison (https://www.techempower.com/benchmarks/#section=data-r23)
dăm ba cái synthetic benchmark đem ra đi phán như đúng rồi
 
nói chung là mấy câu hỏi dạng này chỉ có giá trị phân loại ứng viên chứ không có giá trị trong thực tế. Tôi nghĩ cả thằng hỏi và thằng trả lời đều không có cơ hội để đụng vào mấy hệ thống tầm cỡ như thế, và nếu may mắn được làm thì bài toán khi đấy nó khác rất nhiều khi ngồi chém gió với nhau, Nhưng đã xác định đi pv thì phải chấp nhận thôi.
hm .,, hợp lý fen
 
Có éo gì mà phải quay tay nhỉ? Mấy cái requests đơn giản mà không cần phải thọc vào DB, không phải parsing các file JSON lớn thì các C/C++ backend frameworks nó xử lý nhanh như rửa đít :doubt:

Anh lấy performance là ưu tiên số 1 thì chọn 1 ngôn ngữ có lợi thế về performance để phát triển là solution hợp lý nhất rồi. Chỉ cần following document của framework đấy thôi là cũng đủ rồi, éo cần phải áp dụng mấy kỹ thuật như kiểu load balancer, redis caching blah blah.

Éo phải tự nhiên mà top web framework benchmarks toàn C/C++ và Rust:
Xem tệp đính kèm 3345718

Source: TechEmpower Web Framework Performance Comparison (https://www.techempower.com/benchmarks/#section=data-r23)
Không được đâu fen ạ, bảng này ảo vì JSON trả về {"message":"Hello, World!"}
Thực tế sẽ giảm 1/2
Nhưng Rust Backend như ActiveWeb cực kỳ ok vì 1 dòng lệnh giải quyết hết vấn đề CPU đa nhân
C#:
#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| App::new().service(devices).service(health))
        .workers(16)
        .bind(("0.0.0.0", 8080))?
        .run()
        .await
}
 
Sửa lần cuối:
dăm ba cái synthetic benchmark đem ra đi phán như đúng rồi
Benchmark đéo nào mà chả là synthetic. Đéo ai chả biết là benchmark nó khác với thực tế. Chả lẽ cứ mỗi framework phải làm một product thực tế rồi kiếm cả triệu users để benchmark thì đéo ai mà làm được.

Ngoài ra để so sánh performance giữa các framework của các language khác nhau thì cần đéo gì phải product thực tế mới so sánh được. Benchmark của Techempower cũng mô phỏng gần như real life product đấy, nó cung open-source hết tất cả benchmark của nó đấy GitHub - TechEmpower/FrameworkBenchmarks: Source for the TechEmpower Framework Benchmarks project (https://github.com/TechEmpower/FrameworkBenchmarks)

Anh có phương pháp nào để benchmark tốt hơn được thì giới thiệu đi.
 

Thống kê chủ đề

Ngày tạo
Kaiser2013,
Người trả lời cuối
JyRAICK,
Trả lời
352
Lượt xem
41.100
Quay lại
Lên đầu trang