Job title Job family Senior Software Engineer Technology, Systems & Delivery Proposed band D Job purpose Responsible for the design of software, and for implementation and operation of effective software and tools. Key responsibilities and accountabilities Lead the design and development of effective software that meets complex product and business needs Review and give constructive feedback on others code Drive work to successful completion across the immediate team Write appropriate tests using automated test driven techniques for ensuring code quality and coverage Integrate the software with monitoring and support tools Ensure the teams software works in its operating environment Write, review and take responsibility for technical documentation Lead troubleshooting and resolution of issues throughout the product life cycle, including out of hours support for incident resolution Participate in and lead as required, the team's agile planning and delivery process Effectively participate in and help improve the teams software development methodologies, such as pairing, code and documentation reviewing and continuous delivery Work with project, product and technical leads to design software and create implementable specifications and tasks at feature and component level Work with 3rd Party ("Indies") where necessary offering direction, support and documentation Mentor and coach more junior staff. Provide technical leadership and direction to peers and colleagues. Line Management of 1-2 software engineers (if appropriate) Learn new technologies and keep abreast of existing technologies and help introduce them where appropriate Knowledge, skills, training and experience Essential Extensive experience writing and maintaining large scale robust production software in a fast changing environment with rapid release cycles Expertise in one or more mainstream development language/frameworks Expertise with one or more mainstream development and deployment tool chains (IDE, SCCS, CI) Competence in database design and use in software applications Expertise in web architecture and key technologies (HTTP, DNS, distributed design) Expertise in test driven development and broader testing and QA concerns Expertise in developing for operational and non functional concerns (monitoring integration, performance testing, scale, availability and resilience, security considerations) Extensive experience of project working and professional software development processes, including agile Page 1 of 7
Competence in translating product requirements into technical solutions Demonstrable experience in using design patterns Effective leadership and collaboration inside and beyond the team. The ability to influence diverse stakeholders effectively Takes responsibility for driving work to completion across the team Technical Lead on at least 1 Medium/Large sized project (3 months +) Desirable Worked on multiple projects or codebases concurrently Software Engineering or computer science degree or equivalent Experience of mentoring and supporting less experienced members of the team Job impact Decision making Write, review and take responsibility for technical documentation Collaborating with stakeholders and product managers to understand business requirements and influence product requirements Design and communicate the design of software features or components that meet business and product requirements Leads and implements software to meet business and product requirements independently Review others work and give constructive feedback for improvement Resolve operational incidents, deciding on immediate and follow up actions and improvement plans Scope Finance: Responsible for headcount budget of 125k Line Management: Ad-hoc Teams: Mentoring of more junior staff. Line management of 1-2 staff Participates in ad-hoc teams with up to 30 members Participation in process or technology strategy working groups as SME or to represent their team/division Participation in cross divisional forums for improvement of share tools and practices Occasional participation as temporary member in another unit or department as SME Other information For Reward team use only Job Code Definition: Content Page 2 of 7
This job description is a written statement of the essential characteristics of the job, with its principal accountabilities, incorporating a note of the skills, knowledge and experience required for a satisfactory level of performance. This is not intended to be a complete, detailed account of all aspects of the duties involved. Page 3 of 7
Appendix There may be sub-sets of the generic job described above which require additional technical skills. This appendix to the generic job description can be developed to cover such situations. Division Reports to (title) Location base Design and Engineering Senior Product Manager Broadcast Centre, White City, London W12 Organisation structure D+E offers a wide range of stretching, creative and impactful careers for talented people. We are the team that s building the future of the BBC, whilst delivering TV, radio and online services to millions of people worldwide every day. As well as being the people behind iplayer and the News, Sports and Children s services, we develop, support and maintain the systems and infrastructure that keeps the BBC on air and are responsible for the biggest British-run digital service in the world. In D+E, you ll be working on unique challenges, hand in hand with the best creative minds in the UK and alongside one of the world's leading production and distribution companies (BBC Studios). We offer challenging work but with the time to think and do things right. We uphold a 100 year history of invention and innovation in the BBC by welcoming and developing people of all backgrounds. We don t focus simply on what we do we also care how we do it. Our values and the way we behave are important to us. Please make sure you ve read about our values and behaviours in the document attached below. You ll be asked questions relating to them as part of your application for this role. The BBC is committed to building a culturally diverse workforce and therefore strongly encourages applications from underrepresented groups. We are committed to equality of opportunity and welcome applications from individuals, regardless of their background. ----------------------------------------------------- Within D+E Platform, the Editorial Services team creates and maintains editorial tools, systems and workflows that supply a large number of online products with content, including News, Sport, /programmes, and Children. The sub-teams within Editorial Services are: Media Tools, AMP, CPS, and isite. This role is with the isite team. ----------------------------------------------------- PURPOSE OF ROLE We are looking for an experienced, professional and enthusiastic front end software engineer to join our busy team working across a set of products delivering next-generation Page 4 of 7
content management and content delivery tools: User-generated content uploader initially for CBBC with MVP launch in Autumn. isite our multi-tenanted headless CMS used by 300+ projects across the BBC A clips search for News users and in very early development. Tools framework a JavaScript library that enables interaction between tools Int gel matter a shared React component library for use across internal products The isite team consists of 13 software engineers, a test engineer, project manager, product owner and business analyst. Key criteria for a strong candidate would involve experience with: Vanilla JavaScript, including ES6 features. JavaScript libraries used to build UIs, ideally React A JavaScript state management tool, such as Redux NodeJS Interaction with JSON APIs Other useful skills include experience with: a module bundler such as Webpack or Rollup TypeScript AWS Continuous integration software such as Jenkins You will be developing sophisticated and dynamic web applications using the latest technologies and best practices, based on React, ES6 and Backbone.js with extensive use of HTML5, CSS3, Sass and continuous delivery. You will work with both front and back end developers, with the opportunity to learn about both. You will follow a test-driven approach using Jest and Behat, and collaborate with other developers using GitHub as a version control system with frequent pair programming, code reviews and an up to date web development toolkit including Webpack, Babel, grunt and AWS.. The role requires a good knowledge of JavaScript, web standards, accessibility and experience of working in an agile team delivering large-scale web applications using TDD & BDD. Experience of application development using MV* frameworks and REST APIs is desirable. Some knowledge of PHP, responsive design, and build automation tools (e.g Jenkins) would also be valued as well as interest in other JavaScript frameworks such as AngularJS. Additional job specific responsibilities and accountabilities SCOPE OF ROLE- KEY ACCOUNTABILITIES Lead the design and implementation of web applications and content management components to specification, using a mix of server side and client side technologies. Ensure web applications are efficient, scalable and well abstracted. Write unit and functional tests using test driven development (TDD) and Page 5 of 7
behaviour driven development (BDD) techniques to ensure code quality Write, review and take responsibility for clear, concise and comprehensive technical documentation Lead troubleshooting and resolution of issues throughout the product life cycle Liaise with product teams to explore and suggest appropriate technical solutions to achieve the required product features while safeguarding reliability, scalability and performance Work with all relevant parties on the deployment to the live site and all intermediate hosting environments Mentor and coach more junior staff. Provide technical leadership and direction to peers and colleagues. Ensure software conforms to operational requirements of hosting environments Effectively participate in and help improve the teams software development methodologies, such as pairing, code and documentation reviewing and continuous delivery Be responsible for work quality and process, ensuring it meets the teams and BBC Online technical standards and guidelines Take responsibility for delivering work against the production schedule. Learn new technologies and keep abreast of existing technologies, help introduce them to the team where appropriate Opportunity, where interested, to learn back end development and develop into full stack developer SKILLS, EXPERIENCE AND QUALIFICATIONS Essential Extensive experience writing and maintaining software for large scale web applications using HTML, CSS, JavaScript, and JSON Extensive experience with JavaScript frameworks such as React Experience of accessibility, usability and cross-browser issues Experience and enthusiasm for working in a TDD/BDD environment Experience of developing code within a UNIX environment (ideally CentOS/Red Hat EL) Experience in translating product requirements into technical solutions An understanding of RESTful web service usage and design At ease working in a fast changing environment with rapid release cycles An understanding of agile development methodologies Experience of supporting, modifying and maintaining systems and code developed by 3rd parties Experience of leadership and collaboration inside and beyond the team. The ability to influence diverse stakeholders effectively Self-motivated with good organisational skills in order to work to challenging deadlines Experience of Technical Leadership on a least on Medium/Large project Experience of working with code repositories (e.g. GitHub) and bug tracking tools (e.g. JIRA) Page 6 of 7
Desirable Experience of pair programming Experience of using Webpack and ES6 Experience of AWS Experience with single-page applications Experience using GitHub as a code review tool Experience with continuous integration to automate builds (e.g. Hudson, Jenkins) Experience with Node Experience developing content management solutions Experience with Ruby/Cucumber Experience with PHP Familiarity with or an interest in learning other programming languages Experience of user experience design and information architecture Experience of advanced XML technologies, such as XML Schema, XForms, XPath and XQuery Experience or interest in full stack development Approval Manager Duncan Thomson HR Business Partner Tim Burden Date 22June2018 Page 7 of 7