ABCDEFGHIJKLMNO
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
LAYERDEFINITIONFamiliar == 1Competent == 2Expert == 3TeamPerson APerson BPerson CPerson DPerson EPerson FPerson GPerson HPerson I
4
User Experience DesignDesigning 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.141111121.52.53
5
Visual DesignA 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.13111212113
6
CSS / SCSSThe 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.172121.75121.7532.5
7
Markup / HTMLThe 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.752121.51.521.7533
8
React ComponentsJavascript 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 hierarchy17.521.52312321
9
Redux Actions / Reducers / etcThe 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.152122.5122.511
10
React API RequestsThe 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.7521.522.75222.511
11
Node.js API ControllersThe 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.521.52333311
12
Node.js PoliciesSecurity 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.520.51322301
13
Node.js Models / DB InteractionData 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.521131.52301
14
PostgresDatabase 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.53311.51.512.500
15
RedisKey/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.12310132200
16
Jenkins / CI/CDBuild 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.253122.2522210
17
AWS ECSElastic 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.16311232211
18
AWS EC2Elastic 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.16311232211