- Take a business problem and come up with the technical strategy (push vs pull etc real time vs batches sync vs async) within the team high level design and lead the implementation
- Need minimal directions or guidance and collaborate with SDEs across teams working on the same or similar business problem
- You showcase exemplary behaviour in your work – your design delivery code processes all set examples for your team
- Influence your team’s technical and business strategy by suggesting novel approaches
- Able to communicate your ideas and get feedback from different stakeholders and drive convergence to achieve the right outcomes
- Proactively mentor the rest of the team and help in hiring
- Ensure design or architectural deficiencies are addressed and routinely simplify integration of your peer teams with your team’s software
- Consistently lead delivery of valuable features
- Continually propose and drive process improvements
- Help elaborate requirements where necessary
Programming
· Demonstrate in depth knowledge of IDE language and toolset in language of choice.
· Implement critical path components in a large or complex or project.
· Demonstrate excellent understanding of language & framework and a good working knowledge of the abstraction layer underneath
· Profile and optimise code
· Understand threads threading model and concurrent programming
· Comfortably test drive any feature/comfortable with TDD cycle
· Demonstrate a good knowledge of other programming languages & paradigms and when to apply them
· Comfortably debug/find complex problems
Design
· Identify and apply appropriate design patterns to problems
· Comfortably develop large features
· Understand Idempotence
· Actively practice the boy scout principle leaves design code in a better state than when arrived
· Demonstrate a good understanding of cohesion SOLID and how to apply
· Understand importance of domain model and can coherently model a problem domain within a given context
· Anticipate medium term (3-6 month) vectors of change and designs and abstracts accordingly
· Understand and appreciate simplicity and the value of removing code
· Understand design patterns such as CQRS and eventual consistency
· Understand how to design for performance at all levels
Development Practice
· Automate everything by default
· Build a CI/CD pipeline
· Automate security scanning and performance testing as part of build
Infrastructure
· Demonstrate a good grasp of multiple operating systems
· Demonstrate a good grasp of scripting techniques
· Demonstrate expertise in one database & good grasp of multiple data storage paradigms and when to apply other technologies
· Understand and can automate PaaS technologies
· Understand when to apply appropriate infrastructure technologies
Security
· Write secure code by default
· Use tools to perform deep security probes
· Understand server hardening
Java Spring Boot Spring Cloud Stream Kafka NoSQL (preferably Couchbase) Azure Kubernetes GitHub DevOps tools like Jenkins etc
- Strong knowledge of design patterns, data structures, algorithms, and SOLID principles.
- Excellent hands-on experience with Java 8, Java 17 (and above).
- Deep practical experience with Microservices architecture, Spring Boot, and Spring WebFlux.
- Solid working experience with Kubernetes, Docker, and Azure Kubernetes Service (AKS).
- Strong proficiency with NoSQL databases (Couchbase, MongoDB, Cassandra) and SQL databases (PostgreSQL).
- Proven experience building and deploying cloud-native solutions on AWS and/or Azure.
- Excellent analytical and problem-solving skills.
- Effective communication skills and the ability to collaborate with cross-functional teams.
- CI/CD tools: Jenkins, GitHub Actions, ArgoCD
- Security and quality tools: Snyk, Sonar
- API Testing: Postman
- Familiarity with Agile methodologies and best practices.
- Experience with Splunk, ELK Stack for log monitoring.
- Experience with NewRelic, AppDynamics, or DynaTrace for application performance monitoring.