Backend Developer - Java

Methods
Summary
Join our team as a Backend Developer to design, develop, and maintain backend services using Java and Spring Boot. You will implement REST APIs, apply CQRS and Eventual Consistency principles, and utilize Event Sourcing and Pub/Sub systems. Responsibilities include writing automated tests, using Apache Dataspike for performance testing, leveraging Liquibase for database management, and designing and implementing microservices in a microservice-based architecture. You will manage containerized applications using Docker and Kubernetes, and deploy solutions on Azure. Collaboration with cross-functional teams and participation in Agile development processes are essential. This is a 3-6 month contract role, remote with potential travel, requiring security clearance.
Requirements
- Proven experience as a Backend Developer with a strong focus on Java 8/17 and Spring Boot
- Experience designing and implementing REST APIs using RAML
- Strong knowledge of CQRS , Event Sourcing , and Eventual Consistency patterns
- Familiarity with Domain Driven Design principles
- Strong experience with Postgres/SQL and Active MQ
- Solid understanding of microservice-based architecture and Pub/Sub systems
- Experience with JUnit , Mockito , and Wiremock for testing purposes
- Proficiency in version control systems, such as Git
- Knowledge of Azure , including Function Apps and Azure DevOps
- Proficiency in containerization using Docker and orchestration with Kubernetes
- Strong problem-solving skills, with an emphasis on debugging and troubleshooting complex backend issues
- Ability to work in a collaborative, fast-paced environment and adapt to changing project requirements
Responsibilities
- Design, develop, and maintain backend services using Java 8/17 , Spring Boot , and Java EE
- Implement and maintain REST APIs based on RAML specifications, ensuring they are secure, scalable, and high-performing
- Apply CQRS (Command Query Responsibility Segregation) and Eventual Consistency principles to design robust distributed systems
- Utilize Event Sourcing and Pub/Sub systems to support event-driven architectures
- Write and maintain automated unit and integration tests using JUnit , Mockito , and Wiremock to ensure high-quality code
- Work with Apache Dataspike for performance testing and profiling to optimize system performance
- Leverage Liquibase for database versioning and schema management with Postgres/SQL and Active MQ
- Design and implement microservices in a Microservice-based Architecture , ensuring they are scalable, maintainable, and fault-tolerant
- Manage containerized applications and services using Docker , Kubernetes , and Azure Kubernetes Service (AKS)
- Develop and deploy solutions on Azure , utilizing services like Function Apps (Azure) and Azure DevOps
- Collaborate with cross-functional teams to define and implement scalable architectures and solutions
- Participate in Agile development processes, contributing to sprint planning, code reviews, and knowledge sharing
- Ensure high system reliability by applying monitoring, logging, and alerting best practices
Preferred Qualifications
- Experience with Microsoft Azure services (e.g., Azure Functions , Azure Storage , Azure App Service , Azure Kubernetes Service )
- Familiarity with Kubernetes for container orchestration and management
- Experience with CI/CD tools and practices, particularly using Azure DevOps
- Knowledge of Bash Scripts for automation tasks
- Understanding of Docker and container management in a cloud environment
- Exposure to Active MQ and Postgres/SQL for messaging and database management
- Experience with Apache Dataspike for performance testing
- Familiarity with Event Sourcing and Pub/Sub architectures in distributed systems
- Experience working with Eventual Consistency and CQRS patterns
- Knowledge of Domain Driven Design (DDD) principles
- Understanding of microservice-based architecture and cloud-native design patterns
Benefits
Remote with some travel if client requires