Write clean and maintainable code, incorporating unit testing into the development process.
Follow and share best practices regarding design patterns and architecture.
Utilize performance testing tools such as JMeter and Gatling, as well as API testing tools like REST Assured.
Focus on non-functional requirements (NFRs), including volume, capacity, performance, and throughput.
Enhance the scalability and maintainability of applications.
Document and share the design and architecture.
Mentor junior engineers.
Skills and Qualifications:
3 to 7 years of experience with Java and J2EE technologies.
Bachelor’s degree in computer science, Information Technology, or related STEM fields, or equivalent experience.
Advanced proficiency in Java, Object-Oriented Analysis and Design (OOAD), and Functional Programming
In-depth knowledge of Spring modules, including Spring Core, Spring AOP, Spring Web MVC, Spring Reactive, Spring AI, and Spring Batch
Strong understanding of Design Patterns (Gang of Four/Java EE)
Solid grasp of Design Principles, including SOLID, DRY, KISS, and YAGNI
Experience with Microservice Architecture and related patterns, such as Saga, Circuit Breaker, CQRS, and Strangler
Proficient in Unit Testing frameworks like JUnit, JMock, and Mockito
Experience with Performance Testing tools, including JMeter, Gatling, and REST Assured Proficient in both RDBMS and NoSQL databases, particularly MongoDB Strong knowledge of Cloud Platforms, preferably Azure, and its features such as Azure Kubernetes Service (AKS), Azure Key Vault, Azure Blob Storage, and Azure Functions Strong understanding of Secure Coding principles, including those outlined by OWASP.