The Complete GSoC Guide — From Zero to Accepted Contributor
O
Qubits of DPK
March 28, 2026
Core Open Source
Written by a practitioner, not a tutorial.
This guide was built from real experience navigating GSoC 2026 with Apache Fineract — including every mistake, confusion, and hard-won lesson along the way. If you're a first-time applicant, this is the guide that didn't exist when it was needed.
Who This Guide Is For
This guide is for anyone applying to Google Summer of Code — whether you're a student or a professional developer new to open source. It covers the entire journey from registration to proposal submission, including the things most guides skip: how to interact in a community, what to check before raising a PR, and how to survive the waiting game.
Table of Contents
- #What Is GSoC?
- #Eligibility — Who Can Apply?
- #Step 1 — Register on the GSoC Website
- #Step 2 — Choose Your Organization
- #Step 3 — Understand the Organization's Ideas
- #Step 4 — Create Your JIRA Account (Apache Example)
- #Step 5 — Choose the Right Ticket
- #Step 6 — Set Up the Codebase Locally
- #Step 7 — Your First Contribution (PR)
- #Step 8 — Clean Code Rules Before Every PR
- #Step 9 — Write Your Proposal
- #Step 10 — Community Interaction
- #The Timeline — Key Dates
- #Common Mistakes to Avoid
- #After Submission — What Happens Next
1. What Is GSoC?
Google Summer of Code is a global program where open source organizations mentor contributors to work on real projects over 12+ weeks. You get paid a stipend, you get a mentor, and you get a merged contribution to a real-world codebase used by millions.
It is not an internship at Google. It is a paid open source contribution program. Google funds it. The organization and its volunteers mentor you.
Stipend varies by country. Check the official GSoC site for your region's amount.
2. Eligibility — Who Can Apply?
- Must be 18 years or older
- Must be a beginner to open source (less than 2 years of open source contribution experience)
- Must live in a non-embargoed country
- Can be a student OR a professional — GSoC is open to both
Important: Your years of professional experience do NOT disqualify you. Only your open source contribution history is evaluated. If you have 5 years of industry experience but zero open source commits — you are eligible.
3. Step 1 — Register on the GSoC Website
URL: summerofcode.withgoogle.com
How to Register
- #Go to the GSoC website
- #Click Get Started or Register
- #Sign in with a personal Gmail account (not a company or university email)
- #Select your role: Contributor
- #Fill in your profile: name, country, GitHub URL, bio
Common Issue: 403 Error
If you see a 403 Access Denied error:
- Cause: You are logged into multiple Google accounts in the same browser
- Fix: Open an Incognito window → sign in with only your personal Gmail → try again
- The GSoC site does not support multi-account login
Finding Your Target Organization
Organizations participate under umbrella names. For example:
- Apache Fineract is listed under The Apache Software Foundation — not as "Fineract"
- Search for the parent organization name, not the sub-project
4. Step 2 — Choose Your Organization
This is the most important decision you make. The wrong organization = zero chance of acceptance regardless of how good your proposal is.
How to Choose
Where to Find Organizations
- summerofcode.withgoogle.com/programs/YEAR/organizations
- Filter by technology, category, or size
- Read their Contributor Guidance section on each org's page
The Honest Truth About Competition
Popular orgs like Mozilla, Linux Foundation, or Apache top-level get 200+ applicants per slot. First-time contributors can have better outcomes at active but less famous orgs where competition is 10-15 applicants per slot.
5. Step 3 — Understand the Organization's Ideas
Every org publishes a list of project ideas. These are the problems they want solved.
What to Look For in a Project Idea
- Mentor is confirmed — If no mentor is listed, the project may not happen
- Scope is clear — Vague projects are risky. Clear deliverables = safer bet.
- Matches your skills — Don't pick something you'd need 3 months of learning just to start
- Not marked as "draft" — Some ideas are placeholders. Draft = might be cancelled.
Apache-Specific: How Ideas Are Organized
Apache uses JIRA to track GSoC ideas. Filter by label gsoc2026 AND label mentor:
javascript
QUBITS OF DPK
Only tickets with both labels are official mentor-backed ideas. Other tickets tagged gsoc2026 by students are NOT official project ideas.
You Can Submit Up to 3 Proposals
GSoC allows up to 3 proposals per applicant but only 1 can be accepted. Use multiple slots strategically — don't submit 3 proposals to the same org, spread across ideas where you have real evidence.
6. Step 4 — Create Your JIRA Account (Apache Example)
For Apache Software Foundation organizations, contributions are tracked in JIRA.
How to Create an Apache JIRA Account
- #Go to issues.apache.org/jira
- #Click Sign Up or Create Account
- #Use your real name — this is a public, permanent record
- #Verify your email
- #For some Apache projects, you may need to request access separately
What You Use JIRA For
- Reading project ideas (no account needed to read)
- Commenting on tickets to show interest
- Creating your own tickets for contributions you initiate
- Updating tickets when you raise a PR (link PRs to tickets)
JIRA Ticket Etiquette
- Do NOT comment on GSoC idea tickets saying "I want to work on this" unless the org explicitly asks for it
- DO create your own ticket for any work you initiate
- DO link every PR back to a JIRA ticket in the PR title and description
- Ticket title format: PROJECTNAME-XXXX: Short description
- PR title must match: FINERACT-2549: Migrate InstanceModeIntegrationTest to feign
7. Step 5 — Choose the Right Ticket for Your First Contribution
Your first contribution before the proposal deadline is your most important signal to mentors. Choose wisely.
What Makes a Good First Ticket
How to Find Good Tickets (Apache Example)
javascript
QUBITS OF DPK
Use this JQL filter to find beginner-friendly unresolved tickets:
javascript
QUBITS OF DPK
Claiming a Ticket
- #Open the ticket
- #Leave a comment: "I am working on this. Will raise a PR by [date]."
- #Assign it to yourself if you have permissions
- #Don't sit on it — if you take a ticket, raise the PR within a week
8. Step 6 — Set Up the Codebase Locally
Mentors can tell immediately whether you've run the code or just read the docs. Set up the project locally before writing a single line of proposal.
Generic Setup Steps
- #Fork the repository on GitHub (your fork → github.com/YOURUSERNAME/project)
- #Clone your fork locally
- #Add upstream remote (critical for staying in sync)
- #Check out the development branch (usually develop or main)
- #Run the build to confirm it works locally
- #Verify the server starts and health endpoint returns OK
For Apache Fineract Specifically
bash
QUBITS OF DPK
9. Step 7 — Your First Contribution (Raising a PR)
A pull request is your proof that you can work in the codebase. It matters more than anything in your proposal.
The PR Workflow
javascript
QUBITS OF DPK
PR Title Format
javascript
QUBITS OF DPK
The ticket number at the start is checked by CI. Get it wrong and the build fails immediately.
PR Description Must Include
- Link to the JIRA ticket
- What you changed and why
- Checklist of quality checks passed
- Any behavioral changes (usually: none for migrations)
GPG Signing Your Commits
Many Apache projects require GPG-signed commits. The -s flag in git commit -s adds a sign-off line. For GPG signing:
bash
QUBITS OF DPK
The gsoc-fineract-evidence Tag
For Apache Fineract GSoC candidates, tag your PR with the label gsoc-fineract-evidence. This is the official signal that your PR is submitted as GSoC contribution evidence. The label makes it easy for mentors to find all candidate contributions.
10. Step 8 — Clean Code Rules Before Every PR
Every project has style enforcement. Ignore it and your PR gets rejected automatically by CI. Learn the rules before you write a single line.
Universal Rules
- One logical change per commit — don't mix formatting fixes with feature changes
- Meaningful commit messages — "fix" is not a message. "FINERACT-2549: Replace requestSpec with feign client in InstanceModeIntegrationTest" is.
- No commented-out code — delete it or don't commit it
- No debug print statements — remove all System.out.println before PR
- No new warnings — your change should not increase the warning count
Apache Fineract Specific — Run Before Every PR
bash
QUBITS OF DPK
Never skip this sequence. This is what the CI runs. If it fails locally, it fails in CI.
Commit Sign-Off
The -s flag adds a Signed-off-by line to your commit:
bash
QUBITS OF DPK
This is required for Apache contributions. It certifies that you have the right to submit this code under the project's license.
One Commit Per Logical Unit
Don't mix unrelated changes in one commit. If you migrated a test AND fixed a bug, those are two commits:
javascript
QUBITS OF DPK
11. Step 9 — Write Your Proposal
The proposal is submitted on the GSoC website — never sent directly to the organization.
Proposal Structure (What Mentors Want)
The Single Most Important Rule
Show proof, not intention.
"I will implement X" is weak.
"I implemented X at [company] for [reason] and it produced [result]. I will apply the same pattern here because [specific connection]." is strong.
What Mentors Actually Read First
- #Your name
- #Your GitHub — they will click it immediately
- #Your contributions to their codebase
- #Then — and only then — your proposal text
A mediocre proposal with 3 merged PRs beats a perfect proposal with zero contributions.
Proposal Size
Pick the size honestly. Saying Large for a 1-week task looks naive. Saying Small for a full system build looks like you don't understand scope.
GSoC Website Fields
- Title — Short, specific, includes the project name
- Abstract — 160+ characters, self-contained summary
- Proposal body — Full proposal (paste from your document)
- Project Technologies — Enter each as a SEPARATE tag, not a comma-separated list
- Project Topics — Same — separate tags
- JIRA link — Direct link to the ticket(s) your proposal addresses
- Project Size — Small / Medium / Large
- PDF attachment — Upload a formatted version
Save as Draft First
Always Save Draft before submitting. You can edit a draft. You cannot un-submit a submission (though you can update it before the deadline). Submit your final version at least 3 days before the deadline — never on deadline day.
12. Step 10 — Community Interaction
Open source communities run on trust. Trust is built by how you communicate — not just what you code.
The Communication Channels (Apache Example)
Your Introduction Email
Send one to the mailing list. Keep it:
- Under 300 words
- Specific about your background
- Specific about which project idea interests you and why
- Ending with 1-2 technical questions that prove you've read the codebase
Generic "Hi I'm a student eager to learn" emails are ignored. Specific technical questions get replies.
How to Ask Good Questions
Bad: "Can you help me get started?"
Good: "I'm studying FINERACT-2439. I noticed the BFF's auth question: should the BFF register as an OAuth client against Fineract's own server, or maintain a separate identity layer? I lean toward the separate layer because tying consumer auth to m_appuser was the original flaw. Is this the intended direction?"
The second version shows you've read the code, you understand the history, and you have a reasoned opinion. That gets a real answer.
Things That Hurt You in a Community
- Asking the same question twice without trying to find the answer yourself first
- Pinging maintainers privately — keep everything public
- "Can you review my PR?" — let the PR speak for itself
- Raising PRs to tickets marked "No one should work on this unless assigned"
- Tagging wrong JIRA tickets in your PRs
How to Handle Feedback on Your PR
- #Read it fully before responding
- #Address every comment — even ones you disagree with
- #If you disagree, explain why — don't just silently do it your way
- #Reply with exactly what you changed: "Done — removed the helper method and replaced with direct feign call on line 47"
- #Re-request review once all comments are addressed
- #Never take reviewer feedback personally — it's about the code, not you
13. The Timeline — Key Dates (GSoC 2026)
Your Personal Timeline (Work Backwards)
javascript
QUBITS OF DPK
14. Common Mistakes to Avoid
Registration
- Registering with a university email that doesn't have Gmail access
- Not subscribing to the mailing list before emailing it (your email goes to spam)
- Applying without checking if the organization's ideas have confirmed mentors
Proposals
- Referencing a ticket number that doesn't exist — mentors check immediately
- Proposing to work on a ticket marked "don't work on unless assigned"
- Generic proposals with no specific technical design
- Copying another applicant's proposal structure word for word
- Submitting on the deadline day — site traffic spikes, submissions fail
Contributions
- Raising a PR that references the GSoC idea ticket — those are mentor-assigned
- Raising a PR without running the formatter first — instant CI failure
- Taking a ticket and not delivering for 2 weeks — bad signal
- Mixing multiple issues in one PR — makes review harder
- Not GPG-signing commits when required
Community
- Sending private DMs to mentors for technical help — keep it public
- Asking "how do I start?" without reading the documentation first
- Disappearing after submitting the proposal — stay active until March 30
15. After Submission — What Happens Next
Between Submission and March 30 (For this year 26’)
Don't go quiet. Continue contributing:
- Raise more PRs if you have time
- Respond immediately to any PR feedback
- Stay active in the community chat
- Update your proposal if mentor gives feedback
Mentors decide between candidates who look equally strong on paper by looking at:
- #Quality of contributions (merged > open)
- #Responsiveness to feedback
- #Community presence
- #Evidence that you understand the codebase
If You're Selected
- Community bonding period: read the codebase deeply, set milestones with mentor
- Weekly progress updates on mailing list or chat
- Small PRs often — don't build for 3 weeks and drop a massive PR
- Ask early if you're stuck — mentors prefer early questions over late surprises
If You're Not Selected
- It's not permanent. Many contributors apply 2-3 times before acceptance.
- Your PRs don't disappear — merged contributions stay in the codebase forever
- You can continue contributing as a community member with no GSoC label
- Apply again next year with stronger contributions on the record
Quick Reference Checklist
Before Submitting Your Proposal
Subscribed to organization mailing list
Introduction email sent to mailing list
Joined community chat (Matrix/Slack/Discord)
Filled Contributor Interest Form (if org has one)
Codebase forked and running locally
At least 1 PR raised on the codebase
JIRA ticket created for your contribution
Proposal reviewed by at least one mentor on the mailing list
JIRA links in proposal are verified real tickets
All technologies entered as separate tags on GSoC site
Project size selected (Small / Medium / Large)
Saved as draft on GSoC site — not lost
Before Every PR
Branch created from latest upstream develop
spotlessApply run (or your project's formatter)
All linting checks passed locally
Full build passes (no compilation errors)
Commit message includes ticket number
Commit is GPG-signed (-s flag)
PR title starts with ticket number
PR description includes JIRA link, what changed, checklist
gsoc-fineract-evidence label added (Apache Fineract only)
A Note to the Reader
This guide was built from a real GSoC 2026 application to Apache Fineract. The applicant was a 4-year backend engineer, not a student — and still found the process confusing, underdocumented, and full of unwritten rules.
Every mistake in this guide was made in real-time. Every tip is something that had to be learned the hard way.
If this helps you skip even one of those mistakes, it was worth writing.
Good luck. The codebase is waiting.