Job Title: Software Engineer
Location: Remote in USA
Job Type: Contract (W2 Preferable)
Role Overview: Our client is seeking Remote Software Engineers to join their team for designing, developing, and maintaining two key applications undergoing a complete rewrite. Key focus areas for this position include event driven design, spring boot, Microservices Architecture, Kubernetes, React, Elasticsearch, RabbitMQ or Kafka.
Role And Responsibilities
- Collaborate with cross-functional teams to design and implement software solutions
- Apply event-driven design principles for scalable and resilient applications
- Develop microservices using Spring Boot
- Create responsive user interfaces using React
- Work with RabbitMQ for message queuing and event streaming
- Understand the architectural differences between RabbitMQ and Kafka if experienced in Kafka
- Implement message producers and consumers
- Write unit tests with a goal of 85% coverage and participate in peer code reviews
- Conduct system testing and debugging activities
- Document technical specifications, architecture, and design decisions
- Collaborate with product managers, designers, and other engineers to define requirements and deliverables
- Track and communicate project progress and status
- Weekly time reporting on JIS provided forms, and any additional reports
Focus Areas
- Design and Development
- Message Brokers
- Deployment and Infrastructure
- Quality Assurance
- Documentation and Communication
- Reporting
Requirements
- Proficiency in event-driven design principles
- Strong knowledge of Spring Boot and microservices architecture
- Strong knowledge of design patterns
- Spring JPA experience is required
- Familiarity with Kubernetes for container orchestration
- Front-end experience with React and/or Angular
- Experience with RabbitMQ or Kafka for message queuing
- Familiarity with RESTful APIs and web services
- Elasticsearch experience is a plus
- Ability to analyze complex technical challenges and propose effective solutions
- Excellent verbal and communication skills
Qualifications
- Bachelor’s degree in Computer Science or a related field
- Ten (10) years of relevant experience in software development