Dipublikasikan: 28 Oktober 2025
Saya Harsh Singh, mahasiswa tahun terakhir B.Tech di bidang Teknik Kimia di IIT (ISM) Dhanbad dan pada tahun 2025 saya adalah peserta Google Summer of Code (GSOC). Postingan ini menceritakan perjalanan saya hingga diterima di GSoC, dan beberapa hal yang saya pelajari selama terlibat.
Sebelum GSoC: Menemukan pengembangan ekstensi
Pada tahun pertama, seperti banyak orang lainnya, saya sangat ingin bergabung dengan CyberLabs, klub teknologi resmi kampus kami. Untuk mempersiapkan diri, saya menemui seorang senior yang menunjukkan kepada saya ekstensi Chrome yang telah ia buat untuk masuk ke klub tersebut. Hal ini benar-benar berbeda dari pengembangan web standar yang saya ketahui. Cara ini tampak sangat keren untuk menyuntikkan skrip dan mengubah situs di browser Anda sendiri.
Saya bereksperimen dengan banyak API ekstensi, bahkan menyaksikan transisi dari Manifes V2 ke V3. Saya berhasil membuat project kecil menggunakan ekstensi tersebut, bergabung dengan CyberLabs, lalu sibuk dengan kehidupan kuliah, sehingga tidak mengembangkan ekstensi untuk sementara waktu.
Baru-baru ini, saat berpikir untuk mendaftar ke Google Summer of Code (GSoC), saya menemukan project di Chrome Extensions API. Nostalgia menghantam saya dengan keras–"Bukankah keren kalau kali ini membuat API yang suatu saat nanti akan digunakan oleh siswa kelas dua untuk memasuki CyberLabs? Itu akan menjadi fleksibilitas terbaik." Karena saya sudah memahami sebagian besar terminologi ekstensi dari pekerjaan saya sebelumnya, project ini terasa sangat cocok untuk saya.
Bersiap untuk mendaftar
Secara spontan, saya memutuskan untuk menghubungi Oliver, seorang Developer Relations Engineer di tim Ekstensi Chrome. Saya bertanya kepadanya apa yang diperlukan untuk menjadi pelamar yang berhasil dalam program GSoC Chromium. Dia membalas dalam beberapa hari. Emailnya sangat memotivasi; dia mengatakan bahwa mereka hanya ingin melihat apakah saya bisa menjelajahi codebase dan menulis beberapa C++.
Saya mulai dengan menyiapkan Chromium di komputer saya. Itu adalah perjuangan yang nyata; saya membutuhkan empat hari penuh dan upaya yang tak terhitung jumlahnya untuk akhirnya menyiapkan codebase yang sangat besar dan mendapatkan build yang berhasil. Saya menemukan masalah sederhana secara online—sesuatu tentang sidePanel.open() tanpa gestur pengguna—dan mengirimkan patch untuk memperbaikinya. (Melihat ke belakang, itu adalah perubahan kecil 🙂). Saya mengirim email kepada Oliver tentang progres saya. Dia mengatakan bahwa mereka tidak berencana untuk mendukungnya, tetapi dia juga mengatakan bahwa pekerjaan yang telah saya lakukan sudah cukup untuk menunjukkan bahwa saya serius. Kemudian, dia menyarankan agar saya mengerjakan metode getPosition untuk panel samping. Saya berhasil memecahkannya, mengirim email lagi kepadanya, dan dia sangat senang, mengatakan bahwa pendekatan saya sejalan dengan apa yang telah dibahas timnya. Hal ini memberi saya keyakinan untuk melanjutkan project, karena saya tahu bahwa saya dapat memahami kode dan melakukan perubahan.
Proposal GSoC saya
Selanjutnya adalah proposal GSoC. Deskripsi project awal, "SidePanel API & DNR API", sangat luas, jadi saya tidak yakin tugas spesifik apa yang harus dicantumkan atau cara membuat linimasa dalam proposal saya. Saya mengirim email kepada Oliver tentang hal ini, dan dia membalas bahwa dia telah memperbarui deskripsi project. Dengan senang hati, dia telah menambahkan beberapa API, termasuk sidePanel.getPosition API yang sedang saya kerjakan.
Komponen utama proposal saya adalah pemahaman tentang proyek, ide desain, pekerjaan pra-proposal, dan jadwal hasil kerja. Saya secara akurat memperkirakan ukuran tugas saya, karena hal ini menunjukkan pemahaman yang menyeluruh tentang pekerjaan yang terlibat. Saya membuat draf proposal dan meninjaunya dua kali.
Satu hal yang saya sesali, yang merupakan tips penting bagi pelamar di masa mendatang, adalah tidak menyertakan spesifikasi desain yang tepat untuk fitur yang saya rencanakan untuk dibuat. Misalnya, saat mengusulkan API untuk menutup panel samping, saya harus menguraikan parameter, membenarkan pilihan saya, menjelaskan cara menangani kasus ekstrem, dan menjelaskan cara API dapat distandardisasi untuk semua browser. Hal ini akan menunjukkan tingkat pemahaman yang jauh lebih dalam.
Dalam konteks project ekstensi Chromium, badan utama adalah WECG (WebExtensions Community Group, dibaca "wee-C-G"), tempat desain API baru dibahas secara formal. Selama periode GSoC, kontributor mungkin perlu mempresentasikan proposal API mereka kepada grup ini. Oleh karena itu, menyiapkan ide desain dalam proposal GSoC Anda adalah keuntungan besar, karena menunjukkan kepada mentor bahwa Anda siap untuk langkah penting ini dan akan melakukannya dengan baik selama periode GSoC.
Pada awal Mei, saya menerima email—saya diterima! 🙂
Kontribusi saya selama GSoC
Periode GSoC sangat luar biasa. Mentor saya, Solomon, sangat baik, dan kami mengadakan rapat mingguan yang produktif yang membuat saya tetap fokus. Saya juga mengenal kontributor lain, Amit P, yang sangat membantu setiap kali saya merasa frustrasi. Menghadiri rapat WECG membuka mata saya; saya melihat cara kerja di tingkat tersebut dan memahami mengapa pengalaman sangat penting. Saya mendiskusikan proposal API saya di sana dan mendapatkan lampu hijau dari vendor browser lain.
Saya membuka beberapa CL (changelist) di awal. Progres saya melambat di kemudian hari karena proses peninjauan kode yang berulang, tetapi saya senang untuk terus melakukannya. Kontribusi utama saya yang digabungkan adalah untuk Side Panel API:
sidePanel.getLayout()APIsidePanel.close()API- Peristiwa
sidePanel.onOpened()dansidePanel.onClosed()(Peristiwa ini didasarkan pada proposal siklus proses dari Microsoft)
CL saya yang lain untuk Commands API masih dalam proses (bergantung pada seberapa aktif saya setelah GSoC 🙂). Anda dapat melihat perincian mendetail dalam laporan akhir saya, yang tersedia di link "lihat kode" di halaman project GSoC saya.
Terima kasih khusus kepada Oliver Dunk, Solomon Kinard, Kelvin Jiang, Devlin Cronin, Tom Lukaszewicz, dan Andrea Orru, yang telah meninjau hampir semua CL saya. Rasanya luar biasa melihat kode saya menjadi bagian dari Chrome. Mentor saya menggambarkan saya sebagai orang yang memiliki rasa "kepemilikan" yang kuat, yang merupakan pujian besar bagi saya.
Menyelesaikan
Jika Anda bertanya kepada saya apa yang saya dapatkan dari GSoC, itu lebih dari sekadar pengetahuan teknis. Hal ini memberi saya kesempatan untuk terlibat dalam diskusi penting yang akan memengaruhi beberapa developer ekstensi di luar sana. Ini adalah pekerjaan pertama saya yang pernah digunakan dalam aplikasi dunia nyata. Saya bertemu dengan mentor pasien yang membimbing dan mengajari saya banyak hal, sehingga seluruh pengalaman ini sangat berharga.
Saya harap kisah saya dapat menjadi referensi yang berguna bagi orang lain yang ingin berkontribusi pada Chromium atau menjadi bagian dari Google Summer of Code.
Tips untuk orang yang mendaftar ke GSoC
- Pilih ide yang benar-benar Anda sukai. Minat harus menjadi prioritas utama Anda. Keterampilan Anda selalu dapat ditingkatkan, tetapi semangatlah yang akan membuat Anda terus maju saat keadaan sulit. Saya pernah berada di kedua sisi, dan percayalah: saat Anda mengerjakan sesuatu yang tidak Anda minati, Anda akan menyalahkan orang lain saat terjadi kesalahan. Namun, jika Anda menyukai pekerjaan tersebut, Anda akan melihatnya sebagai tantangan yang harus diatasi.
- Jangan takut dengan persaingan. Saya melihat banyak orang menjadi tidak bersemangat setelah melihat siapa saja yang mendaftar di saluran komunitas. Setiap proyek yang bagus akan memiliki persaingan. Fokus pada kelebihan Anda. Jika Anda pernah menggunakan library sebelumnya, temukan project yang menggunakannya. Anda akan memiliki keunggulan karena dapat membawa pengalaman unik Anda ke dalam diskusi.
- Mengakui keberuntungan dan berfokus pada komunikasi. Mari kita akui, GSoC melibatkan sedikit keberuntungan. Beberapa project populer mendapatkan lebih dari 300 proposal untuk 1-2 slot. Saya ragu mentor dapat membaca setiap detailnya. Inilah sebabnya komunikasi awal sangat penting. Terlibatlah dalam proyek sebelumnya, dan pastikan proposal Anda kuat dan langsung ke intinya.
- Jika Anda tidak terpilih, bukan berarti semuanya berakhir. Sekarang Anda memiliki kontribusi open source yang berharga dalam resume Anda. Gunakan itu untuk melamar peluang musim panas lainnya. Anda sudah melakukan pekerjaan yang sulit.
Terakhir:
"Setiap orang diciptakan untuk melakukan pekerjaan tertentu, dan keinginan untuk melakukan pekerjaan tersebut telah diletakkan di dalam hati setiap orang." — Rumi
Terima kasih telah membaca.