Skip to content

Commit c03f14c

Browse files
committed
rn-134: add retrospective interview with Meet Soni
1 parent 7334c0a commit c03f14c

1 file changed

Lines changed: 197 additions & 3 deletions

File tree

rev_news/drafts/edition-134.md

Lines changed: 197 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,203 @@ This edition covers what happened during the months of March and April 2026.
210210
### Support
211211
-->
212212

213-
<!---
214-
## Developer Spotlight:
215-
-->
213+
## Developer Spotlight: Meet Soni
214+
215+
_Editor’s note: This edition features a retrospective interview with a
216+
contributor who contributed to Git through a mentoring program.
217+
We hope the reflections shared by the GSoC contributor will
218+
provide an insightful perspective that benefits the community.
219+
As always, we welcome your thoughts and feedback!_
220+
221+
* **Who are you and what do you do?**
222+
223+
I'm Meet, a final-year Computer Engineering student from Ahmedabad, India. I've
224+
done GSoC twice - first with the Python Software Foundation [working on `cve-bin-tool`](https://summerofcode.withgoogle.com/archive/2024/projects/aEIXRpxg),
225+
and then with Git [working on the git-refs command](https://summerofcode.withgoogle.com/archive/2025/projects/xVrT5e2q).
226+
I also did an LFX Mentorship with Microcks under CNCF between the two GSoCs.
227+
Currently I'm doing an internship at an early-stage stealth startup alongside
228+
finishing up my degree.
229+
230+
* **How did you initially become interested in contributing to Git, and what
231+
motivated you to choose it as your GSoC project?**
232+
233+
Back in 2021, a friend showed me a video about GSoC and it seemed completely
234+
out of reach at the time. Fast forward to late 2023, the same friend suggested
235+
we finally give it a real shot. We both spent about 4 months contributing to
236+
open-source projects to build up experience. Both of us got selected for GSoC
237+
2024. I got into the Python Software Foundation. After finishing GSoC with PSF,
238+
I loved the experience so much that I wanted to do it again. I decided to try
239+
Git for GSoC 2025. I started by sending some small patches to get familiar with
240+
the codebase and the mailing list workflow, reviewed patches from other
241+
prospective GSoC students, and eventually proposed the git-refs consolidation
242+
project.
243+
244+
* **Is there any aspect of Git that you now see differently after having
245+
contributed to it?**
246+
247+
Before contributing, I only really knew about Git's porcelain commands - `push`,
248+
`pull`, `fetch`, `rebase`, `checkout`, the stuff you use every day. I had no
249+
idea how much was happening underneath. Once I started reading the Git Internals
250+
chapters from the [Pro Git book](https://git-scm.com/book/en/v2) and diving into
251+
the source code, I discovered this whole world of plumbing commands -
252+
`cat-file`, `hash-object`, `update-index`, `for-each-ref`, `update-ref`, `rev-parse`,
253+
`ls-tree`, `write-tree` - there are way more of them than the porcelain
254+
commands most people interact with.
255+
256+
I learned that Git is fundamentally a content-addressable filesystem with a
257+
VCS interface built on top. Everything is an object - blobs hold file
258+
contents, trees represent directories, commits are snapshots pointing to
259+
trees, and refs are just pointers into this object graph. The objects are
260+
addressed by their SHA-1 hashes, and everything you do through the familiar
261+
commands is just a thin layer operating on this object database. Understanding
262+
all of this completely changed how I think about version control. When
263+
something goes wrong in Git, I no longer feel lost - I can reason about what's
264+
actually happening at the object level.
265+
266+
267+
* **How do you balance your contributions with other responsibilities like work
268+
or school?**
269+
270+
During GSoC, I was mostly focused on Git full-time. My university schedule was
271+
flexible enough that I could dedicate most of my working hours to the project.
272+
That said, there were stretches where college reviews and submissions piled up
273+
at the same time as a patch series needed revisions, and that got a little
274+
hectic. I ended up working on weekends sometimes to make up for lost time and
275+
stay on track with the project timeline. The trickier part was the mailing list
276+
workflow itself - reviews could come at any time given the global nature of the
277+
community, so I had to stay responsive even during busy college weeks.
278+
279+
* **Can you share how GSoC helped enhance your technical and non-technical skills
280+
(like communication, project management, etc.)?**
281+
282+
On the technical side, working on Git taught me a lot about writing C code that
283+
has to be clean enough for others to maintain long after you're gone. The Git
284+
codebase has strict coding standards and the review process enforces them. I
285+
got much better at designing modular code, writing meaningful commit messages,
286+
and structuring patch series so that each patch tells a clear story.
287+
288+
On the non-technical side, the mailing list workflow was probably the biggest
289+
growth area. All communication is public, asynchronous, and text-based. There's
290+
no hiding behind a quick Slack message - you have to articulate your design
291+
decisions clearly in writing. I also learned how to take feedback without
292+
taking it personally. Early on, getting a review that asked me to rethink my
293+
approach felt discouraging. Over time I realized that the reviewers were
294+
investing their time in making my code better, and that changed my perspective
295+
entirely.
296+
297+
* **What was your biggest takeaway or learning from GSoC that you now apply
298+
regularly in your work?**
299+
300+
Community consensus matters more than being technically correct. In Git, you
301+
can write perfectly functional code, but if the community doesn't agree with
302+
the design direction, it won't get merged. My project depended heavily on
303+
consensus around how the git-refs command should behave and what it should
304+
consolidate. I spent a fair amount of time not just writing code, but defending
305+
design choices and sometimes accepting that a different approach was better [ [patch series](https://lore.kernel.org/git/20250627074934.1761897-1-meetsoni3017@gmail.com/) ].
306+
That taught me to separate my ego from my code. I try to apply that everywhere
307+
now - when someone pushes back on something I wrote, my first reaction is to
308+
understand why, not to defend.
309+
310+
* **What was the biggest challenge you faced during your contributions to Git,
311+
and how did you overcome it?**
312+
313+
The mailing list workflow. Before Git, all of my open-source contributions were
314+
made on GitHub through pull requests. Git uses email-based patches, which was a
315+
completely different process - formatting patches with `git send-email`, making
316+
sure the threading is correct, handling version updates to a patch series. The
317+
first few times I felt like I was fighting the tooling more than the actual
318+
code.
319+
320+
But it got easier. After a few rounds, it started to feel like second nature.
321+
The bigger challenge was the review process itself. Git's mailing list reviews
322+
are thorough. Reviewers will question your variable naming, your commit message
323+
wording, your design rationale - everything. Having to defend code changes and
324+
push features to near-perfection was time consuming, but it made me a much
325+
better programmer. I overcame it by just sticking with it and treating every
326+
review comment as a learning opportunity rather than criticism.
327+
328+
* **Have you thought about mentoring new GSoC / Outreachy students?**
329+
330+
Yes, I'd love to. After my GSoC 2024 with PSF, a lot of students reached out to
331+
me for guidance on open source and GSoC applications. I helped several of them
332+
with finding the right organizations, reviewing proposals, and getting started
333+
with contributions. Three of them got selected for GSoC 2025, which I'm really
334+
proud of.
335+
336+
For Git specifically, I'd like to mentor in the future, but I want to be in a
337+
position where I can give it the time it deserves. Right now I'm occupied with
338+
finishing my degree, an internship at a startup, and job hunting, so it
339+
wouldn't be fair to a mentee if I signed up and couldn't be fully present. But
340+
it's definitely something I want to do - the mentorship I received from Patrick
341+
Steinhardt and Jialuo She was really valuable, and I'd like to pay that
342+
forward.
343+
344+
* **What upcoming features or changes in Git are you particularly excited about?**
345+
346+
The introduction of Rust into the Git codebase. Git 2.52 was the first release
347+
to optionally include Rust code, starting with variable-width integer encoding.
348+
Rust will become mandatory for [Git 3.0](https://git-scm.com/docs/BreakingChanges).
349+
As someone who's written C code for Git, I find this really interesting - Rust
350+
brings memory safety guarantees that could prevent entire classes of bugs.
351+
352+
* **What is your toolbox for interacting with the mailing list and for
353+
development of Git?**
354+
355+
For writing code, I use [AstroNvim](https://astronvim.com/) as my editor. For
356+
sending patches, I use [`git send-email` configured](https://git-send-email.io/)
357+
with Gmail's SMTP. For reading and replying to mailing list threads, I just
358+
use Gmail's web interface
359+
- it works well enough for following discussions and replying inline. I
360+
develop and test on Linux, which I've been using as my daily driver since
361+
2020.
362+
363+
* **What is your advice for people who want to start Git development? Where and
364+
how should they start?**
365+
366+
Read the [Pro Git book](https://git-scm.com/book/en/v2) first, especially the
367+
Git Internals chapters. It gives you a mental model of how Git actually works
368+
underneath, which makes reading the source code much less intimidating.
369+
370+
Then, start small. Subscribe to [the mailing list](https://git-scm.com/community#git-mailing-list)
371+
and just read for a week or two. Look at what kind of patches are being sent,
372+
how reviews work, how people structure their patch series. The Git project has
373+
a document called "[MyFirstContribution](https://git-scm.com/docs/MyFirstContribution)"
374+
in the Documentation folder that walks you through the entire process of
375+
submitting your first patch.
376+
377+
For your first contribution, look for something small - a documentation fix, a
378+
test improvement, a minor bug fix. The goal isn't to make a big impact right
379+
away. The goal is to get comfortable with the workflow: formatting patches,
380+
sending them via email, responding to reviews. Once you've done that once or
381+
twice, everything else gets easier.
382+
383+
And don't be afraid of the mailing list. It looks intimidating from the
384+
outside, but the community is genuinely helpful. Reviewers invest real time
385+
into helping newcomers improve their patches. Take that feedback seriously and
386+
you'll grow fast.
387+
388+
* **Would you recommend other students or contributors to participate in the
389+
GSoC, Outreachy or other mentoring programs, working on Git? Why? Do you have
390+
advice for them?**
391+
392+
Absolutely. GSoC with Git was one of the best experiences I've had. The
393+
community is welcoming, the mentors are invested in your success, and the
394+
codebase is one of the most widely used pieces of software in the world.
395+
There's something special about knowing that the code you wrote is running on
396+
millions of machines.
397+
398+
My advice: start contributing early, well before the application period. Don't
399+
just pick Git because it looks good on a resume - pick it because you're
400+
genuinely curious about how it works. The people reviewing your patches can
401+
tell the difference. Also, get comfortable with the mailing list workflow
402+
before GSoC starts. It's the single biggest adjustment for most newcomers, and
403+
if you spend your GSoC period still figuring out `git send-email`, you'll lose
404+
valuable time.
405+
406+
And finally, be patient with yourself. The Git codebase is large and the
407+
standards are high. Your first patches will probably need multiple revisions.
408+
That's normal. Every contributor who came before you went through the same
409+
thing.
216410

217411
## Other News
218412

0 commit comments

Comments
 (0)