What are the responsibilities and job description for the Java Architect position at Apolis?
Job Details
Remote role
Duration: 12 months assignment
We are seeking an experienced Java Architect to design and oversee the development of complex, large-scale software solutions using Java technologies. The Java Architect will play a critical role in defining the system architecture, ensuring high performance, scalability, and reliability, and mentoring development teams throughout the project lifecycle. The ideal candidate will have strong expertise in Java, microservices, cloud architectures, and modern software design patterns.
Technical Skills:
Expertise in Java SE, Java EE, and modern Java frameworks (Spring, Spring Boot, Hibernate, etc.).
Strong experience in Microservices architecture, including RESTful services, SOAP, and API design.
Proficiency with cloud platforms (AWS, Azure, Google Cloud) and containerization technologies (Docker, Kubernetes).
In-depth knowledge of relational (MySQL, PostgreSQL) and NoSQL databases (MongoDB, Cassandra, Redis).
Strong understanding of design patterns, SOLID principles, and software development best practices.
Experience with DevOps tools (Jenkins, GitLab, Docker, Kubernetes) for CI/CD pipeline setup.
Familiarity with Event-Driven Architecture, Message Queues (Kafka, RabbitMQ), and asynchronous programming.
Key Responsibilities:
- Architecture Design & Development:
o Create and maintain architecture diagrams, technical specifications, and documentation.
o Establish best practices for coding, testing, and deployment processes.
o Define system components and integrations to meet business requirements.
- Technical Leadership:
o Conduct code reviews, providing constructive feedback to ensure quality and consistency.
o Collaborate with cross-functional teams (product management, QA, DevOps) to deliver robust solutions.
o Act as a technical leader to resolve architectural challenges and troubleshoot complex issues.
- Technology Evaluation & Innovation:
o Evaluate third-party software solutions and services, including cloud platforms, databases, and middleware, to determine the best fit for the system.
- Project Management & Delivery:
o Break down complex tasks into manageable work packages and ensure that development milestones are met.
o Provide technical input and estimates for resource allocation, scope, and timelines.
- Quality Assurance & Performance Optimization:
o Optimize system performance, scalability, and security through code refactoring and other optimization techniques.
o Ensure high standards of software quality and contribute to the continuous improvement of development processes.
- Collaboration & Communication:
o Effectively communicate technical concepts and decisions to non-technical stakeholders. o Manage and resolve escalated technical issues.