Sarah Dayan dari Algolia tentang apa yang membedakan seorang insinyur senior
Diterbitkan: 2022-08-19Meskipun keterampilan pengkodean yang baik selalu dihargai, menjadi staf plus insinyur menuntut lebih dari sekadar kecakapan teknis Anda. Apa yang diperlukan untuk mencapainya, dan yang lebih penting, di mana Anda dapat memberikan dampak terbesar pada organisasi Anda?
Ketika Anda mencapai tingkat senior di jalur teknik, Anda diharapkan optimal dalam keahlian keras Anda. Anda mandiri, kode Anda rapi, dan Anda memiliki pemahaman mendalam tentang pembuatan dan pengiriman perangkat lunak. Tapi masuk ke staf plus peran adalah binatang lain sepenuhnya. Ada manajemen proyek, bimbingan dan pengajaran, pengambilan keputusan, pembangunan hubungan, dan nilai yang Anda bawa ke perusahaan tidak lagi diukur dengan kualitas baris kode Anda, melainkan dengan mendorong organisasi teknik ke depan.
Tamu hari ini telah melalui hal itu. Sarah Dayan adalah insinyur staf di Algolia, platform “Search-as-a-Service” yang membantu pengembang membangun indeks dan kemampuan pencarian ke dalam platform mereka sendiri melalui API, dan host dari dua podcast teknologi: Pengalaman Pengembang dan Entre Devs. Dia menciptakan perpustakaan front-end, peran yang sangat cocok untuknya mengingat hasrat seumur hidupnya untuk pengalaman pengguna, desain, dan membangun sesuatu. Faktanya, Sarah telah terobsesi untuk membuat situs web sejak orang tuanya memasang internet broadband di ruang bawah tanahnya. Itu adalah cinta pada klik pertama. Dia mengumpulkan forum phpBB pertamanya pada usia 15, menulis halaman HTML pertamanya tidak lama setelah itu, dan tidak berhenti membangun sesuatu sejak itu.
Meskipun tidak memiliki pendidikan formal di bidang teknik, Sarah mendapatkan pekerjaan sebagai pengembang di konsultan Prancis Grand Manitou. Kemudian, empat tahun lalu, pada 2018, dia mendapat pekerjaan di Algolia sebagai software engineer. Dia rajin naik pangkat, akhirnya tumbuh menjadi peran kontributor individu seorang insinyur staf. Dan tiba-tiba, semua yang dia pedulikan selama beberapa tahun terakhir – menjadi insinyur yang lebih baik, menulis kode yang lebih baik – membuka jalan bagi tantangan baru. Bagaimana dia memberikan arahan teknis yang tepat untuk perusahaan? Buka blokir kemacetan? Mentor dan membantu insinyur lain seperti yang dilakukan orang lain untuknya?
Dalam episode ini, kami duduk bersama Sarah untuk berbicara tentang banyak nuansa, keahlian, dan harapan dari peran staf plus insinyur.
Berikut adalah beberapa takeaways favorit kami dari percakapan:
- Jika Anda tidak ingin ketinggalan, teruslah belajar. Diskusikan ide dan dapatkan umpan balik dari insinyur lain dengan perspektif dan latar belakang yang berbeda.
- Sebagai insinyur staf, banyak energi Anda digunakan untuk kolaborasi lintas tim untuk visi dan strategi. Di mana perusahaan akan berada dalam lima tahun? Bagaimana caramu untuk sampai kesana?
- Memiliki staf insinyur sebagai mentor memungkinkan lebih banyak orang junior untuk mendapatkan kejelasan tentang langkah mana yang harus diambil untuk mencapai peran tersebut dan Anda mempercepat proses penciptaan pemimpin teknik.
- Berlawanan dengan kepercayaan populer, seorang insinyur staf bukanlah perbaikan cepat untuk masalah struktural. Sebelum menerima pekerjaan baru, tanyakan apa yang diharapkan dari Anda untuk menghindari kesalahpahaman di kemudian hari.
- Insinyur staf harus memahami kebutuhan perusahaan sehingga mereka dapat membantunya mencapai tujuannya. Saat orientasi, baca dokumentasi sebanyak-banyaknya dan bicaralah dengan sebanyak mungkin orang.
Jika Anda menikmati diskusi kami, lihat lebih banyak episode podcast kami. Anda dapat mengikuti di iTunes, Spotify, YouTube atau mengambil umpan RSS di pemutar pilihan Anda. Berikut ini adalah transkrip episode yang diedit dengan ringan.
Jangan berhenti belajar
Brian Scanlan: Terima kasih banyak, Sarah, telah bergabung dengan kami di acara hari ini. Saya senang mendapat kesempatan untuk berbicara dengan Anda. Sebelum kita berbicara tentang peran dan pekerjaan Anda di Algolia, saya ingin mendengar tentang perjalanan Anda hingga saat ini. Bagaimana perjalanan Anda ke tempat Anda hari ini dimulai?
Sarah Dayan: Baiklah, halo, terima kasih telah menerima saya. Nah, itu sebenarnya cerita yang lucu. Saat ini saya berusia 32 tahun, dan kami memiliki broadband dan internet tak terbatas di rumah ketika saya berusia 15 tahun. Saya selalu membangun sesuatu, dan pertama kali saya melihat situs web, saya seperti, "Saya harus tahu bagaimana melakukannya." Satu hal mengarah ke hal lain, dan saya membangun forum pertama saya dengan phpBB. PHP sangat, sangat besar, dan masih besar, tapi itu benar-benar bahasa untuk web saat itu.
“Saya memutuskan ini bukan hal saya, bahwa mungkin saya harus melakukan apa yang saya sukai. Jadi, saya kembali ke apa yang saya sukai – membangun situs web”
Saat itu, berkarir di bidang teknologi, terutama sebagai software engineer, tidak sekeren dan sepanas sekarang ini. Orang tua saya berpikir saya harus menjadi jurnalis karena saya pandai bahasa dan sastra di sekolah. Dan itu adalah hal pertama yang saya lakukan. Saya melakukan tahun pertama saya dalam jurnalisme, yang saya benar-benar gagal, dan kemudian saya memutuskan ini bukan hal saya, bahwa mungkin saya harus melakukan apa yang saya sukai. Jadi, saya kembali ke hal yang saya sukai – membangun situs web. Saya mendapatkan pekerjaan pertama saya di sebuah agensi dan menghabiskan enam tahun di sana. Itu mengajari saya banyak tentang pekerjaan, tentang bekerja dengan pelanggan, dengan orang-orang yang tahu apa yang mereka inginkan dan orang-orang yang tidak tahu apa yang mereka inginkan. Kemudian, saya pindah ke dunia startup. Saya telah coding selama lebih dari 15 tahun, tetapi secara profesional, saya telah melakukannya selama 12 tahun. Dan inilah yang membawa saya ke peran saya saat ini di Algolia. Saya sudah di sana selama empat tahun dan terus bertambah.
Brian: Super. Apakah Anda memiliki pelajaran menarik yang Anda pelajari sejak awal yang melekat pada Anda?
Sarah: Saya tidak memiliki jalur klasik menuju teknologi. Saya tidak pergi ke sekolah teknik, dan adalah mungkin untuk memiliki karir yang hebat di bidang teknologi jika Anda tidak melakukannya. Anda pasti bisa belajar secara otodidak, Anda bisa belajar dari orang lain, dan Anda tidak harus memiliki gelar. Namun tidak memiliki gelar bukanlah alasan untuk tidak belajar. Ada posting blog yang bagus oleh Sarah Drasner, seorang manajer teknik di Google, tentang Trik-CSS tentang itu. Meskipun Anda dapat berkarir di bidang teknologi tanpa gelar, itu tidak membebaskan Anda dari belajar dan mencari pengetahuan.
“Saya tidak mendapatkan umpan balik, saya tidak melakukan percakapan dengan orang lain: dengan insinyur lain, dengan perspektif lain, latar belakang lain. Jadi aku tertinggal”
Dan satu hal yang sebenarnya Anda pelajari di sekolah adalah belajar untuk belajar, dan itu adalah keterampilan yang sangat penting. Di awal karir saya, di agensi yang saya ceritakan, saya adalah satu-satunya karyawan untuk waktu yang lama. Aku sendirian. Dan saya memiliki bos saya, yang juga coding tetapi sedikit dihapus dari hal-hal yang saya lakukan. Dan meskipun bekerja sendiri dapat membebaskan – Anda memiliki banyak kepercayaan, banyak kebebasan – Anda tidak belajar dengan cepat karena Anda tidak memiliki umpan balik atau perspektif lain selain dari Anda sendiri. Dan jika Anda bahkan tidak melakukan pembelajaran aktif, Anda akan tertinggal.
Itulah salah satu hal yang terjadi pada saya. Saya tidak mendapatkan umpan balik, saya tidak melakukan percakapan dengan orang lain: dengan insinyur lain, dengan perspektif lain, latar belakang lain. Dan jadi saya tertinggal. Saya mengandalkan pengetahuan yang saya miliki, dan saya tidak punya alasan untuk melakukan sesuatu secara berbeda karena itu berhasil. Itu akan menjadi salah satu pelajaran terbesar yang saya dapatkan di awal karir saya. Terutama jika Anda tidak memiliki perjalanan klasik di bidang teknologi, mengelilingi diri Anda dengan orang lain yang memberi Anda umpan balik dan perspektif mereka sangat berharga, dan itu akan meningkatkan karier Anda.
Brian: Saya pikir itu saran yang bagus untuk siapa pun dalam peran profesional apa pun, tetapi sepertinya itu benar-benar berhasil untuk Anda. Apakah Anda melewatkan sesuatu tentang tidak bekerja dengan PHP akhir-akhir ini?
Sarah: Saya pikir PHP adalah bahasa yang hebat. Anda dapat menemukan banyak inspirasi dari PHP dalam JavaScript modern. Saya tidak lagi bekerja dengannya karena JavaScript telah berkembang ke titik di mana Anda dapat menggunakannya di mana pun Anda ingin menggunakan PHP. Dan terutama sebagai teknisi front-end, ada banyak keuntungan menggunakan bahasa yang sama di front end dan back end, seperti berbagi bersama. Tapi saya pikir PHP adalah bahasa yang hebat. Itu mendapat banyak lelucon buruk dan, "Oh, PHP sudah mati," tetapi ketika Anda melihat kesuksesan sesuatu seperti Laravel, saya merasa PHP masih jauh dari mati.
Ketika saya masuk ke PHP, kerangka yang digunakan orang serius disebut kerangka Zen. Sebenarnya, saya percaya Zen adalah perusahaan di balik PHP, atau setidaknya yang mengambilnya kembali. Tidak ada yang menggunakan kerangka Zen lagi, setidaknya tidak untuk proyek baru, tetapi senang melihat di mana PHP sekarang. Ini masih berkembang, orang-orang menikmati coding di PHP, dan saya pikir itu bagus. Ini bukan untuk semua orang, tetapi Anda melakukannya. Setiap orang dapat duduk di meja dengan bahasa yang mereka sukai.
Menaiki tangga teknik
Brian: Saat ini Anda adalah staf insinyur di Algolia. Ceritakan sedikit tentang peran itu dan apa yang Anda kerjakan, dan kita akan beralih ke apa itu staf insinyur.
Sarah: Tentu saja. Saya seorang insinyur staf dan saya bekerja di ujung depan. Saya berada di tim yang disebut pengalaman front-end, singkatnya FX, dan kami bekerja di perpustakaan front-end untuk Algolia. Algolia adalah mesin pencari, jadi ujung ke ujung. Anda memiliki mesin dan beberapa klien API dalam berbagai bahasa untuk mengirim data Anda ke pencarian, tetapi Anda juga memiliki perpustakaan front-end, karena yang memiliki waktu untuk membuat kotak pencarian kerja yang dapat diakses, daftar klik, daftar perbaikan, atau menu hierarkis?
Semua hal itu sulit untuk diterapkan dengan baik. Jadi kami melakukannya untuk pelanggan, dan itulah tim yang saya kerjakan. Saya seorang kontributor individu (IC) dan saya tidak berada di jalur kepemimpinan apa pun. Tetapi masalahnya adalah, saat Anda tumbuh ke peran yang lebih tinggi sebagai IC, realitas Anda sedikit menyatu dengan peran kepemimpinan Anda. Saya tidak memiliki laporan dan saya tidak mengelola siapa pun, tetapi saya menghabiskan banyak waktu dengan manajer saya untuk topik yang lebih pada aspek visi. Tapi saya masih membuat kode setiap hari, dan seperti semua orang, saya memberikan ulasan dan mendapatkan ulasan. Jadi itu masih peran IC. Di Algolia, Anda dapat tumbuh ke tingkat yang cukup maju dan tetap menjadi kontributor individu yang mendapatkan kode setiap hari.
“Apa pun di atas senior dan Anda mulai menuangkan banyak energi ke dalam strategi – apa visinya, di mana produk akan berada dalam lima tahun, dan bagaimana kita akan berhasil dalam hal-hal itu?”
Brian: Menurut Anda, berapa banyak waktu yang Anda habiskan untuk pengiriman versus semua pekerjaan lainnya? Berbagi konteks, mengerjakan strategi, hal semacam itu.
Sarah: Itu sulit diukur. Saya akan mengatakan 50/50. Ada kalanya saya banyak membuat kode, dan saya menyertakan ulasan dalam pengkodean karena itu adalah energi yang sama yang Anda gunakan. Tetapi ada juga banyak waktu untuk menyusun strategi, banyak rapat, banyak dokumen visi, banyak pemikiran, banyak percakapan untuk mengumpulkan umpan balik, seperti bekerja dengan PM, peneliti, desainer… semua itu adalah bagian dari pekerjaan . Di Algolia Anda memiliki staf senior, kepala sekolah, dan lain-lain. Apa pun di atas senior dan Anda mulai menuangkan banyak energi ke dalam strategi - apa visinya, di mana produk akan berada dalam lima tahun, dan bagaimana kita akan berhasil dalam hal-hal itu? Bagaimana kita bisa memastikan bahwa, jika kita tidak berhasil, kita memiliki rencana cadangan? Apa pun yang dapat Anda pikirkan untuk diterapkan pada proyek seperti pengkodean ketika Anda seorang insinyur senior, Anda menerapkannya pada strategi produk. Anda banyak bekerja pada produk, dan itulah salah satu hal yang paling saya sukai tentang bekerja di startup teknologi.
Ketika saya berada di sebuah agensi, Anda tidak melakukan strategi apa pun, Anda tidak mengatakan apa yang Anda pikirkan, dan Anda tidak selalu diharapkan untuk memberikan nasihat. Anda melakukan apa yang diperintahkan. Tetapi ketika Anda adalah seorang insinyur di sebuah startup, terutama pada level tersebut, suara dan visi Anda sangat berarti. Kami sedang membangun produk untuk insinyur. Dan meskipun kita harus sangat berhati-hati untuk tidak membangun sesuatu untuk diri kita sendiri – kita memiliki kutukan pengetahuan, kita tahu produknya, kita tahu cara menggunakannya, dan kita tahu semua peringatannya – kita masih peka terhadap apa yang dipedulikan para insinyur tentang, apa yang mereka inginkan, dan apa yang akan membuat hidup mereka mudah atau sulit. Jadi ada penekanan besar pada produk, pada membawa ide ke meja, pada ide-ide yang menantang, pada memastikan bahwa Anda membangun hal terbaik yang akan bertahan lama.
“Setelah menghabiskan bertahun-tahun memikirkan bagaimana menjadi insinyur yang lebih baik, Anda akan membutuhkan perubahan pola pikir untuk mulai memikirkan hal-hal lain. Bagaimana saya bisa membantu orang lain? Bagaimana saya bisa membuka blokir situasi?”
Brian: Berapa banyak waktu yang Anda habiskan untuk bekerja dengan staf dan insinyur utama di luar organisasi atau tim Anda? Apakah itu komunitas yang aktif di perusahaan Anda? Apakah Anda bisa melakukan banyak pekerjaan dalam kolaborasi dengan itu? Apakah Anda sebagian besar bekerja secara mandiri dalam kelompok Anda? Atau apakah ada bagian dari insinyur staf senior lain yang bekerja dengan Anda?
Sarah: Tidak sebanyak yang saya inginkan. Di organisasi mana pun, semakin tinggi level Anda, semakin sedikit orang yang Anda miliki. Jadi tidak seperti ada satu ton IC lima, IC enam, staf, dan kepala sekolah. Kami mempekerjakan banyak orang senior sekarang, jadi jawaban saya mungkin berbeda dalam enam bulan. Saya menghabiskan banyak waktu untuk berbicara dengan staf lain atau bahkan insinyur utama, tetapi tidak seperti ada komunitas atau pejabat apa pun hanya karena kami tidak banyak. Sekarang, saya menghabiskan banyak waktu berdiskusi dengan senior ke atas karena itu adalah bagian dari peran saya.
Bagian dari peran saya adalah membantu orang-orang di tingkat senior tumbuh dan dipromosikan ke tingkat staf. Sebagai insinyur senior di banyak perusahaan, terutama ukuran Algolia, Anda tahu apa yang perlu Anda lakukan untuk mencapainya. Ini lebih merupakan daftar periksa. Setelah itu, menjadi lebih rumit karena ada banyak hal yang bisa jadi interpretasi, hal-hal yang bisa Anda lakukan sangat berbeda dari orang lain berdasarkan kepribadian Anda. Tapi idenya adalah, ketika Anda mencapai level senior, kami berharap Anda bisa optimal dalam hard skill Anda. Kami tahu bahwa Anda bagus, Anda berada pada level teknis tertentu, dan kami tidak berharap Anda tumbuh lebih tinggi dari itu, tetapi Anda akan diminta untuk mengembangkan jenis keterampilan lain.
“Kita harus menemukan apa yang Anda kuasai, apa yang Anda suka lakukan yang akan membantu Anda bersinar, dan mengolahnya. Ada banyak bimbingan yang terlibat”
Setelah menghabiskan waktu bertahun-tahun untuk memikirkan cara menjadi insinyur yang lebih baik, menulis kode yang lebih baik, membuat ulasan yang lebih baik, atau memiliki lebih sedikit komentar saat mendapatkan ulasan, Anda perlu mengubah pola pikir untuk mulai memikirkan hal lain. Bagaimana saya bisa membantu orang lain? Bagaimana saya bisa membuka blokir situasi? Bagaimana saya bisa membuat beban kerja saya sendiri? Ini belum tentu hal-hal yang harus Anda pikirkan sebelum mencapai level tersebut. Saya membantu orang mendekatinya, memahami apa yang mereka maksud, dan memahami bagian mana dari kepribadian mereka yang dapat mereka gunakan untuk mencapainya.
Beberapa orang suka berada di atas panggung dan melakukan pembicaraan, misalnya. Dan jika ini adalah sesuatu yang mereka sukai, tentu saja, saya harus membantu mereka mendapatkan keterlibatan konferensi yang lebih baik dan menulis panggilan untuk makalah yang lebih baik. Tetapi jika ini bukan milik Anda, tidak ada alasan mengapa kita harus berinvestasi dalam hal itu. Kita harus menemukan apa yang Anda kuasai, apa yang Anda suka lakukan yang akan membantu Anda bersinar, dan mengembangkannya. Ada banyak bimbingan yang terlibat. Ini adalah salah satu bagian favorit saya berada di tingkat senioritas ini.
Untuk sebuah perusahaan, tidak terlalu menarik untuk memiliki satu staf atau satu insinyur senior – Anda ingin memiliki 3, 5, 8, 16. Dan satu-satunya cara Anda dapat melakukannya adalah dengan memiliki orang-orang yang sudah ada membantu orang-orang yang satu tingkat lebih rendah. Anda tidak dapat mengharapkan manajer teknik Anda melakukan itu sendiri dengan seluruh tim. Ketika Anda memiliki insinyur yang membantu insinyur lain melakukan pekerjaan yang mereka lakukan satu atau dua tahun sebelumnya, Anda memiliki efek pengganda ini. Dan saya pikir ini sangat mendebarkan bagi orang-orang karena mereka bisa belajar dari orang lain, dari orang-orang yang benar-benar menjalani proses di organisasi yang sama. Ada keyakinan bahwa, jika mereka mengikuti langkah-langkah itu, jika mereka mendengarkan, itu mungkin berhasil. Saya ingin belajar dari insinyur utama yang dapat membantu saya memahami apa yang harus saya lakukan untuk mencapainya.
Ini sangat menarik bagi orang yang mengajar karena mereka dapat membedah apa yang sebenarnya mereka lakukan. Itu menjadi kabur setelahnya, dan Anda seperti, "Ya, saya baru saja melakukan sedikit ini, sedikit itu." Tidak. Apa yang kamu lakukan? Apa langkah konkrit yang Anda lakukan? Apa hal-hal yang Anda katakan ya? Apa hal-hal yang Anda katakan tidak? Saya pikir ini membantu Anda memperjelas ide-ide Anda, memperjelas proses Anda, dan itu membuat Anda lebih efisien untuk yang berikutnya.
Staf orientasi plus insinyur
Brian: Anda menyebutkan tentang penempatan staf baru dan insinyur utama ke dalam sebuah organisasi, yang bisa sangat rumit. Apakah ini sesuatu yang Anda punya pengalaman?
Sarah: Sejujurnya ini bukan sesuatu yang telah kami lakukan. Kami memiliki tiga atau empat insinyur utama, dan semuanya tidak ada dalam tim saya. Pengalaman yang saya miliki sebagian besar dengan membawa insinyur senior. Sekarang, ada hal-hal yang umum bagi semua orang, dan kemudian ada hal-hal yang mungkin menarik bagi para insinyur utama, dan saya masih dapat mencoba dan mencobanya.
“Orang yang sangat, sangat senior dapat membantu Anda dalam banyak hal, tetapi mereka tidak akan menyelesaikan masalah struktural perusahaan atau tim”
Kejelasan sangat penting, dan, tentu saja, Anda tidak mengharapkan pegangan yang sama ketika Anda mempekerjakan staf atau insinyur utama. Anda ingin mereka menjadi pemula. Kejelasan bukan tentang memberi tahu Anda apa yang diharapkan dari Anda, semua tugas, dan lain-lain, melainkan memberi Anda gambaran tentang misi Anda. Apa tujuan Anda di sini? Apa yang kamu lakukan di sini? Dan saya akan mengatakan ini dimulai pada tingkat wawancara. Rekomendasi saya untuk staf atau insinyur utama yang bergabung dengan perusahaan adalah menanyakan hal itu karena terkadang, orang mencoba mempekerjakan peran yang sangat senior untuk memperbaiki masalah mereka. Mereka seperti, "Oh, mari kita pekerjakan seseorang yang sangat, sangat senior karena mereka tahu hal-hal yang tidak kita ketahui." Dan itu tidak benar. Orang yang sangat, sangat senior dapat membantu Anda dalam banyak hal, tetapi mereka tidak akan menyelesaikan masalah struktural perusahaan atau tim.
Dan di sisi lain, seorang manajer teknik harus bertanya-tanya mengapa mereka berpikir mereka membutuhkan orang itu. Sebagian besar waktu, Anda tidak mempekerjakan seseorang pada level ini untuk mengkodekan kehebatan. Jika Anda memiliki insinyur senior di tim Anda, itu akan menjadi IC empat di Algolia. Mereka sudah sangat mampu coding-bijaksana, atau setidaknya mereka seharusnya. Seorang staf atau insinyur utama datang dengan pengalaman tentang sesuatu yang ingin Anda lakukan, dan Anda mungkin membutuhkannya, misalnya, ketika Anda tahu Anda perlu mencapai skala yang belum pernah dicapai oleh siapa pun di tim sebelumnya. Mungkin Anda bisa mengetahuinya, tetapi Anda menginginkan akselerator, dan inilah yang akan dilakukan oleh orang yang sangat senior di tim Anda.
Mengajukan pertanyaan-pertanyaan itu sebelumnya adalah cara yang baik untuk memastikan tidak ada misalignment pada apa yang diharapkan. Jika Anda sangat senior dan Anda diminta untuk menjadi coding atau bekerja di level senior hanya karena ada ketidaksejajaran, Anda akan kecewa, dan kemungkinan besar Anda akan pergi. Anda tidak ingin menghabiskan banyak waktu untuk mempekerjakan seseorang pada tingkat ini hanya untuk membiarkan mereka pergi karena biayanya sangat mahal.
Setelah itu, saya mengharapkan seseorang di tingkat senioritas ini untuk banyak membaca dan melakukan banyak percakapan. Ini adalah sesuatu yang biasanya tidak Anda lakukan ketika Anda adalah seorang insinyur junior. Anda datang ke organisasi Anda, Anda diberi tugas pertama Anda, dan itu mengalir begitu saja – Anda mulai bekerja, Anda mulai membuat kode, dan inilah yang harus Anda lakukan karena inilah yang akan membawa Anda ke langkah berikutnya.
“Peran Anda adalah memastikan produk yang dikirimkan akan sesuai dan akan berkembang. Dan Anda tidak dapat melakukan itu jika Anda tidak mendiskusikannya dengan orang lain di perusahaan”
Tetapi ketika Anda berada di level senior itu, penting bagi Anda untuk memahami di mana Anda berada, apa yang terjadi, siapa yang melakukan apa. Anda perlu menciptakan hubungan tidak hanya dengan insinyur lain dan orang-orang senior, tetapi dengan lebih banyak orang junior, manajer produk, desainer, dan peneliti. Anda perlu memahami cara kerja perusahaan dan bagaimana Anda dapat menyesuaikannya, apa yang dapat Anda bantu tingkatkan. Jika ada dokumentasi internal tertulis, bacalah, dan setelah selesai, baca lagi.
Kemudian, tanyakan kepada manajer teknik Anda siapa orang yang harus Anda temui. Setiap kali Anda berbicara dengan orang baru, tanyakan kepada mereka siapa yang menurut mereka menarik untuk Anda ajak bicara. Ini akan memberi Anda sayap karena Anda akan menciptakan hubungan dan memahami apa yang terjadi. Apa saja produknya? Apa perjuangan saat ini? Di mana Anda dapat membantu? Dan bagaimana tim Anda dan produk yang Anda bangun cocok dengan skema itu? Karena pada level tersebut, dengan fokus pada produk ini, tidak lagi hanya tentang kualitas kode. Para senior di tim sudah mengurus itu, dan mereka melakukannya dengan sangat baik. Peran Anda adalah memastikan produk yang dikirimkan akan sesuai dan akan berkembang. Dan Anda tidak dapat melakukannya jika Anda tidak mendiskusikannya dengan orang lain di perusahaan.
Tantangan baru
Brian: Untuk pendengar yang tidak tahu, Algolia adalah API pencarian yang dihosting yang kuat. Kelihatannya seperti perusahaan yang cukup sukses dari luar, tapi saya yakin ada banyak tantangan dan hal di pikiran Anda. Bisakah Anda memberi kami gambaran tentang beberapa masalah besar yang sedang Anda pikirkan atau kerjakan?
“Idenya adalah tidak peduli jalan apa yang Anda ambil untuk mencari data itu, mendapatkannya, dan mendarat di halaman, Anda akan muncul dengan data yang benar”
Sarah: Seperti yang Anda katakan, Algolia adalah API pencarian yang dihosting. Itu adalah API terbesar yang kami miliki, dan itu yang paling sukses untuk saat ini, tetapi kami juga telah sedikit berkembang. Saat ini, ada produk bernama Algolia Recommend, yang menggunakan kumpulan data yang sama dengan yang Anda gunakan untuk pencarian, tetapi berdasarkan produk tertentu, ini memberi Anda rekomendasi.
Inti dari Algolia tidak hanya untuk mencari tetapi juga untuk memunculkan konten. Anda memiliki banyak konten, tetapi tidak semuanya relevan sekaligus untuk orang yang sama. Idenya adalah bahwa apa pun jalur yang Anda ambil untuk mencari data itu, mendapatkannya, dan mendarat di halaman, Anda akan muncul dengan data yang tepat. Inilah inti dari Algolia. Ada tantangan dengan itu. Kami adalah pakar penelusuran, tetapi aspek rekomendasi dan pembelajaran mesin adalah teknologi yang jauh lebih baru, jadi kami belajar dengan hal-hal terbaru. Ada banyak hal yang bisa kita pelajari dibandingkan dengan pencarian. Ini bukan tantangan terbesar, namun tetap menjadi tantangan untuk memastikan kami dapat mengulangi kesuksesan yang sama seperti yang kami raih dengan penelusuran.
Sekarang, ada hal-hal yang Algolia tidak kuasai. Ini adalah mesin pencari, bukan database. Ini akan menjadi cepat, pada akhirnya akan konsisten, tetapi Anda tidak memiliki jaminan bahwa Anda akan memiliki semua data Anda, bahwa data Anda selalu konsisten, atau bahwa semua data Anda akan ada di sana. Itu adalah pilihan desain seputar mesin pencari, yang membuatnya sangat berbeda dari database. Karena itu, banyak orang suka menggunakan Algolia sebagai database karena sangat mudah untuk mengirim data ke Algolia, dan itu ada di sana, dan cepat. Mungkin ada sesuatu untuk dipelajari di sekitar itu. Mungkin itu juga bisa menjadi database, dan saya tidak mengatakan itu akan menjadi, tapi mungkin bisa. Mungkin ada hal lain di luar sana yang harus kita pahami dan teliti.
Ada banyak kasus penggunaan yang tidak dapat dikerjakan oleh Algolia. Salah satunya adalah use case pemesanan. Jika Anda ingin memesan Airbnb, saat Anda mencarinya, itu ada di hasil Anda, artinya tersedia. Tetapi segera setelah Anda mencapai halaman, itu tidak lagi tersedia karena Anda mereplikasi data Anda dari database Anda ke Algolia. Saat Anda menyimpan sesuatu di database Anda, Anda akan mengirim perubahan itu ke Algolia dalam format yang sedikit berbeda. Dan karena ada penundaan itu – ini bukan waktu nyata – sesuatu seperti kasus penggunaan pemesanan tidak dapat berfungsi. Ketika Anda berurusan dengan Airbnbs, sesuatu yang tersedia saat ini mungkin tidak tersedia dalam 30 detik, tetapi mungkin masih muncul di mesin pencari Anda karena ketika Anda menyimpan, Anda mungkin perlu 10 detik atau sesuatu seperti itu untuk disebarkan ke Algolia, dan mungkin gagal dan Anda perlu melakukannya lagi. Itu adalah hal-hal di tingkat mesin pencari yang kami pikirkan. Apakah itu sesuatu yang bisa kita dukung? Apakah itu keluar dari pertanyaan? Apa kasus bisnis di balik itu? Karena itu mendorong banyak hal.
“Seharusnya tidak terlihat; itu harus mulus. Fakta bahwa itu adalah API yang terpisah bukanlah masalah Anda. Itu masalah kita untuk dipecahkan”
Sekarang, mengenai tim front-end, saya menyebutkan Algolia Recommend. Ketika Anda seorang pelanggan, Anda tidak terlalu peduli bahwa ada produk yang berbeda. Anda tidak peduli bahwa Anda memiliki Algolia Search dengan fitur tersebut dan Algolia Recommend dengan sub-fitur tersebut. Anda berlangganan Algolia dan membayar biaya bulanan atau tahunan untuk serangkaian fitur yang menurut Anda berfungsi dengan baik. Anda tidak ingin dan tidak perlu memahami batasan buatan yang kami buat secara internal antara API ini dan API data.
Ada pepatah, "jangan kirimkan bagan organisasi Anda," dan saya pikir ini adalah salah satu topik besar berikutnya bagi kami. Bagaimana kami bisa memastikan bahwa, di ujung depan, ketika Anda menggunakan perpustakaan ujung depan Algolia, Anda tidak perlu bertanya-tanya apakah Anda memerlukan ini atau itu? Bahwa Anda tidak merasakan batas-batas itu? Itu harus tidak terlihat; itu harus mulus. Fakta bahwa itu adalah API yang terpisah bukanlah masalah Anda. Itu masalah kita untuk dipecahkan.
Kami membuat pustaka yang sangat kuat digabungkan ke API pencarian, dan sekarang kami harus memperluas ke API yang lebih baru yang dapat bekerja bersama, dan terkadang Anda perlu melakukan panggilan ke satu, lalu panggilan ke yang lain untuk mendapatkan respons akhir. Semua hal itu sekarang tidak semulus yang kita inginkan. Masih sedikit kasar di bagian tepinya saat Anda ingin menghubungkan API tersebut bersama-sama. Itu mungkin, tetapi Anda harus membaca tutorial, menindaklanjuti, melakukan sedikit perubahan di sana-sini, dan menulis beberapa kode boilerplate. Ini tidak menyenangkan, ini tidak menyenangkan, dan terlalu banyak pekerjaan. Jika kami ingin memberi tahu Anda, "gunakan perpustakaan itu," itu perlu melakukan pekerjaan yang tidak ingin Anda lakukan. Tidak ada pembenaran untuk menggunakan perpustakaan jika primitif tingkat rendah semudah digunakan, bukan?
Saat ini, salah satu tantangan terbesar adalah memastikan kami meningkatkan nilai perpustakaan. Mereka sudah melakukan banyak hal yang kebanyakan orang tidak ingin melakukannya, tetapi pada titik tertentu, untuk pelanggan tertentu, ini tidak mulus dan menyenangkan seperti dulu ketika kami hanya melakukan pencarian. Dan inilah perasaan yang kita kejar. Perasaan, "Wow, ini jauh lebih sederhana daripada yang saya kira."
Brian: Terakhir, ke mana pendengar kami bisa mengikuti Anda?
Sarah: Jadi Anda kebanyakan bisa menemukan saya di Twitter, saya frontstuff_io. Saya sangat sadar bahwa ini adalah pegangan terburuk di Twitter. Anda juga dapat menemukan saya di sarahdayan.com dan ikuti saya di GitHub jika Anda mau; Saya kadang-kadang melakukan sesuatu. Tapi ya, jika Anda ingin mengobrol, saya yakin DM saya terbuka, jadi kirimkan saya apa saja.
Brian: Super. Sarah, terima kasih banyak telah bergabung denganku hari ini.
Sarah: Terima kasih telah memilikiku. Itu tadi menyenangkan.