As a Developer your role is to play an active part in the creation of high-quality software products to meet customer and commercial needs, in accordance with defined standards, best practice and agreed deadlines.
Alongside developing high-quality code, your role will involve assisting your team Senior Developer in scoping work and refining processes to ensure the timely delivery of projects, sprints and other work packages. You will also act as mentor to Graduate Developers in the team, and continually improve your, and others’, skill set by cross-training with other development teams.
Duties and Responsibilities
Develop High Quality Solutions:
- Working with your Senior Developer, actively engage in the regular, iterative development. Assist in scoping, planning and managing your work to ensure delivery to committed dates.
- Deliver software to the high quality standards expected by your team, and ensure those standards are maintained.
- Contribute to the enhancement of departmental systems and practices.
- Ensure peer review of code and high-test coverage are features of your deliverables.
- Identify appropriate skill gaps and training needs to ensure they are addressed promptly.
- Actively engage in continuous improvement for your team and the company's products and processes.
Mentoring and Leadership:
Working with your Senior Developer…
- Mentor less experienced team members to help identify their development needs.
- Act as a customer champion in relation to your products.
- Escalate issues with projects and staff should the need arise.
- Ensure appropriate recording and reporting of key project information and ensure that ongoing progress and issues are managed openly.
- Actively increase levels of skills and knowledge of your team and yourself.
- Provide and receive quality feedback to/from other team members to aid personal development.
- Contribute to the research and adoption of relevant new technologies and techniques, by actively remaining up-to-date with current trends.
- Manage the development of your own career path and personal development plan.
Collaboration and Relationships:
- With team members to complete tasks, provide assistance and ensure timely delivery.
- With the your Senior Developer to agree priorities, provide estimates, report progress and identify risks/impediments and mitigations
- With the Product Managers to ensure the delivered products meet the business need
- With other Developers and Architects to maintain and share knowledge
- With Product Managers, Customers and Customer Services to understand issues affecting our customers
- With the QA team to ensure high-quality, thoroughly tested output from your team.
Knowledge, Skills, Experience and Behaviours
- Either a proven aptitude for software development or a degree in computer science (or another numerate discipline)
Your skills & knowledge
- Good problem solving skills
- Ability to work in a team
- Good listening, verbal and written communication skills
- Organisational skills
- Relevant experience with design principles and best practice
- Knowledge of tools that automate or assist the development process
- Competant with one or more relevant programming languages and frameworks
- Strong knowledge of software design, database and development skills
- Good at troubleshooting complex software issues including in unfamiliar code
- Experience in designing and implementing complex software in a professional development organisation
- Experience with an industry-recognised software development lifecycle process
- Experience in integrating software components
- Demonstrable experience of a successful software developments
- Proven track record of delivering products from an agile development team
- Ability to work with Test Driven Development, Automated testing and Continuous Integration
- Able to solve problems and suggest solutions under tight timescales.
- Methodical with attention to detail and the ability to maintain a consistent approach.
- Experience of working on multiple simultaneous projects with differing technologies.
- Able to work closely with developers and testers in a tightly integrated R&D function.