Software Development Engineer III
Experience : 6+ Years
Primary Responsibilities :
Design, build, test and maintain scalable and stable off the shelf application or custom-built technology solutions to meet business needs
Contribute to the entire implementation process including driving the definition of improvements based on business need and architectural improvements
Review code for quality and implementation best practices. Promote coding, testing and deployment best practices through hands-
on research and demonstration
Be a part of the Agile ceremonies to groom stories and develop defect-free code for the stories
Write testable code that enables extremely high levels of code coverage
Conduct root cause analysis and advanced performance tuning for complex business processes and functionality
Propose the right solutions to the client by identifying & understanding the pain points
Propose, pitch, sell, implement and prove success in continuous improvement initiatives
Ability to review frameworks and design principles towards suitability in the project context
Profile and optimise code
Support production systems, resolve incidents and perform root cause analysis.
Mentor young engineers towards guiding them to become great engineers
Desired Skills and Experience :
Minimum 6 years of experience
Strong Core Java skills including Java 11 features
Experience in working with data-driven RESTful APIs using web frameworks like SpringBoot
Great OO skills, including understanding of cohesion and the SOLID principles to create well structured, maintainable software.
Knowledge of software best practices, like Test-Driven Development (TDD), BDD and Continuous Integration (CI)
Knowledge of NoSQL database like Couchbase
Kafka or another Event-ing system on similar lines
Good understanding of ORMs like Hibernate, JPA, etc.
Basic understanding of Microservices-based architecture and the related eco-system
Drive out features via Junit framework
Familiarity with Reactive programming concepts using RxJava and other such frameworks
Exposure to cloud Computing- AWS / Azure
Understanding of Docker containers and Kubernetes
Advanced knowledge of Agile methodology
Develop high quality code that can lead to rapid delivery. Pursuing continuous integration and delivery using tools such as Jenkins, Chef and puppet
Apply understanding of threads, the threading model and concurrent programming.
Demonstrate the importance of domain model and coherently model a problem domain within a given context
Debug / find complex problems and support / maintain the software solution.