Description
Required Core Skills: Minimum years of experience required: 10+ (working with senior architects) or less if proven good technical skillset Essential • Modern JavaScript (ES6+) • HTML • CSS • Visual Studio Code • Git • Azure DevOps • React / extensive experience of reactive front-end framework(s) • Gatsby / experience of static site generators Desirable: • GraphQL • Understanding of the headless CMS approach • Kentico 12 • Understanding of design systems, including web components (shadow DOM, custom elements) FULL ROLE DESCRIPTION: TECHNICAL SKILLS: 1. Strong test-driven development experience, ability to lead on automated testing, coach and upskill other team members 2. Strong ability to model data at conceptual and physical levels and communicate to other team members 3. Demonstrate and champion best use of developer tools and libraries 4. Facilitate agreement on development process with the team and adhere to it, upskilling other team members where necessary 5. Participate in regular reviews of progress, helping identify process improvements and implement them 6. Guide and encourage less experienced developers in improving their skills by pair programming, code reviews, mob programming, walkthroughs, proofs-of-concept, etc. 7. Facilitate design discussion and decision as a team and determine best way forward 8. Help the whole team understand the situation and agree the way forward so everyone's work remains aligned 9. Know how to encourage effective teamwork and collaboration 10. Understand and be able to identify sources of inefficiency, surface, challenge and overcome them 11. Maintain awareness of other team members' work and know where to offer help and/or spot check their work for alignment with user stories, design decisions and security principles 12. Awareness of different branching strategies including trunk-based development, branch-per-story and ability to guide the team on best choice for the situation and standard working practise 13. Ability to develop other team members to become full-stack developers 14. Ability to learn new and updated skills from other team members 15. Solid object-oriented, domain-driven and functional design and programming skills and ability to help other team members develop their skills 16. Strong ability to unpack user stories, suggest ways to break down or refine large stories, identify ambiguities and help ensure developers and testers understand the need, scope and acceptable criteria of each story 17. Partner with solution architects on technology selection for the project, feed back on issues found, be able to select alternatives 18. Be able to identify areas of technology risk and lead on proofs-of-concept, research and/or change of tack to address the risk early 19. Collaborate with other team leads on problem solving, lessons learned, new approaches, potentially reusable assets 20. Identify inadequate organisational support for and facilitation of technology delivery and escalate 21. Lead on defining documentation the project needs and ensuring it is maintained as a "living document", ensuring documentation is as lightweight as possible and remains relevant over time 22. Have a good track record of identifying other good developers and testers, be able to build a strong team around them 23. Develop other team members’ skills 24. Continue to learn and improve their own skills 25. Be unafraid to admit a lack of knowledge and ask for help, leading by example in showing less senior team members that it is safe for them to do the same 26. Share innovations with other teams who could benefit 27. Understanding of key accessibility issues, related web technologies, ability to engage with Accessibility team early to develop accessible software 28. Understand when to engage with data protection team, awareness of what information is personal data and implications for managing it 29. Ability to assign (and reassign) tasks to team members to best utilise their skills, maintaining a balance between short term delivery progress and long term need to upskill and develop team members 30. Ability to translate ideas in both directions between technology and business worldviews