Hướng dẫn sống còn cho kỹ sư trẻ từ thiên tài hacker người Nga
This post hasn't been updated for 8 years
1. Nguồn
ロシアの天才ハッカーによる【新人エンジニアサバイバルガイド】
2. Lý do
- Mặc dù đã đăng ký tham gia chương trình Hack não ở công ty, nhưng do lười nên không được miễn report (
- Đọc các bài đúc rút kinh nghiệm từ cá nhân, đặc biệt là các thiên tài là cách ngắn nhất giúp ta định hướng được mình, nhìn lại quá trình vừa qua của bản thân xem đã đạt được những gì.
3. Bài viết
Chàng trai trẻ thiên tài hacker người Nga ấy đã thôi việc tại công ty chúng tôi sau 5 năm cống hiến.
Nghe có vẻ lạ lùng, tuy nhiên chúng tôi không nghĩ cậu ấy có thể gắn bó và cống hiến cho công ty lâu đến thế, nhắt là đối với một người đã từng có lịch sử chiến thắng tại cuộc thi hacking tầm cỡ thế giới và đã rất nhiều lần xuất hiện trên ti vi.
Thường thì với một người có tài năng như cậu ấy sau khi gia nhập công ty, không chán nản bỏ việc vì hệ thống quan chức gò bó thì cũng dừng lại như một bình hoa để ngắm mà thôi, tuy vậy cậu ấy đã chiến đấu ở đẳng cấp cao nhất tới những giờ phút cuối cùng.
Tôi rất ấn tượng với mail thôi việc của cậu ấy, đây chính là lý do tôi đã dịch và đăng lên đây (tôi đã xin đồng ý từ cậu ấy và lược bỏ một số đoạn đặc thù của công ty).
Ôi, đúng là một hành trình dài. Tôi đã đảm nhận trách nhiệm security tại công ty được 5 năm rồi đấy (hãy tha thứ cho những thất bại của tôi).
Mặc dù tôi không thể viết được một lá thư thôi việc thú vị được như những người khác, tuy nhiên hướng tới những người đọc lá thư này của tôi - đặc biệt là những engineer mới vào nghề có thể cải thiện được công việc của mình, tôi muốn nói ra vài suy nghĩ của mình.
Tôi đặt tên cho nó là "new engineer survival guide" (hướng dẫn sống còn cho kỹ sư trẻ), tổng hợp cả những ý tưởng của các kỹ sư lâu năm kinh nghiệm, mong rằng nó sẽ giúp ích cho công cuộc đào tạo người mới của công ty.
Tờ hướng dẫn này chứa đựng các ý tưởng nhỏ bé của tôi, hy vọng giúp các chàng trai trẻ quyết tâm trở thành engineer tại công ty có thể sớm thành những người được hưởng lương và chế độ cao nhất.
Application Engineer
- Hãy thành thạo tất cả những kỹ năng liên quan tới kỹ thuật. Dưới đây chính là danh sách tài liệu tốt nhất: https://www.google.com/about/careers/students/guide-to-technical-development.html Đừng quan tâm tới những dòng ghi là course dành cho học sinh. Tôi không phải là học sinh nhưng cũng đã tham gia hầu hết các course ở đây.
- Đừng bực tức với chất lượng của code. Hãy tâm niệm rằng mình phải relase được code với tốc độ gấp đôi so với đồng nghiệp.
Khi gặp những đoạn code lỗi, không tốt hãy gửi
pull request
ngay lập tức, dù đó không phải là chỗ mà mình đã viết. Nếu làm được thế, cậu sẽ trở thành một trong những người tuyệt vời nhất. Hãy thành thục tất cả các tool giúp đảm bảo và nâng cao chất lượng sản phẩm (IDEs, Jenkins and testing suites, git, ssh) - Ngưng sử dụng Stack Overflow. Không hiểu rõ bản nhất mà chỉ copy paste code từ những nơi như vậy sẽ dẫn tới những hậu quả khôn lường sau này. Hiểm hoạ lớn nhất chính là ví dụ với encryption. 99% các ví dụ đều sai hết. Đừng sử dụng những ví dụ ấy mà hãy nói chuyện với security team của công ty, và nhận được lời khuyên từ họ. Đây chính là cách làm của những người thông minh.
- Hãy học tiếng Anh. Nếu bạn là người nước ngoài và đến Nhật làm việc, hãy học tiếng Nhật. Nếu sau khi master được cả 2 loại tiếng rồi, bạn có thể chuyển qua học Java rồi đấy
- Hãy học Chef, Ansible, Puppet. Đừng làm lãng phí thời gian của operation engineer.
- Thường xuyên phải chuẩn bị được 4 môi trường làm việc. Không phải 3 mà là 4. Tóm lại, chính là môi trường development, môi trường QA (dành cho test version sau), môi trường cho integration test (dành cho việc test deploy từ bản hiện tại cho với version sau) và môi trường production.
Infrastructure Engineer
- Hãy cố gắng hiểu SLA được cài đặt vào mấy cái và được tính toán thế nào. Nếu chỉ vận hành bằng một data center thì chắc hẳn SLA mục tiêu chưa đạt được đâu đúng không?
- Hệ thống có cấu trúc downtime liên quan tới Failover thì chưa được gọi là high availability.
- Thường xuyên sử dụng TLS, kể cả với service trong công ty.
- Application phải thông qua nginx mới public.
- Phải kiện toàn độ bảo mật của hệ thống. Các công thức của chef có tại đây: http://dev-sec.io/
- Hãy làm việc chung với các developer khác. Hãy cố gắng hiểu được họ thường có thiên hướng muốn làm cái gì. Cố gắng hướng mọi người tới giải pháp tốt hơn. Ví dụ: model queue worker, async IO, async loggin dựa vào forworder và central repository, deploy tự động hoá, auto scaling..
Database Administrator
- Thành thục kỹ năng liên quan tới kỹ thuật. Dù bạn đã có được 1 bằng DBA hằng đầu đi chăng nữa cũng không được ngừng việc học lại. Bạn vẫn còn rất nhiều thứ để tìm hiểu.
- Học lý thuyết CAP, hãy cố gắng hiểu giữa các database solution có gì khác nhau.
- Tại các DB, hãy tạo user theo từng admin. Nếu còn liên kết với LDAP thì càng chuẩn hơn. Hãy cố gắng để lại càng nhiều log càng tốt, ít nhất không được bỏ qua monitoring log và slow query log. Ngoài ra, phải làm sao để có thể quan sát log bằng Splunk hay Kibana.
- Khuyến khích authentication base theo cerficate tại application. Ngoài ra sử dụng TLS khi kết nối.
- Kiện toàn security cho DB. Đặc biệt với trường hợp của Oracle. — https://benchmarks.cisecurity.org
- Môi trường test phải giống môi trường production. Nếu tại production sử dụng Exadata, thì với staging hay môi trường integration test cũng phải giống thế. Không được phép tiết kiệm ở những khoản này.
Security Engineer
Trong nội dung này sẽ có một vài thứ hơi khó với những người mới.
- Ngừng trình bày quá nhiều về những bất mãn, hãy gửi Pull Request để sửa. Nếu không làm được vậy, thì nên trở thành manager thì tốt hơn. Cứ vẫn thế thì mãi không giải quyết được vấn đề, và rồi đau khổ hết lần này qua lần khác mà thôi.
- Hãy xây dựng security solution. Nếu bạn có thể cung cấp các dịch vụ không cần thông qua con người như "encryption as a service" hay "AppScan as a service" thì thật tuyệt. Có rất nhiều thứ cần thiết phải làm như Hashicorp Vault as a service, tool quản lý cerficate TLS hay GRC tool.
- Cryptology chính là tấm chân kinh, mặc dù càng học thì càng thấy chán. Tuy nhiên, nếu không thể hiểu sự khác nhau khi encryption sau khi HMAC và HMAC sau khi encryption thì chưa thể gọi là một security engineer giỏi được.
Technical Program Manager
Đối với những người mới thì không có nhiều sự liên quan, đoạn này dành cho những engineer hướng tới chuyển mình sang management.
- Hãy cố gắng tìm lấy những sponsor. Sponsor chính là người nắm động lực rất lớn trong dự án của bạn. Nếu không có những người sponsor như thế, hãy dừng dự án đó lại và tập trung vào những thứ quan trọng hơn. Đừng cố gắng thuyết họ, vì họ chắc chắn sẽ cảm thấy mệt mỏi khi phải nói chuyện với bạn.
- Đừng nghĩ rằng dự án của bạn là dự án tối quan trọng nhất. Trong một công ty, có hằng tá các dự án quan trọng hơn của bạn. Chính vì thế dù có buồn đến đâu, hãy cố gắng tập trung vào dự án mới và chờ đến khi dự án của mình lên ngôi.
- Hãy tạo ra network với các thành viên ở những bộ phận khác nhau của công ty.
- Hãy học về kế toán.
- Hãy học product management.
- Hãy ưu tiên quality trên speed. Dù bạn có hớt hải làm nhanh tới đâu cũng không mang lại kết quả tốt đẹp gì, và việc hối thúc người khác cũng không phải trách nhiệm của bạn. Bạn cần tạo ra một thời gian đủ dài để cung cấp sản phẩm có chất lượng cao nhất.
Ừm, tôi nghĩ đến đây là đủ rồi.
Nếu các bạn đọc và cảm thấy những lời khuyên này quá kiêu ngạo thì cho tôi xin lỗi.
Bạn tham khảo cũng được, bỏ qua cũng được, đồng ý cũng được và không cũng chẳng sao.
Toàn bộ những điều trên là sự đúc kết của kinh nghiệm cá nhân tôi.
All Rights Reserved