Here at Angry Creative, we’ve had a pretty crazy year. The size of the business has tripled, three of us have had three babies and we’ve moved into our own offices. It’s been mind-blowing: things are really different as a ten-person business and we’ve made huge leaps in terms of systems, processes and tools. In this post we want to share something we’ve put together.
But, the most important part of our business is people. And being a WordPress developer is to my mind, a difficult and complicated job, so hiring and nurturing good developers is a double difficult job. How do you know what level your current team are at? How do you help them to level up both within and between roles? How do you delineate roles and responsibilities? How do you know what roles need to be filled?
Well, here’s our starter for ten as a business: a WordPress developer skills matrix. Hopefully it makes sense.
Area | Requirement | Junior | Mid | Senior |
---|---|---|---|---|
Code/tech | HTML/CSS/LESS/SASS | Solid understanding of CSS properties, selectors, and manipulating HTML elements | Understands differences between versions, comfortable with LESS/SASS once set up, familiar with frameworks like Bootstrap. | Expert, comfortable with setting up LESS/SASS including 3rd party frameworks |
JavaScript/AJAX | Basic understanding of what JS is and how it can interact with HTML/CSS. Basic comprehension of what an AJAX call is and does. | Comfortable with basic jQuery and native JavaScript, writing simple code and including/invoking 3rd party libraries and jQuery extensions. | Able to write and debug more advanced JS and AJAX, ideally comfortable with Angular.js and other JS libraries included in WordPress core. | |
PHP | Enough comprehension of syntax and structure to be able to use common WordPress template functions, focussed on the loop. | Able to debug PHP, comfortable with actions, hooks, filters, variables and a wide range of codex functions | Expert | |
SQL | Understand the concept of MySQL, basic understanding of PHPMyAdmin, the WordPress database structure. | Able to backup/restore tables and databases, amend cells and run basic select/update/delete scripts safely. Experience of basic $wpdb usage. | Advanced MySQL admin and use, including advanced $wpdb and extending native WordPress functionality. | |
Git | Basic push/pull to branches | Branch management, push to deploy | Git strategy and integrations | |
Code validity | Must be able to write and self-validate syntax for all languages and markups, be able to follow WordPress coding standards | Able to peer-review code | Flawless | |
XML, JSON and 3rd party APIs | Understanding of what XML is and basic principles of interacting with 3rd party APIs. | Able to perform basic 3rd party API integrations, or to debug, fix more complicated ones | Expert at working with APIs | |
Cross-platform and cross-browser | Able to perform browser testing including mobile | Able to resolve advanced cross browser/platform inconsistencies | Fully understands progressive enhancement, able to predict features or designs that will cause problems | |
Server config | Basic creation of a WordPress install on WordPress Engine or cPanel | SSL install on WPEngine or similar managed hosting, error log debugging. Basic understanding of key stack components. | Advanced server debugging, advanced stack understanding. Understand issues surrounding analysis, tuning, scalability, high availability and concurrency of the WordPress platform and hosting infrastructure and work alongside the wider operations team towards these goals. | |
Responsive | Familiar with responsive site development and media queries | Confident with responsive techniques | Flawless responsive markup implementation | |
Development environment | Able to use once set up – local server, FTP, text editor, command line | Able to set up and maintain basic environment, be able to use JavaScript task runners | At the forefront, testing new software/integrations, feeding back into the business strategy, able to create and manage JavaScript task runners | |
PhotoShop/Illustrator | Able to extract images and measurements from PSDs | Confident using Photoshop and Illustrator to extract web slices and undertake basic image editing/manipulating | Strong PS/Illustrator skills | |
Web standards and accessibility | Understands importance of and key considerations of web standards and accessibility | Familiar with web standards and accessibility. Able to integrate reasonable accessibility best practice into development. | Able to audit and train on web standards and accessibility | |
Code testing | Understand the concept of code testing, how it fits into our workflows | Run unit tests, automated front end tests | Create and manage code and front end tests | |
WordPress specific | API/codex knowledge | Solid but requires frequent reference to codex | Strong, can recall common functions and filters without reference | Advanced knowledge of codex and WordPress core. |
Custom post types | Creation of basic custom post types using generators | Advanced custom post type generation | Expert | |
Custom post meta | Able to add a basic custom post meta field using codex | Ability to integrate 3rd party custom post meta libraries or plugins to achieve template customisation | Expert | |
Shortcodes | Able to create a simple shortcode | Able to create shortcodes with simple arguments | Expert | |
Templating | Able to modify existing templates or overwrite templates in a child theme | Able to create new templates from scratch | Thorough understanding of template hierarchy and implications | |
Themes | Able to edit an existing theme, create a simple child theme to implement designs as provided and implement basic functionality. Confident with basic use of loops and retrieving, displaying custom post meta and other core post fields. | Able to create advanced child themes or from-scratch themes that match designs to pixel perfection | Expert | |
Plugins | Recognition of, and basic configuration of standard plugins. Can produce a very basic plugin. | Advanced configuration of standard plugins, basic debugging, familiarity with basic configuration of more advanced plugins. Can produce complicated plugins. | Advanced configuration, debugging and creation of all levels of plugins. | |
Coding standards | Should be largely compliant with WordPress coding standards, be able to write valid code/markup | Should be able to articulate the importance of coding standards, able to write coding standard-compliant code without reference to standards. | Expert, able to refactor code to be standards-compliant | |
Multilingual | Able to use in CMS | Able to install and configure | Expert | |
WooCommerce | Able to use in CMS | Able to install and configure | Expert | |
Multisite | Able to use in CMS | Able to install and configure | Expert | |
Updates & maintenance | Able to run updates with guidance | Able to run updates independently | Able to lead and refine update process | |
CMS | Usage | Advanced usage | Customisation and theming | |
Security | Makes use of hosting tools, understands key vulnerabilities of WordPress and general principles | Capable of implementing strong security on non-WordPress specialist hosting, understands basic secure coding practices and when to ask for help. | Advanced hardening of hosting, able to review code for security | |
Client-facing | Training | Basic CMS training direct to clients | Full pre go-live training on nearly all WordPress theme and plugin issues | Advanced, in-person training if required |
Project management | Works with project manager to plan and complete work to schedule | Able to manage roles within multiple projects at a time. Expected to be able to take a basic project through from estimate to completion. | Able to lead on multiple projects at a time | |
Red teaming. Red teaming is when a team member becomes client advocate in testing work before it goes out to the client. That person should have been involved with the brief at the start, then loop back to make sure the work is as expected, to quality and understandable. | Understands the importance of red teaming and is able to work with our red team process | Able to fully red team a project of reasonable complexity | Able to red team any project and to improve the red team process | |
Account management | N/A | N/A | Expected | |
Support | Basic – answering questions about how to use CMS functionality | Intermediate – assessing simple requirements and able to suggest option(s) directly to client | Advanced – must help solve/manage any support request through to completion. Expected to take responsibility for service desks for clients/accounts. | |
Sales support | Should be able to understand a proposal | Supports proposal estimates | Can lead on estimating, challenge briefs to suggest alternative approaches, document technical and functional specifications | |
Meeting attendance | Not generally expected | Expected if asked | Expected to arrange and attend meetings independently | |
Advice and consultancy | Not generally expected | Provides solid but basic advice to clients on request | Provide technical consultancy services to stakeholders | |
Commercial awareness | Aware of time constraints, manages own timesheet | Able to agree project completion with a client and request invoicing | Manages invoicing for their clients and projects | |
Deployment | Not expected to deploy to live without support. Yeah I know ideally “everyone deploys to production on their first day” and all that other trendy start-up stuff. We find in reality that WordPress changes are rarely a simple automated deployment process though and prefer to spend time making sure everyone has good situational awareness before tampering with live client sites. | Expected to deploy seamlessly for themselves and to support junior developers | Capable of advising on deployment strategy | |
Personal | Up to date with trends | Yes | Yes | Yes |
Contributes to WordPress (there are lots of ways) | Yes | Yes | Yes | |
Communication skills in English – written and verbal | Intermediate | Strong | Strong | |
Positive attitude | Always | Always | Always | |
Collaborative | Always | Always | Always | |
Contributes to Angry Creative blog | Welcome | Expected | Mandatory | |
Years of WordPress experience | 1 | 2 | 5 | |
Time and task management | Able to complete tasks set by project manager to time and quality. | Able to self-manage time and task allocations, billable hours. Expected to be responsible for hitting pre-agreed key milestones. | Fully capable of leading on projects and achieving project profitability targets | |
Cyber security | Understands core cyber security, follows security guidelines | Alert to and aware of cyber security issues | Able to audit and suggest improvements to our cyber security | |
Legal | Able to respect NDAs and maintain confidentiality | Able to respect NDAs and maintain confidentiality | Able to respect NDAs and maintain confidentiality | |
Working hours | Work flexibly, recording hours and reporting abnormal working hours to manager | Work flexibly, while ensuring important tasks are finished or outstanding tasks are communicated to other team members | Work flexibly, ensuring all tasks are finished, or outstanding tasks communicated with client | |
Optional extras | Email marketing | Understands principles | Can integrate with WordPress | Can integrate directly with EMS APIs and advise on email strategy including transactional emails |
SEO | Understands principles | Able to provide solid but basic advice for on-site optimisation | ||
Licensing & implications | Understands basics | Intermediate | Intermediate |
What do you think? Is this helpful for you? We know it’s imperfect: it doesn’t account for front-end vs back-end developer specialism (although generally we prefer and try to nurture a well-rounded developer skill set). Neither is it easy to put a numeric scale to the items which might help define salaries.
Let us know what we’ve missed, got wrong or could just write more clearly. Thanks!
PS We’re hiring!