A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | EXAMPLE ONLY -- Make a copy and adjust to fit your team. | ||||||||||||||
2 | This document is intended to enumerate the main layers in our design / development / operational stack. We can use it as a guide to evaluate our current skill set to build a roadmap for future breadth and depth. | ||||||||||||||
3 | LAYER | DEFINITION | Familiar == 1 | Competent == 2 | Expert == 3 | Team | Person A | Person B | Person C | Person D | Person E | Person F | Person G | Person H | Person I |
4 | User Experience Design | Designing how an end-user interacts with an application or component. | You can copy existing models, concepts, or components in a sensible way. | You can enhance existing models. | You create the standards or drive user research to define new standards. | 14 | 1 | 1 | 1 | 1 | 1 | 2 | 1.5 | 2.5 | 3 |
5 | Visual Design | A visually accurate, interactive picture of an application, feature, or component. | You can identify when a design has been made to fit the styleguide. | You can make a design according to the styleguide. | You wrote the styleguide. | 13 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 3 |
6 | CSS / SCSS | The mechanism by which elements in a web page are styled. | You can copy existing styles, or know what different CSS properties do. You are familiar with the capabilities of SCSS. | You can look at a visual design and intuitively know what properties to use and how to apply them to elements. You have some ideas of how to use SCSS's capabilities to improve our code. | You have architected a complex system of inheritance / reusability of CSS across an application or set of applications. | 17 | 2 | 1 | 2 | 1.75 | 1 | 2 | 1.75 | 3 | 2.5 |
7 | Markup / HTML | The tree of elements that make a web application. | You know the difference between <div> and <span>. You can sensibly enhance existing functionality. | You can make wise decisions for the markup to implement a new component or feature. | You are eager to architect the markup philosophy of an application or set of applications. | 17.75 | 2 | 1 | 2 | 1.5 | 1.5 | 2 | 1.75 | 3 | 3 |
8 | React Components | Javascript files that implement a unit of user interface, including markup and interactivity. | You can work in existing components, adding incremental enhancements. | You can write a component from scratch. | You design a system of components for an app or set of apps. TODO something about component hierarchy | 17.5 | 2 | 1.5 | 2 | 3 | 1 | 2 | 3 | 2 | 1 |
9 | Redux Actions / Reducers / etc | The underpinnings of a Redux app that dispatch and handle events and manipulate data. | You can modify existing code in an incremental fashion. | You can define a new action and reducer for a given feature. | You have designed a system of actions and reducers given the needs of an app or set of apps. | 15 | 2 | 1 | 2 | 2.5 | 1 | 2 | 2.5 | 1 | 1 |
10 | React API Requests | The way that an application frontend makes requests to backend systems, and handles the responses and error cases. | You can modify existing code to change how an API request is sent or how its response is processed. | You can create new code to interface with new APIs, or change existing code in a significant way. You have a deep understanding of the asynchronous nature of these requests. | You have architected the mechanism by which the frontend dispatches API requests, and serve as a resource to your team on the best ways to implement these features. | 16.75 | 2 | 1.5 | 2 | 2.75 | 2 | 2 | 2.5 | 1 | 1 |
11 | Node.js API Controllers | The main server-side code that handles HTTP requests. | You can modify an existing controller to add incremental functionality. | You can create a new controller and associated services (if necessary), along with a firm understanding of security policies and routing systems. | You are comfortable designing the backend of an app from the ground-up, including API design, routing, security policy. | 19.5 | 2 | 1.5 | 2 | 3 | 3 | 3 | 3 | 1 | 1 |
12 | Node.js Policies | Security controls governing access to HTTP resources. | You can modify an existing policy to adapt to a changing environment or adding incremental functionality. | You can create a new policy and know how to attach it to appropriate routes. | You are skilled at designing an effective and efficient security policy structure to meet business and product needs. | 14.5 | 2 | 0.5 | 1 | 3 | 2 | 2 | 3 | 0 | 1 |
13 | Node.js Models / DB Interaction | Data object definitions, along with interdependencies and special functionality. | You can modify an existing model, e.g. to add a new database field or change a field type. | You can create a new model file from scratch, understanding the tradeoffs of size, performance, and usability. | You can create a set of models for an application, given a definition of the purpose the application needs to serve. You understand the different join types and when to use indexes. | 14.5 | 2 | 1 | 1 | 3 | 1.5 | 2 | 3 | 0 | 1 |
14 | Postgres | Database software that stores application model data. | You know how to view the database schema and run basic SELECT or UPDATE queries. | You know how to manipulate the schema effectively, preserving backward-compatability and high performance. You can write a SQL JOIN query from scratch. | You are well versed in database administration, performance tuning, security, and a whiz with SQL. | 13.5 | 3 | 3 | 1 | 1.5 | 1.5 | 1 | 2.5 | 0 | 0 |
15 | Redis | Key/value store used for session storage and caching. | You know how to connect to a Redis instance and view the contents of keys. | You are familiar with a good portion of the Redis API, and how it is used by our applications. | You know how to debug problems with Redis. You can tune the system for performance, durability, and reliability. | 12 | 3 | 1 | 0 | 1 | 3 | 2 | 2 | 0 | 0 |
16 | Jenkins / CI/CD | Build and deploy system. | You can run Jenkins jobs and know if they succeeded or failed. | You can describe how Jenkins works to do builds and deploys. You can look at the console output and know what's going on. You can copy an existing job to make a new job. | You can architect and build a Jenkins system from scratch, providing your team with a reusable and reliable system to use and grow with. You have learned the Groovy language. | 15.25 | 3 | 1 | 2 | 2.25 | 2 | 2 | 2 | 1 | 0 |
17 | AWS ECS | Elastic Container Service -- The way that Docker containers are run in QA/Stg/Prd on top of Amazon EC2. | You know how to view the status of a service running in ECS. | You can provision a new ECS service, based on an existing service. | You could set up an ECS cluster from scratch, including autoscaling rules and resource allocation. You can teach a team about it. | 16 | 3 | 1 | 1 | 2 | 3 | 2 | 2 | 1 | 1 |
18 | AWS EC2 | Elastic Compute Cloud -- Amazon's virtual machine / network infrastructure. | You know how to view EC2 resources. | You can provision new EC2 resources similar to existing resources. | You could set up a new EC2 account from scratch, including virtual machines, EBS volumes, Load Balancers, VPCs, etc. | 16 | 3 | 1 | 1 | 2 | 3 | 2 | 2 | 1 | 1 |