Category | Trainee | π | ππ | πππ |
---|---|---|---|---|
HTML/CSS | Knows all common HTML tags and what they do. Knows the basics of how CSS works and can style a straightforward page independently without help. Can build a new component within an existing Cantilever site, following existing conventions. | Can create full pages which match design comps without requiring much help. Has mastery of HTML/CSS syntax. Writes clean, accessible markup. Can quickly debug layout errors. Can use Cantilever CSS frameworks to build complex pages with minimal help. Can optimize SVG images for inline or image display depending on the situation. | Can build components of any complexity within CSS frameworks without causing code bloat. Can deliver perfect visual fidelity without hacky code. Can quickly debug layout errors. Understands SVG animation techniques. Is an expert in HTML and CSS syntax and best practices. Is an expert in accessibility and how good markup enhances it. Can teach others their skills. | Can build own HTML/CSS frameworks. Is constantly keeping up with changes in web standards and browser support.
Non-Individual Contributor:
Speaks and writes publicly on advanced technical topics and is known as a thought leader in frontend web dev. |
Javascript | Knows core vanilla javascript syntax and can write simple components within an existing site. Knows the basics of debugging JS using console.log and debugger tools. Can handle the JS layer for a small site without needing help. | Can build clean JS components within an existing architecture, matching the conventions of the project. Strongly understands the common patterns of UI development (slideshows, menus, responsive heroes, filtering systems, etc.). Understands the common JS approaches (React, Vue, vanilla) and can identity when each is appropriate. Can debug quickly using debugger. | Can build a siteβs JS layer from scratch, working from existing site models. Can build functional JS that handles complex business logic, not just UI components. Can understand and debug third-party JS. Can write JS unit tests. Can teach others how to reach their level. | Is an expert in Javascript syntax, techniques, and best practices. Can create JS unit test architecture and makes decisions about coverage standards.
Non-Individual Contributor:
Write and speaks on behalf of the company discussing JS techniques. |
Backend | Can read, understand, and debug existing backend code. Can implement basic routes and functionality within an existing site. Understands common PHP syntax and is comfortable reading through PHP code. | Can implement a moderately complex route->controller->view feature within an existing MVC framework-based site (Laravel, Ruby on Rails, Yii, etc). Understands how to create simple PHPunit tests and how to modify existing ones. | Can build clean new sites on at least one MVC framework, without help. Can architect and create PHPunit test coverage for a project. Can architect and build complex features, like an API, within an MVC framework.
Non-Individual Contributors:
Can teach and mentor other developers. | Has intimate knowledge of how common frameworks function. Is an expert in PHP syntax, best practices, and performance. Knows how to write extensive test coverage for an application.
Non-Individual Contributor:
Speaks and writes about backend development on behalf of the company. |
CMS | Knows how to implement a site in at least one CMS using by-the-book means. Can modify a CMS-driven site to add fields and update existing logic. | Has a strong understanding of how Cantilever approaches CMS integration for websites. Can build full features in an existing CMS-driven site. Can create a new simple site using at least one CMS. Can train content administrators in using CMS. Can create a clean, user-friendly interface for authors by configuring fields intuitively. | Can write custom code within a CMS-driven site to implement complex backend features. Can write plugins or field types to solve missing features of a CMS, and can debug CMS errors. Can write tests for their backend code within a CMS. Can implement a new CMS-based site cleanly without any help. | Could write their own CMS if they needed.
Non-Individual Contributor:
Is a visible leader in the community for at least one CMS. |
Build Process | Can read and understand what a build process does (with help from documentation and google). Can run Cantilever projects locally and work effectively. | Can create a new Cantilever project including a standard build proceess and local environment setup. Can modify a standard build process to suit the specific project they are working on. | Can implement local development tools that weβve never implemented before. Can create a fully optimized build process from scratch. Can teach others how to optimize their builds. | Can build custom build process scripts or plugins for webpack/gulp/grunt.
Non-Individual Contributor:
Shares their work with the open source community. |
Devops | Knows the basics of server management and CDNs. Understands various deployment methodologies and when they are appropriate. Knows how to use Git and how to submit comprehensible pull requests in Gitlab or Github. | Can work within an existing server, finding and fixing permissions or other minor issues. Can follow procedures to generate and launch a new server using Forge and Cloudflare. Can work within existing deployment and CI. Knows and adheres to aΒ Git FlowΒ workflow. | Can customize server settings like memory limits, Nginx rewrite rules, and logging. Knows Cloudflare intimately. Can debug most common server and CDN-related issues without help. | Can solve any server-related issue and can implement advanced rewrite techniques like full domain masking. Knows how to use Cloudflare service workers to optimize edge performance. |
Team Leadership (Not applicable to Individual Contributors) | Can write short handbook entries on a topic they know well, or update existing ones. | Can help a project manager understand how a project breaks down. Provides reasonable, accurate estimates for work. Can work directly with clients to solve problems quickly. | Can manage a junior developer and mentor them. Can write long, detailed handbook entries. Helps set Cantileverβs development standards and approach. | Attracts new developers to Cantilever. Can lead a full department of developers. |