<<

Job Description

Job Title: Principal Software Engineer Grade: 9 – 10 depending on experience Division: Future Media Department: Platform API Reporting to: Group Engineering Manager Location: Media City UK, Salford

Organisation & Context Platform API is the team within BBC Future Media that builds & operates the content APIs that power the BBC Online. Our mission is to craft a simple & coherent BBC API that allows internal and external developers to build innovative and high scale websites and apps, rich with BBC content. Our API includes comprehensive metadata for all BBC TV and Radio programmes, all our Audio & Video, our News & Sport articles and our leading edge linked data API that relates content to content through advanced concept tagging. Platform API is also the home of our IP based syndication systems, covering acquisition of 3rd party market data through to distributing programmes to Youview, Sky and Virgin TV VOD systems. Aim of the Role To be an expert Software Engineer who can lead and manage other Software Engineers to produce high quality software systems that support the Platform API team’s mission. To work with the Group Engineering Manager and the rest of the team to design, deliver and operate components & services that meet the product requirements.

Key Responsibilities:

Line Management 1. Lead and motivate technical staff. 2. Manage technical teams, including recruitment, talent management, appraisal and development of staff. 3. Providing constructive feedback and setting technical objectives for software engineers. Technical Management 4. Designing & implementing new technical solutions as part of a project team. 5. Ensure the operating environment is correct for the product – including Linux, Database, Traffic management and all other aspects of the operational systems. 6. Provide technical direction on products & projects and expertise in technologies or other specialist knowledge to the team. 7. Produce and contribute to documentation (e.g. product backlogs, specifications) for both internal and external audiences. 8. Advise, recommend and manage the introduction of new technology and practices. 9. Ensure that tests are carried out and results documented to the highest standards and that release documentation is completed prior to launch. 10. Identify potential areas of risk and suggest mitigating actions. 11. Scope new projects and proposals, .e. given high level requirements, suggest possible software solutions, identify components/tasks, and provide estimates. 12. Ensure projects deliver documented functionality and quality within agreed effort and time constraints. 13. Troubleshoot problems and faults and provide additional support for your team. 14. Ensure products are developed to technically high standards. 15. Build relationships with other development teams and assist the integration of business processes and software engineering activity across the organisation 16. Present information, ideas and best practice with other technical teams in the BBC and the wider development community through internal and external conferences and workgroups. 17. Mentor other staff on technology, best practice, and BBC standards and guidelines. 18. Ensure operational issues are considered and planned for when major new products, releases or versions are rolled out KNOWLEDGE & EXPERIENCE

Essential 1. Extensive software development experience. 2. Experience of leading technical staff. 3. Ability to lead and inspire a team to resolve technical problems. 4. Must have an enquiring mind with well-developed analytical and investigative skills. 5. Broad experience of web protocols and standards. 6. Experience of Linux &/or database system administration. 7. Be self-motivated with drive and good organisational skills to work to challenging deadlines. 8. Experience as a technical lead on major projects. 9. An ability to rapidly and effectively understand and translate product and business requirements into technical solutions. 10. Extensive knowledge and experience of developing in one or more object- oriented or functional programming languages. 11. Commercial experience of: Object-oriented analysis, design and development, test driven development, high performance systems 12. Experience of designing and building RESTful interfaces 13. Extensive development experience against SQL or NoSQL databases. 14. Demonstrable experience of test-driven development 15. Proven experience of Agile environment 16. Experience of working in an environment where products have to be delivered to specific time-scales 17. Experience of supporting, modifying and maintaining systems and code developed by teams other than your own 18. Experience of working with code repositories (e.g. Git, SVN)

Desirable Knowledge and Experience

1. Demonstrable experience of contributing to open-source projects 2. Use of message-queues (e.g. Amazon SNS, Rabbitmq) 3. Experience of deploying applications to cloud environments (e.g. AWS, Azure) 4. Knowledge of BBC output and the potential for interactive technologies to enhance the BBC offering 5. Experience of lean software development, such as theory of constraints and Kanban. 6. Experience of a JVM language (Java, Scala etc)

Personal Attributes

Analytical Thinking Thinks strategically when problem solving. Has awareness of bigger picture. Facilitates or leads effective problem solving in meetings or groups. Influencing/Persuading Uses range of techniques to influence, adapts to situation. Handles objections assertively. Delivers hard/difficult messages well. Managing Relationships & team working Supports a collective effort to resolve problems. A valued mediator or diplomat. Uses strengths of team to deliver increased value. Learning Actively seeks feedback from multiple sources. Contributes to wider community in own area of expertise. Resilience Proactively promotes change to others. Proactively finds out more about proposed changes. Ability to respond quickly to changes Planning and Organising Sets clear/challenges targets for team. Prioritises demand to make efficient use of resources. Effectively deals with problems.