Java Microservices Developer
Resource Informatics Group, Dallas, TX, United States
Position: Java Microservices Developer
Location: Dallas, TX & Charlotte, NC
Duration: Contract or Full time
Job Description: Java Microservices Developer
Role Overview:
We are seeking an experienced Java Microservices Developer to assist in the migration of IBM DataPower configurations (MQ connections and SOAP services) to a modern, cloud-native Spring Boot-based microservices architecture. The ideal candidate will possess strong expertise in Java, Spring Boot, Kafka, and cloud-native microservices design. This role involves developing scalable, secure, and high-performance solutions while ensuring a seamless transition from legacy systems.
Key Responsibilities: Microservices Development
Develop RESTful APIs using Spring Boot, ensuring feature parity with legacy SOAP services.
Utilize Spring WebFlux or Spring MVC for high-performance and scalable API design.
Implement secure APIs with Spring Security, OAuth2, and JWT for authentication and authorization.
Cloud-Native Microservices
Build and maintain distributed microservices using Spring Cloud components like Eureka, Config Server, Circuit Breaker, and API Gateway.
Design and implement stateless microservices with centralized configuration and service discovery.
Ensure microservices are optimized for cloud platforms, supporting horizontal scalability and high availability.
Kafka Integration
Develop event-driven microservices using Apache Kafka, enabling real-time data streaming and asynchronous communication.
Create and manage Kafka producers, consumers, and topics for seamless inter-service communication.
Optimize Kafka configurations for high throughput and low latency.
Implementation and Migration
Rewrite and modernize legacy DataPower scripts (XSLT, GatewayScript, and XML configurations) using Spring Boot microservices.
Integrate microservices with MQ messaging systems (e.g., IBM MQ) for reliable data exchange.
Use the Spring ecosystem for distributed service orchestration and messaging.
Testing and Validation
Develop and execute unit, integration, and performance tests using tools like JUnit, Mockito, and Postman.
Validate API functionality and microservice performance, ensuring backward compatibility.
Debug and resolve issues discovered during testing and deployment phases.
Collaboration and Documentation
Collaborate with architects, DevOps, and QA teams to ensure alignment with project objectives.
Document technical designs, API specifications, Kafka integration patterns, and migration processes.
Support smooth deployment and troubleshooting during and after migration.
Optimization and Troubleshooting
Optimize microservices for performance, reliability, and scalability using caching and connection pooling techniques.
Ensure adherence to security best practices, including data encryption in transit and at rest.
Troubleshoot and resolve issues related to APIs, Kafka messaging, and MQ integration.
Key Qualifications: Technical Expertise
Proficiency in Java and Spring Boot with hands-on experience in microservices development.
Strong knowledge of RESTful API design, including OpenAPI (Swagger) documentation.
Experience with Apache Kafka, including producer/consumer development and real-time streaming.
Familiarity with MQ messaging systems (e.g., IBM MQ) for data exchange and processing.
Cloud and Microservices Skills
Hands-on experience with Spring Cloud components like Eureka, Config Server, and Circuit Breaker.
Understanding of microservices design patterns, including service discovery and fault tolerance.
Familiarity with CI/CD pipelines for automated builds, testing, and deployment.
Preferred Skills
Knowledge of monitoring tools like Prometheus, Grafana, or the ELK stack.
Experience in database integration with Spring Data JPA, Hibernate, and RDBMS/NoSQL systems.
Background in migrating SOAP-based services to RESTful or event-driven architectures.
Soft Skills:
Strong analytical and problem-solving abilities.
Excellent communication and teamwork skills.
Ability to work in a fast-paced, dynamic environment with shifting priorities.
Education and Experience:
Bachelor's degree in Computer Science, Engineering, or a related field.
5+ years of experience in Java application development.
2+ years of experience with Spring Boot microservices and Kafka integration.