I am a php developer using mostly CakePHP, magento, and wordpress. I want to create a community driven website aimed at the volunteering community that will let users sign up, create profiles, add previous voluntary positions, let organisations sign up and post jobs, etc. Is this something that drupal can handle? Is this what drupal was built to do? 

I'm just wondering how drupal deals with custom methods. Say I wanted to have a user request a reference from someone, I'd have to write methods that did this. Would that be possible in drupal?

I'd love to hear from anyone doing something similar!

Thanks,

Jonesy