Hackajob is collaborating with BBC to connect them with exceptional tech professionals for this role. Lead the design and development of software that meets complex product and business needs. Review and give constructive feedback on others’ code. Deliver 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 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. Participate in and help improve the team’s 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 third party providers where necessary offering direction, support and documentation. Mentor and coach more junior staff. Provide technical leadership and direction colleagues. Line management of 1-2 software engineers (if appropriate). Keep informed of existing and new technologies, introducing them where appropriate. Essential Knowledge, skills, training and experience 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 of software applications. Expertise in web architecture and key technologies Hypertext Transfer Protocol (HTTP), Domain Naming System (DNS) and distributed design. Expertise in test driven development, broader testing and QA concerns. Expertise in developing for operational and non-functional concerns (monitoring integration, performance testing, scale, availability and resilience, security considerations). Experience of project working and professional software development processes, including agile. Competence in translating product requirements into technical solutions Experience in using design patterns. Effective leadership and collaboration inside and beyond the team. The ability to influence diverse stakeholders effectively. Takes responsibility for delivering work to completion across the team. Technical Lead on at least one medium/large sized project (3 months). Desirable Experience of working on multiple projects or codebases concurrently. Software engineering, computer science degree or equivalent. Experience of mentoring and supporting less experienced members of the team.