Veröffentlicht: 28. Oktober 2025
Ich bin Harsh Singh, ein B.Tech-Student im letzten Jahr im Bereich Verfahrenstechnik am IIT (ISM) Dhanbad und 2025 habe ich am Google Summer of Code (GSOC) teilgenommen. In diesem Beitrag beschreibe ich meinen Weg zur Aufnahme in das GSoC und einige der Dinge, die ich dabei gelernt habe.
Vor dem GSoC: Erweiterungsentwicklung entdecken
In meinem ersten Jahr wollte ich wie viele andere dem offiziellen Technologieclub unserer Hochschule, CyberLabs, beitreten. Zur Vorbereitung habe ich einen älteren Schüler gefragt, der mir eine Chrome-Erweiterung gezeigt hat, die er entwickelt hatte, um in den Club zu kommen. Es war völlig anders als die Webentwicklung, die ich kannte. Es schien eine tolle Möglichkeit zu sein, Skripts einzufügen und Websites im eigenen Browser zu ändern.
Ich habe mit vielen Erweiterungs-APIs experimentiert und sogar die Umstellung von Manifest V2 auf V3 miterlebt. Ich habe es geschafft, ein kleines Projekt damit zu erstellen, bin zu CyberLabs gekommen und war dann mit dem College beschäftigt, sodass ich die Entwicklung von Erweiterungen eine Weile auf Eis gelegt habe.
Vor Kurzem bin ich bei der Überlegung, mich für Google Summer of Code (GSoC) zu bewerben, auf ein Projekt zu Chrome-Erweiterungs-APIs gestoßen. Die Nostalgie hat mich gepackt: „Wäre es nicht cool, dieses Mal eine API zu entwickeln, die irgendwann in der Zukunft von einem Studenten im zweiten Studienjahr verwendet werden könnte, um CyberLabs zu betreten? Das wäre der beste Flex.“ Da ich die meisten Begriffe im Zusammenhang mit Erweiterungen bereits aus meiner bisherigen Arbeit kenne, ist das Projekt für mich wie geschaffen.
Vorbereitung auf die Übernahme
Ganz spontan beschloss ich, Oliver zu kontaktieren, einen Developer Relations Engineer im Chrome-Erweiterungsteam. Ich habe ihn gefragt, was ein erfolgreicher Bewerber für das GSoC-Programm von Chromium mitbringen muss. Er hat innerhalb weniger Tage geantwortet. Seine E-Mail war sehr ermutigend. Er sagte, sie wollten nur sehen, dass ich die Codebasis erkunden und etwas C++ schreiben konnte.
Zuerst habe ich Chromium auf meinem Computer eingerichtet. Es war wirklich schwierig. Ich habe vier Tage und unzählige Versuche gebraucht, um den riesigen Code zu konfigurieren und einen erfolgreichen Build zu erstellen. Ich habe online ein einfaches Problem gefunden – es ging um sidePanel.open() ohne Nutzeraktion – und einen Patch zur Behebung des Problems eingereicht. Rückblickend war es eine winzige Änderung 🙂. Ich habe Oliver eine E-Mail mit meinem Fortschritt geschickt. Er sagte mir, dass sie das nicht unterstützen wollen, aber dass meine Arbeit gezeigt hat, dass ich es ernst meine. Er schlug dann vor, dass ich an der getPosition-Methode für die Seitenleiste arbeiten sollte. Ich habe es dann herausgefunden und ihm noch einmal geschrieben. Er hat sich sehr gefreut und gesagt, dass mein Ansatz mit dem übereinstimmt, was sein Team besprochen hatte. Das hat mir das Vertrauen gegeben, mit dem Projekt fortzufahren, da ich wusste, dass ich den Code verstehen und Änderungen vornehmen kann.
Mein GSoC-Vorschlag
Als Nächstes stand der GSoC-Vorschlag an. Die ursprüngliche Projektbeschreibung „SidePanel APIs & DNR APIs“ war sehr allgemein gehalten. Ich war mir daher nicht sicher, welche konkreten Aufgaben ich auflisten oder wie ich einen Zeitplan in meinem Vorschlag erstellen sollte. Ich habe Oliver deswegen eine E‑Mail geschrieben und er hat geantwortet, dass er die Projektbeschreibung aktualisiert hat. Zu meiner Freude hatte er mehrere APIs hinzugefügt, darunter die sidePanel.getPosition API, an der ich bereits arbeitete.
Die wichtigsten Komponenten meines Vorschlags waren ein Verständnis des Projekts, Designideen, Vorarbeiten und ein Zeitplan für die Liefergegenstände. Ich habe den Umfang meiner Aufgaben genau festgelegt, was ein gründliches Verständnis der anfallenden Arbeit zeigt. Ich habe mein Angebot erstellt und es zweimal überprüfen lassen.
Eine Sache, die ich bereue und die ein wichtiger Tipp für zukünftige Bewerber ist, ist, dass ich keine ordnungsgemäße Designspezifikation für die Funktionen angegeben habe, die ich entwickeln wollte. Wenn ich beispielsweise eine API zum Schließen der Seitenleiste vorschlage, hätte ich die Parameter beschreiben, meine Entscheidungen begründen, erklären müssen, wie ich mit Grenzbedingungen umgehen würde, und beschreiben müssen, wie die API für alle Browser standardisiert werden könnte. Das hätte ein viel tieferes Verständnis gezeigt.
Im Zusammenhang mit dem Chromium-Erweiterungsprojekt ist die WECG (WebExtensions Community Group, ausgesprochen „wee-C-G“) ein wichtiges Gremium, in dem neue API-Designs formell diskutiert werden. Während des GSoC-Zeitraums müssen Mitwirkende dieser Gruppe möglicherweise ihre API-Vorschläge präsentieren. Daher ist es ein großer Vorteil, wenn Sie in Ihrem GSoC-Vorschlag bereits eine Designidee haben, da Sie so Mentoren zeigen, dass Sie auf diesen wichtigen Schritt vorbereitet sind und während des GSoC gut abschneiden.
Anfang Mai erhielt ich die E‑Mail: Ich wurde angenommen! 🙂
Meine Beiträge während des GSoC
Die GSoC-Zeit war fantastisch. Mein Mentor Solomon war unglaublich nett und wir hatten produktive wöchentliche Meetings, die mir geholfen haben, den Überblick zu behalten. Außerdem lernte ich einen anderen Beitragsersteller kennen, Amit P, der mir immer eine große Hilfe war, wenn ich frustriert war. Die Teilnahme an den WECG-Treffen war eine Offenbarung. Ich habe gesehen, wie die Dinge auf dieser Ebene funktionieren, und verstanden, warum Erfahrung so wichtig ist. Ich habe meine API-Vorschläge dort besprochen und von einem anderen Browseranbieter grünes Licht bekommen.
Am Anfang habe ich mehrere CLs (Changelists) geöffnet. Später verlangsamte sich mein Fortschritt aufgrund der Code-Reviews, aber ich war froh, dass ich dranblieb. Meine wichtigsten zusammengeführten Beiträge bezogen sich auf die Side Panel API:
sidePanel.getLayout()APIsidePanel.close()APIsidePanel.onOpened()- undsidePanel.onClosed()-Ereignisse (Diese basierten auf einem Lebenszyklusvorschlag von Microsoft)
Meine anderen CLs für die Commands API sind noch in Arbeit (je nachdem, wie aktiv ich nach GSoC bleibe 🙂). Eine detaillierte Aufschlüsselung finden Sie in meinem Abschlussbericht, der auf meiner GSoC-Projektseite unter dem Link „Code ansehen“ verfügbar ist.
Ein besonderer Dank gilt Oliver Dunk, Solomon Kinard, Kelvin Jiang, Devlin Cronin, Tom Lukaszewicz und Andrea Orru, die fast alle meine CLs überprüft haben. Es ist ein tolles Gefühl, dass mein Code Teil von Chrome wird. Meine Mentoren beschrieben mich als sehr verantwortungsbewusst, was für mich ein großes Kompliment war.
Zusammenfassung
Wenn Sie mich fragen, was mir GSoC gebracht hat, war es mehr als nur technisches Wissen. Ich konnte an wichtigen Diskussionen teilnehmen, die sich auf viele Erweiterungsentwickler auswirken werden. Es war meine erste Arbeit, die in einer realen Anwendung eingesetzt wurde. Ich habe Patientenmentoren kennengelernt, die mich angeleitet und mir so viel beigebracht haben. Das hat die gesamte Erfahrung unglaublich bereichernd gemacht.
Ich hoffe, dass meine Geschichte anderen, die zu Chromium beitragen oder am Google Summer of Code teilnehmen möchten, als hilfreiche Referenz dienen kann.
Tipps für Bewerber für GSoC
- Wähle eine Idee aus, die dir wirklich gefällt. Zinsen sollten für Sie oberste Priorität haben. Ihre Fähigkeiten können Sie immer verbessern, aber Leidenschaft ist das, was Sie antreibt, wenn es schwierig wird. Ich habe beide Seiten erlebt und kann dir versichern: Wenn du an etwas arbeitest, das dich nicht interessiert, wirst du andere beschuldigen, wenn etwas schiefgeht. Wenn Sie die Arbeit jedoch lieben, werden Sie sie als Herausforderung sehen, die es zu meistern gilt.
- Scheuen Sie sich nicht vor der Konkurrenz. Ich habe schon so viele Leute gesehen, die demotiviert waren, nachdem sie gesehen haben, wer sich sonst noch in den Community-Kanälen bewirbt. Bei jedem guten Projekt gibt es Konkurrenz. Konzentriere dich auf deine Stärken. Wenn Sie schon einmal mit einer Bibliothek gearbeitet haben, suchen Sie nach einem Projekt, in dem sie verwendet wird. Sie haben einen Vorteil, weil Sie Ihre einzigartigen Erfahrungen einbringen können.
- Glück anerkennen und auf Kommunikation konzentrieren: Ganz ehrlich: Beim GSoC gehört auch ein bisschen Glück dazu. Für einige beliebte Projekte gehen für 1–2 Slots über 300 Vorschläge ein. Ich bezweifle, dass Mentoren jede einzelne Nachricht im Detail lesen können. Deshalb ist eine frühzeitige Kommunikation so wichtig. Beteiligen Sie sich im Vorfeld am Projekt und sorgen Sie dafür, dass Ihr Vorschlag fundiert und auf den Punkt gebracht ist.
- Wenn du nicht ausgewählt wirst, ist das nicht das Ende. Sie haben jetzt wertvolle Open-Source-Beiträge in Ihrem Lebenslauf. Damit können Sie sich für andere Sommerpraktika bewerben. Die aufwendigste Arbeit liegt hinter Ihnen.
Zu guter Letzt:
„Jeder Mensch ist für eine bestimmte Arbeit geschaffen, und der Wunsch nach dieser Arbeit ist in jedes Herz gelegt.“ – Rumi
Vielen Dank für Ihre Aufmerksamkeit.