- Writing code for a variety of applications from large scale applications with hundreds of features to dedicated purpose microservices with a variety of languages frameworks and tools.
- Writing highly reliable and performant code to be used by services with requirements for high availability and throughput.
- Writing code with best practice and conforming to widely accepted design principles.
- Understanding high level requirements presented by network/application designers to implement new features enhance existing features for product/customer demand regulatory compliance service/vendor integration etc.
- Breaking down high level requirements into low level implementation detail ready for development such as defining features signalling sequence documenting detail defining data model.
- Writing test cases for automated test suites to verify that code that youve written/other people have written works well and integrates with other code applications.
- Identifying gaps in test coverage and filling the gap.
- Reviewing other peoples code to ensure that a high quality of code best practices and knowledge is shared in the team.
- Spreading knowledge about your work latest developments in the industry modern technology languages security best practices etc.
- Constantly trying to understand detail such as existing code features data model application requirements customer use cases.
- Identifying potential issues in code and how to resolve these before they cause real issues affecting customers.
- Analysing issues raised by Site Reliability Engineers inspecting logs signalling sequences data configuration identifying how to resolve issues.
- Identifying potential performance bottlenecks and how to remove these.
| - In depth knowledge of Java language principles and design patterns including concepts from Java 8 e.g. lambdas streams and modern Java.
- Strong understanding of paradigms: Object Oriented Functional Event Driven Programming
- Understanding of Java frameworks e.g. JAIN SLEE Spring Boot Spring WebFlux etc.
- RDBMS systems e.g. MySQL Postgres and noSQL systems e.g. Redis Cassandra.
- Message brokers e.g. Kafka
- ClientServer protocols: SIP and HTTP
- Transport protocols: UDP TCP TLS
- Java Build frameworks e.g. Maven Ant
- CI/CD frameworks e.g. Gitlab CI/CD Jenkins Azure Devops
- Basic understanding of JVM including GC implementations e.g. CMS ParNew G1 and performance tuning.
- Good understanding of Linux OS environment command line tools user management networking with hands on experience.
- Scripting e.g. Bash Python.
- Virtualisation containerisation cloud frameworks e.g. VirtualBox Docker Azure Kubernetes.
- Git for code management.
- Infrastructure as code frameworks e.g. Ansible Terraform.
- Jira Agile Scrum
|
Leadership accountabilities | Experience youd be expected to have |
The 3 Connected Leaders behaviours most suitable to the job: - Solution focused Achiever: You deliver and coordinate activities and respond positively to challenges clearly outlining expectations for yourself and others.
- Collaborative Partner: You develop great working relationships with stakeholders and colleagues sharing knowledge and collaborating.
- Team Coach: You contribute to a high performing culture empowering others through coaching and development.
| MANDATORY - Java: 5 years
- RDBMS: 3 years
- HTTP: 2 years
- Maven/Ant/Gradle: 1 years
- Git: 1 years
PREFERRED - SIP: 3 years
- Linux: 2 years
- Docker: 2 years
- JAIN SLEE/Spring Boot/WebFlux: 2 years
- Bash/Python scripting: 1 years
- Gitlab CI/CD Jenkins Azure Devops: 1 years
|
Key decisions | The BT way |
If the job has key decision rights list these here (see RAPID guidance). As required to achieve the Team Leader role. | |
Java,Spring,Microservices,sip