...
First of all, you need to sign and return an ["Individual Contributor Licensing Agreement " form](https://github.com/cloudera/Impala/wiki/Individual-Contributor-License-Agreement-(ICLA)) (or a [CCLA](https://github.com/cloudera/Impala/wiki/Corporate-Contributor-License-Agreement-(CCLA)) (or a CCLA, if you’re contributing as part of your job), which is required before we can accept and redistribute your contribution. Once this is submitted - and you only need to do it once - you are free to start contributing to Impala.
...
Now start coding! As you are writing your patch, please keep the following things in mind:
First, please follow the [C++ style guide](http://google-styleguide.googlecode.com/svn/trunk/cppguide.html). We are sticklers for adherence to the guide (with a couple of exceptions), and we won’t accept any patch that needs work in this regard. For Java and Python we do not have formal guides yet (writing one would be an excellent contribution!); please try to follow the standards set by existing code. We will help you with this when your patch is reviewed.
...
Further reading
This presentation called ['called How to Get Your PostgreSQL Patch Accepted'](http://momjian.us/main/writings/pgsql/patch.pdf) captures captures a lot of our requirements - particularly the focus on starting small, getting agreement, working on the design first, ensuring proper testing and committing to good comments in the code.