# Participate in the 2018 Go Company Questionnaire
4 Oct 2018
Tags: survey, community
Summary: We need your help to create the best programming language for developing simple, reliable, and scalable software. To do this, we need to better understand how companies are using Go. Please help by participating in a 7-minute company questionnaire.

Ran Tao, Steve Francia
spf@golang.org

## The Go project wants to hear from you!

We need your help to create the best programming language for developing
simple, reliable, and scalable software. To do this, we need to better
understand how companies are using Go. Please help by participating in a
7-minute company questionnaire.

**Who:** If you are in a position to share details like “company name,” “if your
company is hiring Go developers,” and “reasons your team or company adopted Go”
then please help us by taking this company questionnaire. We only need one
response per company (or per department for larger companies). If you aren’t the
right person, please forward this onto the right person at your company.

_Please note: this is different from our annual anonymous Go user survey, which_
_will be announced in November._

**Where:** Please take this 7-minute questionnaire by October 30th:
[Go Company Questionnaire 2018](http://goo.gl/nnPfct).

The questionnaire is confidential, but not anonymous. For more information,
please refer to Google’s privacy policy
[here](https://policies.google.com/privacy).

The Go project leadership will use your responses to better understand how
companies use Go and in what ways we can improve their experience.

## Spread the word!

We would like as many companies as possible to participate to help us better
understand our global user base. Please help us spread the word by sharing this
post on your social network feeds, at meetups, and in other communities.
