I’ve worked with small mom and pop companies who didn’t know how to purchase a domain name, to start-ups with teams of coders deploying to development/staging/production servers on the cloud.
This is the core of my skillset. I’ve been working with PHP for over 10 years (coding in ASP before that). I’m a Zend Certified Engineer for both PHP 4 (which should no longer be in use) and PHP 5.
Zend Framework (ZF) is a brilliant framework which serves as a foundation for much of the code that I work on. I’ve been involved in many projects based on ZF, some started from scratch. I’m highly experienced with Zend Framework version 1 (ZF1), and have enjoyed working on multiple projects based off of Zend Framework 2 (ZF2). There is no question that ZF2 is an improvement on ZF1 (with features such as the service locator, and event manager), but many of my clients have a codebase built on the Zend Framework 1.
I would by no means call myself an expert in WordPress, but since it powers 23%+ of all websites, I’d be remiss if I didn’t mention that I have spent a lot of time with it. While many developers have a love/hate relationship with the core WP code, it’s success speaks for itself. I have experience installing / configuring / performance optimizing / building custom plugins. My favorite plugins are PODS and Advanced Custom Fields.
HTML5 / CSS 3
HTML5 and CSS3 provide some great usability enhancements to websites, but need to be used with a bit of caution since not all browsers support the features (especially older browsers), so fall-backs need to be considered (ex: using html5shiv and modernizer).
Other notable technologies:
Composer is a package manager which allows adding any of the tens of thousands of already built PHP libraries to an existing project, and provides a simple way to manage dependencies and update existing packages.
Git is a version control system which I find essential to any project. Oversimplification of what Git does: it’s similar to writing a letter in your favorite word processor with “track changes” turned on. You can undo changes that you’ve made, save a version of your letter and then make additional edits but always have the ability to go back to the version you saved. It doesn’t matter if you use GitHub or BitBucket or…, the important point is that using git allows you to keep track of your edits, revert as needed, and experiment with features without altering your “main” code.
Less is a simple but important technology. LESS allows you to add some basic features to static CSS files – such as variables (so that you always use the same color of blue on your site), and can create a CSS stylesheet with a logical hierarchy so it’s easier to maintain.
Often the right tool for the job, the Twitter Bootstrap makes for a good foundation for any responsive website, and it’s easy to customize for your specific needs.
I could go on… I’ve touched a lot of technologies over the years, and there’s always something new waiting around the corner. The main point of this listing of my experience is to show that I try to keep current with best practices, always with an eye on providing the most efficient, cost effective and uncompromising solution to clients.
Other things worth mentioning
I’ll be honest… I’m not a huge fan of Unit Testing. I know it’s all the rage, and I’m not suggesting to go without any QA tools, but I typically prefer an approach which involves error logging and notification on the server (ex: email all uncaught exceptions and fatal errors), and functional testing (either custom coded, using an existing service, or using a tool like Selenium). I value tests which really matters. Will your site work in the browser of your users.
I’m also a huge fan of coding standards. I prefer PSR-2 over the Zend Framework standard, but that’s a bit of a nuance… I just like clean code that’s appropriately documented. I’m not pedantic about this, but I always have PHP_CodeSniffer turned on within PHPStorm when I code.
Using a Google Doc isn’t a good way to track bugs and assign tasks. There are many good tools out there… GitHub works fine, I like JIRA too, and even an old favorite MantisBT.
I like SOLID code. SOLID is an acryonym which is worthy of a long discussion but the short version is – Repositories and Entities are in, Models and Active Row Pattern are out.