MAIN DUTIES AND RESPONSIBILITIES
§ The major part of your role is ensuring that the team deliver product features into product releases at the required level of quality through driving best practice into the team members
§ You will have a great understanding of how the product performs in production. You may be required to monitor and report on the production usage of your product and help identify areas of weakness/risk which should be managed to increase uptime/performance
§ You will pro-actively participate in the full development lifecycle, from estimation to support and will be constantly identifying and implementing improvements which can be made to increase pace, quality and efficiency of the lifecycle. You will do this in a way which is cognisant to the commercial realities of the business – a pragmatic approach is required.
§ Using your core expertise (in this case as a Software Engineer) and constructive teamwork, your will ensure that your skills and expertise are effectively used to improve the product and the team by keeping a strategic view of quality across the entire product.
§ It will be your responsibility to champion your expertise (development) within the team and encourage others to actively develop their skills in this area. We expect everyone to be constantly learning from, and teaching each other; you will mentor, guide and coach more junior members of your team and other teams.
§ Like all members of the team, you are responsible for the overall quality of the product. When you think about the product you think about more than the software you think about the backlog, the development environments, the production environment, code, test scripts and processes are just some aspects we consider to be part of the product.
§ Constantly looking to increase your skills and expertise in both your core areas of experience but also in new areas. You will be responsible for identifying those areas where training or development would benefit both you, the team and ultimately the Product and for progressing these with your lead.
§ As part of developing your knowledge and expertise you will be expected to become a valued and contributing member of a cross team functional group focussed on sharing best practice and improving product delivery across the business.
§ If required you will be part of the product 3rd line support function. You will participate in the support rota which will include out of hours support and will require you to gain knowledge of products outside of your immediate team.
SKILLS, KNOWLEDGE & EXPERIENCE
§ Having been working in software delivery teams for some time (more than 6 years) you will have honed your expertise in development. You will be an advocate for ensuring quality (of existing and new features) through the correct development approach and solution design, and will be able to motivate others in the team and in other teams to do the same. People in, and beyond, your team come to you as a thought leader in your functional expertise.
§ Your work with software delivery teams has given you a strong understanding of the full stack and you will have planned and implemented product features at all levels of the stack:
o Server side (C#/.NET ASP.NET)
o API’s (3rd Party and internal – you have written and used Restful API’s and will have experience developing commercial product software)
o Back-end processes (knowledge and use of message queuing in one or both of RabbitMQ or Kafka is essential, as well as caching technologies such as Memcached or Redis; NodeJS would be a bonus)
o Databases (MYSQL, MSSQL, MongoDB and other NoSQL databases would be a bonus).
§ You will have worked in cross functional teams and will be able to demonstrate your ability and experience in:
o Proven ability to work at a strategic level for development and ensuring that this function is represented during the development lifecycle
o Working with Product to understand requirements and user stories and, with this understanding, created effective acceptance criteria.
o Unit testing, Automated testing and test frameworks
o Use of, and introduction of, tools appropriate for each layer of the stack (Visual Studio, SQL Server, etc)
o Extensive experience with C# and associated technologies and tools (Visual Studio etc) is essential.
§ PHP and NodeJS would be a bonus however a willingness to learn is more important.
o You will be familiar with SOLID principles, enterprise design patterns, and be able to give examples of where and how they should be used
o Defining, communicating, managing and reducing Product Operational Debt
o Identifying quality risks early in the development lifecycle and suggesting mitigations for these risks.
o Understanding Data Protection and security implications – you know what Penetration Testing and OWASP are and the likely risks of your product.
§ As a core member of the delivery team you will demonstrate the necessary organisational and planning skills to manage your own work and assisting more junior members of the team in their planning and execution; you will be able to demonstrate that you have operated with a level of autonomy in previous roles and your ability to coach and mentor more junior engineers.
§ You see process as a positive, there to help you know how to get your work done. You will use the Zonal development processes and in doing so identify areas of improvement which can be implemented in the team or escalated as part of continuous improvement.
§ Problems are an enjoyable challenge for you to solve. You undertake problem solving in a logical way and wherever possible look to data for guidance. You are able to provide evidence or where you have led the problem-solving exercises in a team and where you have guided others through this process.
§ You will be able to demonstrate how you have implemented tools or technologies to deliver step changes in the pace and/or quality of product delivery and at a level wider than your own team. For someone with expertise in development this might include:
o BDD or TDD
o CI/CD processes
o API documentation e.g. SWAGGER
§ Relevant degree level qualification or equivalent experience.