Meninggalkan Google

Jumat lalu adalah hari terakhir saya di Google. Tentu saja, ketika Anda meninggalkan Google, Anda harus menulis semacam surat atau kata-kata kasar. Serius itu aturan: mereka tidak akan menghapus implan saraf Anda sampai Anda menekan publish.

Selain bercanda, ini lebih merupakan memoar daripada polemik. Tentu saja saya punya opini, tapi sekarang bukan waktunya. Ini lebih tentang merenungkan tujuh tahun terakhir hidup saya, memikirkan apa yang penting dan apa yang akan saya lakukan secara berbeda di masa depan.

Apa yang saya lakukan di Google

Saya pindah ke New York dan mulai bekerja di Google pada awal tahun 2015. Saya selalu ingin bekerja di sana. Sepertinya tempat di mana orang-orang terpandai bekerja untuk memecahkan masalah yang paling menarik. Saya menyukai gagasan budaya yang didorong oleh teknik di mana eksperimen didorong dan bisnis kurang penting. Kemungkinan mengerjakan proyek 20% yang menjadi besar seperti GMail menarik bagi saya.

Google mungkin pernah menjadi perusahaan itu beberapa tahun sebelumnya, tetapi ketika saya bergabung, perusahaan itu sudah berubah menjadi megacorp yang kolot. Saya pikir akan sulit untuk memulai proyek “moonshot” seperti mobil self-driving atau bahasa pemrograman baru pada tahun 2015. Ini semakin tidak mungkin hari ini.

Docs, Sheets , dan Slides

Saya memulai aplikasi Android untuk Dokumen, Spreadsheet, dan Slide. Itu bukan jenis pekerjaan yang saya harapkan, tetapi Docs berkembang ketika saya bergabung, dan orang-orangnya tampak hebat. Sangat menarik untuk bekerja di aplikasi seluler selama beberapa tahun, tetapi organisasi memiliki beberapa masalah serius.

Pertama, tim saya tidak memiliki bimbingan dan dukungan. Kami mewarisi aplikasi Android dari tim Drive di Sydney (awalnya, Dokumen, Spreadsheet, Slide digabungkan ke dalam aplikasi Drive). Tim kami adalah semua karyawan baru (kebanyakan lulusan baru) dan transfer dari bagian lain perusahaan, jadi tidak ada yang benar-benar memahami infrastruktur teknis, dan kami tidak tahu siapa yang harus ditanyakan ketika kami memiliki pertanyaan.

Kedua, manajemen tersebar terlalu tipis. Manajer terakhir saya memiliki sekitar 25 laporan. Kami bertemu selama setengah jam setiap tiga minggu, dan selama beberapa bulan, dia tidak dapat mengingat nama proyek saya. Saya menyerah untuk dipromosikan di sana.

Ketiga, organisasi ini sangat berorientasi pada produk. PM membuat semua keputusan. Insinyur (setidaknya di level saya) memiliki pengaruh yang sangat kecil. Kami diharapkan untuk mencapai tenggat waktu yang tepat pada proyek multi-kuartal (dalam dua minggu), dan ketika itu pasti tidak terjadi, kami harus melacak semua waktu yang kami habiskan untuk apa pun dalam peningkatan 30 menit. Rasanya sangat bergigi.

Saya frustrasi dan dipindahkan setelah dua tahun. Kalau dipikir-pikir, saya seharusnya pergi lebih awal. (Anehnya, karyawan baru lainnya bergabung dengan tim saya pada hari yang sama. Dia pindah dalam waktu seminggu! Kami menjulukinya Waldo karena kami tidak pernah bisa menemukannya. Ternyata dia sedang berbicara dengan manajer lain.)

Beberapa pelajaran penting kali ini:

    Mentorship sangat penting, terutama sejak dini. Sangat penting untuk memiliki seseorang sejak awal untuk mengisi Anda tidak hanya pada arsitektur proyek, tetapi juga sejarah dan politik organisasi. Karena Hukum Conway, hal-hal itu sangat terkait satu sama lain. Jika Anda bergabung dengan grup baru, temukan seseorang untuk menumpahkan teh dan beri Anda sejarah itu. Manajemen yang mendukung sangat penting jika Anda ingin dipromosikan. Saya bergabung dengan Google di L4, yang setidaknya satu tingkat di bawah pekerjaan saya sebelumnya (staf engineer di Qualcomm). Saya pikir saya akan dipromosikan dengan cepat, tetapi butuh lebih dari tiga tahun. Waktu saya di Documents sama sekali tidak membantu saya dalam hal itu. Pastikan Anda menghargai hal yang sama dengan organisasi melakukan. Kepemimpinan Dokumen difokuskan pada penyampaian fitur baru kepada pelanggan yang membayar. Saya menghargai perangkat lunak yang minimalis, cepat, dan andal. Tidak ada sudut pandang yang salah, tetapi mereka berada dalam ketegangan, dan saya tidak pernah senang melakukan jenis pekerjaan yang diperlukan di sana. Go dukungan untuk Bazel

    Saya bergabung dengan tim Go pada awal 2017, awalnya membangun dukungan Go untuk Bazel . Pada saat itu, Google sedang mencoba untuk membuka sumber atau menulis ulang sebagian besar infrastruktur internalnya untuk kepentingan pelanggan Cloud dan perusahaan Alphabet baru (pembentukan Alphabet masih baru). Bazel adalah versi open source dari alat build internal Google, Blaze. Aturan Blaze Go memiliki banyak keistimewaan yang tidak cocok dengan cara eksternal dalam melakukan sesuatu, jadi rules_go sebagian besar merupakan proyek lapangan hijau.

    Saya sebenarnya tidak mengenal Go atau Bazel sebelum bergabung dengan Tim Go, selain membaca The Go Programming Language oleh Alan Donovan dan Brian Kernighan, yang keluar setahun sebelumnya. Sebenarnya beberapa orang di tim pertama kali belajar Go ketika mereka bergabung. Itu pelajaran berharga dalam dirinya sendiri: persyaratan "N tahun pengalaman" adalah penjaga gerbang yang tidak perlu. Orang pintar dapat mengambil apa saja dengan cepat, dan perspektif yang beragam sangat berharga.

    Alan adalah mentor yang luar biasa baik. Awalnya, saya meninjau kode untuk penerjemah Starlark barunya. Itu adalah cara yang fantastis untuk belajar Go yang idiomatis dan performant. Saya rasa saya tidak menemukan banyak bug dalam tinjauan kode, tetapi saya mengambil kesempatan untuk mengajukan banyak pertanyaan dan belajar banyak. Sebagai salah satu pencipta Blaze, dia juga membantu saya untuk cepat berkembang di sana.

    Saya juga beruntung memiliki manajer yang mendukung, dan pekerjaan saya sangat selaras dengan tujuan organisasi pada saat itu . Banyak perusahaan dan proyek sumber terbuka besar seperti Kubernetes bermigrasi ke Bazel, jadi memiliki dukungan Go yang solid sangatlah penting. Saya dipromosikan ke L5 setelah lebih dari satu tahun.

    Tarik angin semacam itu bagus jika Anda bisa mendapatkannya, tetapi tidak selalu bertahan lama. Segera setelah itu, tim Go direorganisasi menjadi Google Cloud, dan Kubernetes memutuskan untuk berhenti menggunakan Bazel, sehingga prioritas berubah. Go 1.11 dikirimkan dengan dukungan eksperimental untuk modul, dan jelas bahwa manajemen ketergantungan akan sangat penting di masa mendatang. Sebagian besar tim New York beralih ke pembuatan modul siap produksi.

    Saya mulai mengerjakan perintah go (

    go build, ambil dan semua itu) di akhir tahun 2018. Sejak awal, saya meningkatkan kinerja, menambahkan pesan diagnostik yang lebih baik, dan menulis ulang

go get (sudah ditulis ulang setidaknya dua kali sejak saat itu). Kemudian, saya menambahkan direktif retract, cmd@version bentuk go install dan lari , dan banyak fitur dan perbaikan kecil lainnya.

Mungkin hal paling berpengaruh yang saya tulis adalah dokumentasi referensi modul, sekitar 80 halaman teks yang menjelaskan bagaimana sistem modul sebenarnya bekerja, termasuk spesifikasi semua sintaks dan protokol. Manajemen ketergantungan rumit (karena banyak kasus tepi yang tak terhitung banyaknya), dan sulit bagi pengembang untuk bermigrasi ke modul tanpa manual. Mengukur keberhasilan proyek dokumentasi itu sulit, tetapi secara anekdot dari menonton milis, Stack Overflow, dan Slack publik, tampaknya lebih sedikit orang yang terjebak, lebih banyak pertanyaan lanjutan yang diajukan, dan orang-orang lebih dapat saling membantu.

Proyek yang paling saya sukai adalah fuzzing asli, yang saya kerjakan dengan Katie Hockman. Sangat menyenangkan untuk membangun mesin fuzzing dari bawah ke atas (tentu saja, belajar banyak dan meminjam ide di sepanjang jalan). Sayangnya, saya tidak tinggal di sekitar sampai dikirim. Go 1.18 diharapkan akan menjadi rilis pertama dengan fuzzing asli. Lebih banyak pekerjaan diperlukan untuk meningkatkan keefektifannya agar sesuai dengan go-fuzz dan sistem lain, tetapi bahkan dalam keadaan awal, saya pikir itu akan menangkap banyak bug.

Kelemahan terbesar bekerja pada Tim Go adalah betapa kelebihan semua orang. Tim itu penuh dengan orang-orang yang sangat berbakat dan produktif, tetapi setiap orang memikul beban yang berat. Sulit untuk benar-benar menyelesaikan dan melepaskan proyek apa pun karena semuanya membutuhkan sedikit pemeliharaan berkelanjutan. Saya akhirnya menjadi setidaknya sebagian bertanggung jawab untuk enam proyek. Sangat frustasi untuk membagi perhatian saya begitu banyak cara dan tidak membuat kemajuan pada apa pun. Saya akan menghabiskan sepanjang hari hampir tidak mengikuti triase masalah dan tinjauan kode.

Pelajaran utama saya mulai saat ini:

  1. Batasi jumlah proyek jangka panjang yang Anda fokuskan pada waktu tertentu. Lebih baik melakukan satu atau dua hal dengan baik daripada enam hal dengan buruk. Jika peluang baru yang besar muncul, ambillah, tetapi lepaskan sesuatu yang lain. Jika benda yang dijatuhkan itu penting, itu akan dikelola. Jika tidak… mengapa mengerjakannya?
  2. Tim harus bertanggung jawab atas produk, bukan individu. Go memiliki terlalu banyak proyek yang dimiliki oleh satu orang. Itu menyebabkan paket kelelahan dan yatim piatu. Bekerja dalam skala itu penting, meskipun terkadang terasa “malas”. Ketika saya bekerja di Bazel, saya menghabiskan banyak waktu untuk membantu individu menyelesaikan masalah secara langsung. Rasanya produktif dan memuaskan, tetapi masalah itu tidak ada habisnya karena peraturannya kurang terdokumentasi dan terlalu sulit untuk digunakan dengan benar. Sebaliknya, menulis dokumentasi referensi modul merupakan penggunaan waktu yang lebih efisien karena skalanya lebih baik. Orang-orang dapat secara mental membuat model sistem dan menghindari masalah tanpa memerlukan bantuan.

Apa yang membuat saya bertahan di Google

Orang-orang yang bekerja dengan saya di Google sangat luar biasa. Saya berteman dekat dengan banyak orang di sana, jauh di luar keakraban rekan kerja normal di perusahaan lain.

Di Docs, kami tinggal larut malam bermain Coup atau Pandemic Legacy (permainan hebat, bukan permainan hebat pilihan hari ini sekalipun). Terkadang kami mengeluh tentang hal-hal di bar di bawah Chelsea Market.

On Go, kami memasak bersama dan mengadakan pesta makan malam. Kami bersenang-senang di konferensi; minum margarita beku di sekitar kolam renang di Gophercon 2019 setelah pembicaraan selesai adalah sorotan dalam ingatan saya.

Sulit untuk menggambarkan secara memadai bagaimana saya secara positif merasakan orang-orang di sana dan betapa saya merindukan mereka sudah. Saya berharap untuk tetap berteman dengan semua orang, tetapi saya tahu itu tidak akan sama. Ada semangat kelompok yang melampaui koneksi individu.

Ketakutan terbesar saya tentang remote sepenuhnya adalah akan sulit untuk mereproduksi koneksi semacam itu di tim baru mana pun. Ikatan itu terbentuk secara pribadi. Kami hanya melewati pandemi sebaik yang kami lakukan karena itu ditetapkan lebih awal.

Mengapa saya pergi

Alasan orang menulis ini surat (dan semua orang menertawakannya) adalah karena kita setidaknya telah dicuci otaknya dengan berpikir bahwa pekerjaan di Google adalah puncak pekerjaan. Meninggalkan pekerjaan biasanya bukanlah tindakan yang membutuhkan banyak penjelasan.

Ini dia.

Burnout

    Saya sangat lelah. Semua orang yang saya kenal terbakar habis atau tepat di ujungnya. Saya tidak menyangka tweet ini mendapat perhatian sebanyak itu. Beberapa hari kemudian, saya terkejut melihat diri saya dikutip dalam Burning out and quitting oleh Maya Kaczorowski. Artikel itu sangat menyentuh saya. Saya menulis tentang pengalaman saya dengan burnout melalui pandemi di awal musim panas, tetapi saya tidak mempostingnya di mana pun karena itu hanya cerita pribadi yang panjang dan membosankan (seperti ini). Artikel Maya jauh lebih baik.

    Untuk meringkas, saya merasa cukup stres dan kelebihan beban sebelum pandemi. Segala sesuatu yang terjadi pada tahun 2020 mendorong saya melewati batas. Saya mulai kehilangan banyak waktu tidur, dan saya mengalami banyak sakit kepala dan sakit punggung. Saya mendapat banyak “kabut otak”: ketidakmampuan untuk berkonsentrasi atau membuat keputusan. Saya mulai melupakan kata-kata dan nama-nama dan kehilangan utas percakapan di tengah kalimat. Saya merasa seperti saya tidak punya energi yang tersisa untuk apa pun selain bekerja, dan saya hampir tidak bisa mengaturnya. Saya mulai membuat banyak kesalahan yang membutuhkan waktu untuk diperbaiki nanti.

    Saya mencoba hampir semua yang dapat saya pikirkan. Beberapa hal membantu, tetapi tidak cukup. Saya tidak bisa bekerja lagi, dan sudah waktunya untuk istirahat panjang. Dari berbicara dengan orang lain yang telah melalui ini, sepertinya satu-satunya hal yang sangat membantu.

    Karier dan kompensasi

    Saya bisa saja mengambil cuti panjang, lalu kembali segar; Google mengizinkan hingga tiga bulan tidak dibayar. Aku ingin memastikan aku tidak akan terbakar lagi. Dua hal besar menghentikan saya.

    Pertama, Google akan memotong kompensasi saya sebesar 10% karena saya pergi jauh. Saya pindah kembali ke San Diego pada bulan Juni sebelum ada kebijakan kerja jarak jauh. Saya pikir mereka harus membuat kebijakan kerja jarak jauh di beberapa titik, dan saya bersedia untuk pergi jika itu terlalu tidak menguntungkan. Pemotongan 10% sangat tidak menguntungkan, mengingat saya melakukan pekerjaan yang sama di tim yang sama. Bukannya perusahaan juga tidak mampu membelinya. Dari penghasilan 2021Q1 gs, pendapatan Google Cloud naik 53% dari tahun ke tahun, dan pendapatan keseluruhan naik 61%.

    Kedua, saya tidak merasa memiliki kesempatan untuk dipromosikan ke L6 untuk pekerjaan saya di Pergi. Google tidak menggunakan perintah atau modul go, dan karena tidak ada manfaat terukur langsung bagi Google, sangat sulit untuk membuat kasusnya. Sulit untuk dipromosikan di luar L5 untuk pekerjaan open source yang tidak terkait langsung dengan bisnis, jadi akibatnya, kebanyakan orang di tim Go menumpuk di L5. Saya merasa bahwa jika saya menginginkan pertumbuhan, pilihan saya adalah antara mencari pekerjaan baru di dalam atau di luar Google.

    Pemikiran lain

    Ada banyak hal yang terjadi di Google yang membuat saya tidak senang. Maven dan Dragonfly tampak seperti kenangan yang jauh sekarang. Beberapa aktivis dan peneliti dipecat karena meminta Google untuk sedikit lebih etis. Saya juga telah melihat teman-teman yang dibayar rendah, direndahkan, dan diperlakukan dengan kurang hormat daripada yang pantas mereka dapatkan.

    Saya berharap saya akan berbuat lebih banyak untuk melawan hal-hal itu, di luar menandatangani petisi dan pemogokan. Saya bukan aktivis, terutama dengan burnout. Yang bisa saya katakan adalah bahwa orang-orang itu tidak jauh dari pikiran saya. Peristiwa itu membuat keputusan untuk pergi lebih mudah, dan saya akan berpikir lebih keras tentang etika di perusahaan mana pun yang saya ikuti di masa depan.

    Apa selanjutnya?

    Untuk pertama kalinya dalam hidup saya, saya tidak punya rencana apa yang harus saya lakukan selanjutnya. Saya mengambil setidaknya enam bulan, mungkin satu tahun. Sebut saja cuti panjang, kurasa. Atau rumspringa.

    Saya punya beberapa ide tentang apa yang ingin saya lakukan selama waktu itu: berlatih maraton, menjadi lebih baik dalam memasak, memulai kebun sayur, mengikuti kelas melukis, bergabung dengan karate dojo, berteman dengan orang-orang lokal… Tapi kebanyakan, saya hanya ingin menjadi orang tanpa pekerjaan untuk sementara waktu.

    Saya merasa sangat istimewa bisa melakukan ini. Istri saya juga bekerja di bidang teknologi dan dapat dengan nyaman mendukung kami berdua. Saya berharap dalam setahun, saya akan beristirahat dan siap untuk terjun kembali ke teknologi dengan tujuan dan arah yang lebih baik.

    Baca selengkapnya