Drupal Specific:I have had over 10 years of web development with heavy involvement in Drupal for the last 5. Having started with procedural code, I can relate to Drupal's procedural roots, yet know when to bring OOP in for purposes of code maintainability. I have found Drupal to be one of the most flexible and useful CMS systems on the internet today. It never ceases to amaze me what Drupal does or already has a community module when a client makes a new request for a feature.I have very proficient Drupal knowledge of:
- Hook system for code interception and modification
- Entity and data architecture
- Creating content types for client specific needs
- Entity metadata wrappers & chaining
- Entity references in content types
- User management, access control, & permissions
- Using views to leverage content delivery to the user in various amounts
- Contextual filters
- Relationships
- Multiple displays using the same view information
- Use of features module to move elements from Drupal's database to code
- Using features to deploy new database settings
- Using features to make database setting "versionable" like software code
- Core modules & key contributed modules frequently configured specifically for a client including (but not limited to):
- Media module for formatting images & files on the way in and on the way out for content display & delivery
- Workbench for content approval and moderations
- Feeds for data import
- REST API for data exchange between Drupal and other web services
- Path & pathauto (very useful for SEO & content organization)
- Webforms
- Drupal Commerce
- Encyption
- Custom module development
- Custom admin interfaces for module
- Extending capabilities of other modules
- Theming engine
- Customization of output through template files
- Customization of output through preprocess functions
- Creating output friendly for frontend developers to add CSS, Responsive displays, jQuery, & custom Javascript
- Twitter Bootstrap for Drupal
- Taxonomy system
- Use of Drush for more efficient development tasks
- Customization & simplification of admin pages for content edititors
- Potential performance bottlenecks
- Potential security flaws
Bonus Skills useful for Drupal:
- Apache & Nginx configurations & setup for Drupal
- Vagrant/Virtual box building to eliminate time consuming environmental variables like PHP timeouts & MySQL packet size limits. Virtual Box building makes it much easier to get a new developer up and running on a local build.
- Provisioning (Chef & Chef Solo) to move virtual boxes into repeatable and versioned operating systems
- Amazon Web Services.
- Capistrano & Jenkins deployment systems
- Knowledge of Ruby for creating Chef, Capistrano, & other Ruby based tools & applications that permit more efficient Drupal development and code deployment
OverallI have had over 10 years of web development, technology (hardware, software, & operating systems), graphic arts, & promotions experience. I am an extremely unique individual in that I am proficient in all of these, but more importantly understand how they impact each other and how to streamline workflows across all of them. My experience working at the Masquerade Concert Venue brought all of these elements together & my experience with Sharpdot really expanded my understanding of current processes working with teams in terms software development.