We've previously covered step-by-step guides on how to compile your own kernel from source. Simply compiling some readily available source code though is only half the battle. For there to be any benefit of compiling and flashing your own kernel, you're going to need to make some modifications. Which particular changes you make is of course entirely up to you, and there are a huge number of improvements that can be made at kernel level to improve the performance of any given device. If you're at the stage of having compiled your own kernel but are a little unsure of where to go from there, XDA-University has a guide which will be of interest to you.

The tutorial covers the process of adding CPU governors, I/O schedulers and the ability to overclock the device's CPU to your kernel. These are among some of the more basic modifications that you can make, but they are also some of the most sought after by users. All the required steps are clearly outlined and backed up with easy to follow code examples that will have you modified and ready to compile in no time. You will of course need to be familiar with Github in order to document your changes and remain GPL compliant. If you need a refresher course, be sure to check out this excellent guide to becoming a Git wizard.

Be sure to head on over to XDA Univesity and check this one out if you want to take your own kernel to the next level, as this provides a great jumping off point for further more advanced developments.