Senior Developer
Description of Role
The Senior Developer provides high-level software development and architectural leadership to the IT team. You will drive technical excellence through modern practices like TDD/BDD, SOLID principles, and Clean Code. Working within our Agile/Scrum framework, you will deliver scalable solutions across a diverse stack including PHP (Laminas/Symfony), JavaScript (TypeScript, Dojo), AWS. A key component of this role is mentoring junior staff and supporting the trainee program to ensure continuous team growth.
Responsibilities
- Engineering & Architecture: Lead the development of complex features and ensure code architecture conforms to best practices while remaining mindful of performance.
- Agile Processes: Work within a Sprint based environment using Jira, Fisheye, and Crucible; participate in sprint planning and take a lead role in the absence of the Team Leader.
- Requirements Gathering: Determining user requirements by direct communication with stakeholder(s). Create and update Jira Issue’s with appropriate detail using stories, acceptance criteria and detailed scenarios where required.
- Quality Assurance: Conduct rigorous code reviews and implement automated testing (PHPUnit, Symfony Panther, and JavaScript Unit Testing) to maintain high system reliability.
- Infrastructure & DevOps: Utilize Terraform and Ansible to manage environments; leverage AWS services (Lambda, SQS, SageMaker) for cloud-native solutions.
- Mentoring: Aid Team Leaders in the training and encouragement of junior members and the maintenance of the trainee programme.
- Data & Security: Treat all live system and user data with the highest confidentiality and follow all security processes, including system lockdown and access approval protocols.
- Documentation: Producing and maintaining clear technical documentation.
- Continuous Improvement: Monitor industry developments and recommend improvements to Team Leaders regarding tech stack or workflow changes.
- Support: Be conscious of and pro-actively seek to clear development blockages. Responsible for addressing assigned support issues requiring developer input in line with the team SLA.
Any other tasks or duties commensurate with the objectives of the post.
Requirements and Qualifications
Person Specification
- Critical Thinking: Ability to solve complex problems and clear development blockages proactively.
- Communication: Excellent verbal and written communication skills for documenting standards and determining user requirements.
- Collaboration: A strong team player who excels in a collaborative, sprint-based environment.
Qualifications & Experience
Technical;
- Back End: PHP (Laminas/Symfony/Zend), OOP, SOLID, RESTful APIs.
- Front End: JavaScript/TypeScript, Dojo, HTML/CSS, Sass.
- Data and Search: MariaDB/MySQL (Complex CRUD & Joins).
- Infrastructure: Ubuntu/Linux, Git.
- Testing: TDD/Integration Testing, PHPUnit, XDebug.
General;
- Industry Tenure: 4+ years of experience in a similar senior or mid-level development role or equivalence with proven experience leading the architecture of complex, multi-layered systems.
- Development Lifecycle: Full involvement in the software development life cycle, from requirement gathering to deployment.
- Technical Proficiency: Proven experience with full stack development, automated testing and working on shared code versioning systems.
- Education: A reasonable level of basic education including A-C grade GCSEs (or equivalent) in Mathematics and English.
- Degree: A Computer Science related degree or equivalent professional experience.
- Certifications (Desirable): AWS Certification and/or MySQL Certification.