TechnocratArchitectureLeadershipTES Community
Technical SkillFrontend DevelopmentFrontend Design/StylingSoftware designDevOpsSystems ThinkingSoftware DeliveryBusiness AnalysisVision and OwnershipMentoring/EnablingCommunity EngagementTES Engagement
AdvancedAdvanced level knowledge in all the different JS patterns in place at TESAdvanced knowledge of multiple frontend frameworksmaster CSS, influence standard bodies, invented hacksStrong understanding of how to write maintainable software, rarely if ever makes mistakes that lead to poor maintainabilityDeep operating system knowledgeAble to correctly balance delivery pressure with long term maintenance concernsUnderstands a broad range of architectural optionsBroad understanding of the dependencies/prioritization between different business areasCommunicates a difficult vision effectivelyAble to coach and explain technical concepts to all levelsKeynote speaker at major industry conferencesKeeps track of all changes in github on a daily basis
Advanced level knowledge of JS and the libraries that we useIs the author a succesful & popular library/framework Able to achieve iterative designHas strong opinions on software design regardless of implementation languageAble to do performance tuning across services and operating systemsWeb security guruCan drive an evolutionary architecture and maintain cohesivenessCommercial awareness of value provided vs the budget availableArbitrates difficult decisions without creating resentmentAble to provide effective, timely negative feedback that avoids conflict and negative feelingsMonitors business and technical dashboards to keep track of the health of TES technology
Author of successful & popular library/frameworkInvolved in standard committee/browser implementationsknow about motion design and creating meaningful animationsChooses the correct tool for the job; able to avoid the golden hammer fallacyDebug and analyze performance and latency issues in a distributed worldBuilds flexible monitoring that avoids false alarms and alerts on real system breakagesDesigns and develops integration patternsAble to break down unclear business needs in the smallest valuable piece of workBuilds responsible & trusted leaders
Contributes to core ECMAScript standards or NodeJS codeAdvanced knowledge of web page performance and optimizationsable to develop a production ready design from scratchAble to find poor software design and will automatically define a sensible roadmap to fix itDeep understanding of the network stackAble to use the data provided by their services to inform business decisionsCan coach other people to deal with difficult situations
Indepth understanding of system securityBuilds teams values and behaviours to increase effectiveness
Serves their team
KnowledgeableIn depth understanding of the basic building blocks of a TES serviceInfluences architectural design to ensure frontend compatibiltyCan build full blown prototypesAvoids and guides team members away from software design pitfallsIn depth understanding of the shared tooling used at TESConsistently implements effective monitoring and logging in their systemsPrevents technical debt buildup for a teamAble to express technical considerations revolving around prioritizationCommunicates a vision effectivelyProvides directive in difficult situationsOwns an open source project that TES depends onEnsures builds across the engineering team are kept green
Very strong programming skills in JSCapable of using many libraries/frameworksAuthor complex SASS plugins/mixinsAble to do a large scale redesignStrong understanding of how services are deployed in liveStrong understanding of web securityBuilds a flexible architectureCan work directly with the business to elicit prioritized workCan drive a project from inception to delivery from a business perspectiveBuilds responsible & trusted peopleOrganizes engineering events
Understands and can work effectively with multiple javascript paradigms and programming stylesStrong understanding of web page performance and how to tuneChallenge designs from a user perspectiveUnderstands when tests are not providing valueStrong understanding of the monitoring solutions at TESStrong understanding of complex system metricsCommunicate an architectureAble to turn complex business needs into consumable workActively works to support services outside of their team's responsibilitiesChallenges teams values and behaviours to increase effectivenessOwns a TES open source library
Strong understanding of multiple datastorage techniques and technologies.In depth knowledge of multiple build pipeline toolsetsCapable of designing on the fly/in the browserDoes not refactor for the sake of refactoringUnderstands the performance impact of network and service topologyStrong understanding of data's relationship with system healthStrong understanding of async vs synchronous integration patternsBalances the urgent with the importantWorks to make others on the team more effectiveWorks to maintain consistency across codebases
In depth understanding of a single datastorage technologyknow accessibility principlesWrites code that can be maintained by an inexperienced engineerStrong understanding of the importance of data to the businessProvides adequate details with issues/storiesHelps other teams to adopt practices that make them successful
In depth understanding of NodeJS & ECMAScriptunderstand usability patternsUnderstands the delivery cost of correctness vs shippingProvides assistance in hipchat when people ask for things
Breaks the rules at the right times
Independently successfulUnderstands the basic building blocks of a TES serviceBuild web applications that support multiple browsers, which include all the relevant prefixes / polyfillsBuilds responsive web designsCreates the right place when there is no right placeIn depth understanding of chosen build toolsIn depth understanding of API designManages technical debt on a person levelUnderstands the TES business and usersHas a cohesive technical vision at a project levelAble 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
Knows what good looks like, and will apply it all timesUnderstands web page performance and optimizationsBuilds mobile firstAwareness of the cost of maintaining a code baseContributes to the shared tooling used at TESConsiders maintenance and monitoring of the systemAble to drive a cohesive microservice architectureEnsures features promoted to live are functioning as expectedPrimarily responsible for a delivery projectHas strong situational awareness of peopleContributes to the TES blogHelps with organizing engineering events
Avoids cargo cultingApplies progressive enhancement when neccesary In-depth knowledge of SASSUnderstands good software designWorking knowledge of monitoring systems at TESIn depth understanding of web securityUnderstands the concept of a walking skeletonAble to engage the business users to elicit the value of the requested task and provide effective alternativesCan manage external expectations effectivelyProvides effective feedbackContibutes to open source projects that TES depends onContributes to TES open source libraries
Able to work with a single datastorage technologyWrites effective automated tests for frontend codeAll CSS/HTML is cross browser compatibleRefactors when neccessaryUnderstands the performance impacts of technology choicesConsiders how to get data from their systems to the businessStrong understanding of the integration patterns used at TESCan write stories/epics that are consumable by the teamPrevents the team from being burdened with too many external pressuresWorks to the pace of the team
Working knowledge of git & githubConsiders how to handle frontend errorsComfortable with designer tools (sketch/zeplin)Proactively works towards improving the code baseCan dig into performance problems in a single serviceUnderstands the fallacies of distributed computingAppreciates priorities set by people with broader understanding of business constraintsMonitors hipchat and responds when there are issues in their servicesConsistently provides mentees with a safe place to discuss issues
In depth knowledge of a build pipeline toolset used by TESAble to challenge designs that are technically infeasibleWrites tests when requiredKnowledge of system security
Writes maintainable code
Experienced BeginnerIn-depth knowledge of NodeJSIn-depth knowledge of a frontend frameworkIn-depth knowledge of HTML & templatingWorking knowledge of JS design patternsWorking knowledge of deployment environmentBasic knowledge of monitoring tools available at TESUnderstanding of service architectureUnderstands the distinct business area they are working inMaintains vision of a larger piece of work (feature/epic) within the deliveryActively considers and provides adhoc feedbackGives talks to user groupsContributes to TES shared libraries
Uses the code base a reference point but may not able to understand if it is good or notUnderstands progressive enhancementWorking knowledge of SASSPuts code in the right placesWorking knowledge of deployment toolsWorking knowledge of web securityUnderstanding of system architecture Able to decompose a business story into technical tasksExplain technical solutions wellCan mentor and enable more junior developersAttends conferencesContributes to knowledge sharing and other learning opportunities
Has effective git commitsTests against multiple browsers to ensure compatibiltyApply existing designs to new problemsUnderstands different testing strategies (test pyramid)Working knowledge of build toolsBasic understanding of RESTRealizes the quality is their responsibilityActively works to support the services on their teamContributes ideas to hackdays
Uses pull requests effectivelyWorking knowledge of a build pipeline toolset used by TESUnderstanding of cross browser concerns for CSS/HTMLUnderstands basic abstractionsWorking knowledge of TES integration techniques
Basic understanding of algorithmsMaintains consistency within the code base
Writes readable code
NoviceWorking knowledge of NodeJSWorking knowledge a frontend frameworkWorking knowledge of CSSUnderstand basic automated testingUnderstands basic build tools at TESBasic understanding of distributed computingUnderstands why the structure of code/services is importantAware of the business sections within TESCan complete a story with external assistence or pairingInvolved in selecting solution for an issueAttends user group meetupsCommunicates via hipchat
Can implement simple solutions with directionBasic understanding of browsers (ie, firefox, safari, chrome, ie)Working knowledge of HTMLUnderstands the importance of automated testingBasic understanding of shell scripting/usageBasic understanding of logging infrastructureBasic understanding of technical debtUnderstands a user story & technical tasksMaintains an understanding of how to deliver a storyActively contributes to Pull Request discussionsReads and follows relevant technical blogsParticipates in hackdays
Understands source control and the value it providesUnderstanding of the existence/importance of build pipeline toolsWorking knowledge of browser javascriptCan read code and understand what is going onBasic understanding of deployment environmentBasic understanding of web security conceptsAble to follow a simple archtecture when it is explained to themListens effectively during meetings with the businessAsks for help in a timely fashion