Do you know PHP?
Do you know Asterisk?
Learning to develop for FreePBX may be intimidating. One of my goals is to change that and expose more developers to what is referred to as the plumbing.
Our DEV Team has put together some great information on our wiki:
There are different paths people take in learning a skill. We can relate these to swimming.
Toes in the water, 1 step at a time.
A good way to do this is to browse code at http://github.com/freepbx and look at how things are done. Once you have an idea of how things are done you can pull up http://issues.freepbx.org and go through some of the issues and try and fix them. If you are feeling adventurous you may even go after a feature request. Then submit a patch/Pull request. Note we need a CLA on file which is explained in the wiki above.
Jump in where you know you can touch
You may do some of the stuff above but maybe you want a bigger challenge. There are some orphaned modules in https://github.com/FreePBX-ContributedModules. Maybe take ownership of one of these and update it or do a full rewrite if needed. Look through the BMO stuff in the wiki and bring the module up to version 12.
Jump in the water with no idea of the depth
You may want to do the above stuff but maybe you want a bigger challenge. Create a module from the ground up. Follow through the WIKI info and look at various sources and make the next big thing.
No matter what way you like to approach it the WIKI can be very useful. If there is a subject in the wiki that you can’t find an answer for then tag me in a post in this section and we will work it out together.
Note I am a “teach the man to fish” type so I won’t write your code for you but we will make sure you get to the right place and document it along the way so others can find their path.