Thanks for your interest in applying to the Nmap Project for Google Summer of Code! GSoC has had a huge impact on Nmap, and we look forward every year to a the great applications we will receive. The following are tips from our mentors on making your application the best it can be. We can't wait to hear from you!

Follow the rules

Don’t lie, cheat, or plagiarize. This should be obvious. The truth will come out. Please don’t waste anyone’s time and effort.

Read and follow the directions. Unfortunately, too many applications are rejected immediately because the applicant didn’t read the directions.

Get started early.

Understand our product. Nmap is a port and security scanner. We have lots of free online documentation. We also have sub-projects that are often part of GSoC: Ncat, Nping, etc.

Use our product. Learn how to do some basic things. Reproduce a bug in our issue tracker. Learn what Nmap is expected to do and what its limits are.

Get involved. Join our development mailing list or IRC channel and listen in. Try to answer someone’s questions. Report a bug. Improve a translation. There are lots of ways to get involved and show us you know how to communicate.

Pick a suitable project.

Play to your strengths. Pick a project that you feel interested in. It helps if you can show us how you’ve done similar things in the past, for other projects or for homework.

Look at previous years for student accomplishments in the role. Find Fyodor’s end-of-GSoC summary emails on seclists.org and read them. You can search for a particular student’s status reports, too.

Stick to the ideas list. Most “original ideas” applications come from students who don’t understand or use our product, so they are not a good fit. If you have an original idea, try to relate it to something we already have listed, and be open to doing something else if we like you a lot.

Write a good proposal.

Be realistic about what you can accomplish. Don’t under-sell yourself, but realize that most project ideas list more than one person can reasonably accomplish in a summer. Working on your Nmap project should be your primary activity from May through August. If you already have a full time job, full time class schedule, or a long (3 weeks or more) vacation planned for that timeframe, you probably won't have time to participate in Nmap SoC.

Sell your idea. Don’t just copy-and-paste something from the ideas list. Do a bit of research and tell us what you want to accomplish. Describe your idea in detail: What is its ultimate goal? What components will it have? What benefits does it have for Nmap and its community? How do you plan to achieve completion of your project? If a specification already exists, what will you do that will go above and beyond expectations?

Sell yourself. Get across your enthusiasm for the project. Tell us what makes you stand out from the rest of the crowd. Talk about your past experiences, what makes you tick. Why are you interested in open source software, and Nmap in particular? What interests do you have, and how do these interests relate to the project for which you're applying?

Show us code. We’re considering you for a programming position, so we want to see that you can program. Even better: show us active development. Github is great for this, but anywhere that shows commits and not only final code is great.

Write your proposal carefully. English skills matter for most of our projects, as you will need to write documentation for your code. This proposal is a chance to show off your clear and concise writing skills. You don't need to be a literary genius, and many (perhaps most) of our previous winners aren't native English speakers. But do try to spell-check your application and review it a few times for readability before hitting the "submit" button.

Request feedback and respond to it. Show us how you will communicate if you’re selected. You can discuss your idea on the Nmap Dev mailing list. Don't be afraid to ask the community for help; we want you to succeed just as much as you do!

Wait patiently.

Google sets the timeline and must make the announcement. Do follow up on pull requests as you usually would. Waiting patiently just means don’t expect us to tell you early who was accepted. You can still communicate with us as needed.

Don’t be afraid to apply again.

We are limited in how many students we can accept. We usually have more qualified applicants than we can accept. It’s a hard decision, and we wish we could take more.

Ask us for specific feedback on what you can improve. Don’t complain that you were not chosen. Learn from the experience and come back next year with an improved application.

Remind us of your previous proposal. Persistence pays off. When we get a few dozen new applications next year, you will stand out if you made a good impression this year.

Ready to apply?

Make sure you can meet the general requirements for participation, then sign up on the Google SoC Homepage and apply to the Nmap organization. We look forward to reading your application!