A | B | C | D | E | F | G | H | I | J | K | L | M | N | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Technocrat | Architecture | Leadership | TES Community | |||||||||||
2 | Technical Skill | Frontend Development | Frontend Design/Styling | Software design | DevOps | Systems Thinking | Software Delivery | Business Analysis | Vision and Ownership | Mentoring/Enabling | Community Engagement | TES Engagement | |||
3 | Advanced | Advanced level knowledge in all the different JS patterns in place at TES | Advanced knowledge of multiple frontend frameworks | master CSS, influence standard bodies, invented hacks | Strong understanding of how to write maintainable software, rarely if ever makes mistakes that lead to poor maintainability | Deep operating system knowledge | Able to correctly balance delivery pressure with long term maintenance concerns | Understands a broad range of architectural options | Broad understanding of the dependencies/prioritization between different business areas | Communicates a difficult vision effectively | Able to coach and explain technical concepts to all levels | Keynote speaker at major industry conferences | Keeps track of all changes in github on a daily basis | ||
4 | Advanced level knowledge of JS and the libraries that we use | Is the author a succesful & popular library/framework | Able to achieve iterative design | Has strong opinions on software design regardless of implementation language | Able to do performance tuning across services and operating systems | Web security guru | Can drive an evolutionary architecture and maintain cohesiveness | Commercial awareness of value provided vs the budget available | Arbitrates difficult decisions without creating resentment | Able to provide effective, timely negative feedback that avoids conflict and negative feelings | Monitors business and technical dashboards to keep track of the health of TES technology | ||||
5 | Author of successful & popular library/framework | Involved in standard committee/browser implementations | know about motion design and creating meaningful animations | Chooses the correct tool for the job; able to avoid the golden hammer fallacy | Debug and analyze performance and latency issues in a distributed world | Builds flexible monitoring that avoids false alarms and alerts on real system breakages | Designs and develops integration patterns | Able to break down unclear business needs in the smallest valuable piece of work | Builds responsible & trusted leaders | ||||||
6 | Contributes to core ECMAScript standards or NodeJS code | Advanced knowledge of web page performance and optimizations | able to develop a production ready design from scratch | Able to find poor software design and will automatically define a sensible roadmap to fix it | Deep understanding of the network stack | Able to use the data provided by their services to inform business decisions | Can coach other people to deal with difficult situations | ||||||||
7 | Indepth understanding of system security | Builds teams values and behaviours to increase effectiveness | |||||||||||||
8 | Serves their team | ||||||||||||||
9 | |||||||||||||||
10 | |||||||||||||||
11 | Knowledgeable | In depth understanding of the basic building blocks of a TES service | Influences architectural design to ensure frontend compatibilty | Can build full blown prototypes | Avoids and guides team members away from software design pitfalls | In depth understanding of the shared tooling used at TES | Consistently implements effective monitoring and logging in their systems | Prevents technical debt buildup for a team | Able to express technical considerations revolving around prioritization | Communicates a vision effectively | Provides directive in difficult situations | Owns an open source project that TES depends on | Ensures builds across the engineering team are kept green | ||
12 | Very strong programming skills in JS | Capable of using many libraries/frameworks | Author complex SASS plugins/mixins | Able to do a large scale redesign | Strong understanding of how services are deployed in live | Strong understanding of web security | Builds a flexible architecture | Can work directly with the business to elicit prioritized work | Can drive a project from inception to delivery from a business perspective | Builds responsible & trusted people | Organizes engineering events | ||||
13 | Understands and can work effectively with multiple javascript paradigms and programming styles | Strong understanding of web page performance and how to tune | Challenge designs from a user perspective | Understands when tests are not providing value | Strong understanding of the monitoring solutions at TES | Strong understanding of complex system metrics | Communicate an architecture | Able to turn complex business needs into consumable work | Actively works to support services outside of their team's responsibilities | Challenges teams values and behaviours to increase effectiveness | Owns a TES open source library | ||||
14 | Strong understanding of multiple datastorage techniques and technologies. | In depth knowledge of multiple build pipeline toolsets | Capable of designing on the fly/in the browser | Does not refactor for the sake of refactoring | Understands the performance impact of network and service topology | Strong understanding of data's relationship with system health | Strong understanding of async vs synchronous integration patterns | Balances the urgent with the important | Works to make others on the team more effective | Works to maintain consistency across codebases | |||||
15 | In depth understanding of a single datastorage technology | know accessibility principles | Writes code that can be maintained by an inexperienced engineer | Strong understanding of the importance of data to the business | Provides adequate details with issues/stories | Helps other teams to adopt practices that make them successful | |||||||||
16 | In depth understanding of NodeJS & ECMAScript | understand usability patterns | Understands the delivery cost of correctness vs shipping | Provides assistance in hipchat when people ask for things | |||||||||||
17 | Breaks the rules at the right times | ||||||||||||||
18 | |||||||||||||||
19 | Independently successful | Understands the basic building blocks of a TES service | Build web applications that support multiple browsers, which include all the relevant prefixes / polyfills | Builds responsive web designs | Creates the right place when there is no right place | In depth understanding of chosen build tools | In depth understanding of API design | Manages technical debt on a person level | Understands the TES business and users | Has a cohesive technical vision at a project level | Able to do peer to peer mentorship/enabling | Speaker at a conference (on TES's behalf) | Ensures their builds are kept green as much as possible | ||
20 | Knows what good looks like, and will apply it all times | Understands web page performance and optimizations | Builds mobile first | Awareness of the cost of maintaining a code base | Contributes to the shared tooling used at TES | Considers maintenance and monitoring of the system | Able to drive a cohesive microservice architecture | Ensures features promoted to live are functioning as expected | Primarily responsible for a delivery project | Has strong situational awareness of people | Contributes to the TES blog | Helps with organizing engineering events | |||
21 | Avoids cargo culting | Applies progressive enhancement when neccesary | In-depth knowledge of SASS | Understands good software design | Working knowledge of monitoring systems at TES | In depth understanding of web security | Understands the concept of a walking skeleton | Able to engage the business users to elicit the value of the requested task and provide effective alternatives | Can manage external expectations effectively | Provides effective feedback | Contibutes to open source projects that TES depends on | Contributes to TES open source libraries | |||
22 | Able to work with a single datastorage technology | Writes effective automated tests for frontend code | All CSS/HTML is cross browser compatible | Refactors when neccessary | Understands the performance impacts of technology choices | Considers how to get data from their systems to the business | Strong understanding of the integration patterns used at TES | Can write stories/epics that are consumable by the team | Prevents the team from being burdened with too many external pressures | Works to the pace of the team | |||||
23 | Working knowledge of git & github | Considers how to handle frontend errors | Comfortable with designer tools (sketch/zeplin) | Proactively works towards improving the code base | Can dig into performance problems in a single service | Understands the fallacies of distributed computing | Appreciates priorities set by people with broader understanding of business constraints | Monitors hipchat and responds when there are issues in their services | Consistently provides mentees with a safe place to discuss issues | ||||||
24 | In depth knowledge of a build pipeline toolset used by TES | Able to challenge designs that are technically infeasible | Writes tests when required | Knowledge of system security | |||||||||||
25 | Writes maintainable code | ||||||||||||||
26 | |||||||||||||||
27 | Experienced Beginner | In-depth knowledge of NodeJS | In-depth knowledge of a frontend framework | In-depth knowledge of HTML & templating | Working knowledge of JS design patterns | Working knowledge of deployment environment | Basic knowledge of monitoring tools available at TES | Understanding of service architecture | Understands the distinct business area they are working in | Maintains vision of a larger piece of work (feature/epic) within the delivery | Actively considers and provides adhoc feedback | Gives talks to user groups | Contributes to TES shared libraries | ||
28 | Uses the code base a reference point but may not able to understand if it is good or not | Understands progressive enhancement | Working knowledge of SASS | Puts code in the right places | Working knowledge of deployment tools | Working knowledge of web security | Understanding of system architecture | Able to decompose a business story into technical tasks | Explain technical solutions well | Can mentor and enable more junior developers | Attends conferences | Contributes to knowledge sharing and other learning opportunities | |||
29 | Has effective git commits | Tests against multiple browsers to ensure compatibilty | Apply existing designs to new problems | Understands different testing strategies (test pyramid) | Working knowledge of build tools | Basic understanding of REST | Realizes the quality is their responsibility | Actively works to support the services on their team | Contributes ideas to hackdays | ||||||
30 | Uses pull requests effectively | Working knowledge of a build pipeline toolset used by TES | Understanding of cross browser concerns for CSS/HTML | Understands basic abstractions | Working knowledge of TES integration techniques | ||||||||||
31 | Basic understanding of algorithms | Maintains consistency within the code base | |||||||||||||
32 | Writes readable code | ||||||||||||||
33 | |||||||||||||||
34 | |||||||||||||||
35 | Novice | Working knowledge of NodeJS | Working knowledge a frontend framework | Working knowledge of CSS | Understand basic automated testing | Understands basic build tools at TES | Basic understanding of distributed computing | Understands why the structure of code/services is important | Aware of the business sections within TES | Can complete a story with external assistence or pairing | Involved in selecting solution for an issue | Attends user group meetups | Communicates via hipchat | ||
36 | Can implement simple solutions with direction | Basic understanding of browsers (ie, firefox, safari, chrome, ie) | Working knowledge of HTML | Understands the importance of automated testing | Basic understanding of shell scripting/usage | Basic understanding of logging infrastructure | Basic understanding of technical debt | Understands a user story & technical tasks | Maintains an understanding of how to deliver a story | Actively contributes to Pull Request discussions | Reads and follows relevant technical blogs | Participates in hackdays | |||
37 | Understands source control and the value it provides | Understanding of the existence/importance of build pipeline tools | Working knowledge of browser javascript | Can read code and understand what is going on | Basic understanding of deployment environment | Basic understanding of web security concepts | Able to follow a simple archtecture when it is explained to them | Listens effectively during meetings with the business | Asks for help in a timely fashion | ||||||
38 | |||||||||||||||
39 | |||||||||||||||
40 | |||||||||||||||
41 |