Go Challenge FAQ

Who has started the Go Challenge ?

Go ChallengeJoshSoftware Pvt. Ltd. is India's leading company in building innovative web applications working exclusively in Ruby On Rails since 2007. Josh have been using Go in some of their Web applications along side Rails (especially for some heavy lifting). Back in 2009, Josh had been actively involved in organizing Ruby programming challenges and decided that Go too needs such challenges. Hence the monthly Go Challenge.

What is the Go Challenge ?

  • The Go Challenge is the world's first monthly programming challenge for Go developers (newbies included).
  • The Go Challenge is free and registration is not required.
  • A new Go Challenge will be posted here on the first day of each month starting March 2015.
  • The challenge is open to individuals only.
  • If you have any questions about this challenge, please join the golang-challenge channel on slack and ask your questions. This is a room for people who are going to participate in the Go Challenge.

How does the Go Challenge benefit you ?

The Go Challenge:

  • is a good idea as reading books and documentation can only take you so far when learning a new language. To really learn, you need to use the language.
  • provides a fabulous forum for using Go in the form of regular, engaging (but not arcanely difficult) challenges. Better yet, it provides feedback on how to use Go well, as each month the best solution to a challenge is chosen.
  • is a wonderful introduction to the Go language and to the Go community.

Challenge Rules and how to enter the Go Challenge?

By participating in this challenge, you agree to be bound by the Challenge Rules below:

  • The Challenge is open to individuals.
  • Evaluators cannot enter the challenge, except under the "Just for Fun" category.
  • Each entrant shall indemnify, defend, and hold JoshSoftware Pvt. Ltd. (who has sponsored the domain and is the organizer of these challenges) harmless from any third party claims arising from or related to that entrant's participation in the Challenge. In no event shall JoshSoftware Pvt. Ltd. be liable to an entrant for acts or omissions arising out of or related to the Challenge or that entrant's participation in the Challenge.
  • Odds of winning depend on the number and quality of entries received.
  • All taxes, including income taxes, are the sole responsibility of winners.
  • No prize substitution is permitted.
  • Create a zip of your Go source code and send the zip file to golangchallenge [at] gmail.com by the date announced in the challenge blog post. No new solutions will be accepted after that. In the email mention your full name, country of residence, and twitter/GitHub id (if any) and participating under which category - Just participating | Participating and adding more steps | Just for Fun | Anonymous entry. We are accepting anonymous submissions and will evaluate them too but then these participants (along with Just for Fun participants) are not eligible for the prizes.
  • We will be giving your zip file to the evaluation team.
  • We shall be publishing on this blog, a list of participant names. If you don't want your name to appear kindly mention the same in your email.
  • Note: Avoid sharing your code with anyone else; if your solution becomes available to the general public it might impact evaluation of your submission.
  • You are allowed to re-submit your code if you feel it's necessary.
  • After the challenge, all submissions will be made available online on GitHub under the BSD 3-Clause License or the GNU General Public License, version 3 - GPL-3.0 unless a participant has indicated that his/her solution should not be made public before the challenge ends.

How will the challenge be evaluated?

Entries will be anonymized and evaluated by the challenge author and a team of evaluators.

  • Functioning code and a test suite that passes.
  • Code hygiene. Use gofmt, vet and lint. Review CodeReviewComments.
  • Readability. How easy is it for another programmer to grasp what your entry is doing?
  • Code structure. Do types and files have good names?
  • Reliability. Are errors handled?
  • Appropriate consideration given to memory and performance (nothing is unnecessarily expensive).


Nathan Youngman had set the guidelines for evaluation for the first Go Challenge. Subsequently Dominik Honnef modified the guidelines based on his experience as an evaluator for the first challenge.

Every month the team of evaluators could remain the same or could change. The team will go through all the submitted solutions of a challenge. They will comment and rank these solutions.

More evaluators are welcome.

Best Solution

The author of the Go Challenge for the particular month will decide the two or more best solutions. This author shall have the sole authority and discretion to select the award recipients.


The winning entries will be announced on the blog here. The winners will be sent their prizes by email / postal mail.


Any individual or companies interested in sponsoring the monthly event are welcome. Please contact Satish Talim.


  • The Gopher character is based on the Go mascot designed by Renée French and copyrighted under the Creative Commons Attribution 3.0 license.
  • GitHub for the yearly sponsorship of a GitHub Bronze Organisation plan for the Go Challenge.
  • The Go Challenge is being organized by JoshSoftware Pvt. Ltd. with help from the Go community.


No responsibility can be accepted for entries not received for whatever reason. The administrator reserves the right to cancel or amend the competition and these terms and conditions without notice in the event of a catastrophe, war, civil or military disturbance, act of God or any actual or anticipated breach of any applicable law or regulation or any other event outside of the administrator’s control. Any changes to the competition will be notified to entrants as soon as possible by the administrator. Administrators assume no responsibility for any error, omission, interruption, deletion, defect, delay in operation or transmission, communications line failure, theft or destruction or unauthorized access to, or alteration of, entries. Any attempt to tamper with or damage the competition, especially with regards to voting, is unlawful and may result in legal action. Additionally, if the administrators determine, in their sole discretion, that there has been tampering or rigging of the competition, they may invalidate any relevant entries or the competition as a whole. In such case, competitors will be notified as soon as possibly on the Go Challenge website.