Your future duties and responsibilities: 1. Technical Skills
Expertise in Java & Jakarta EE:
o Expert level proficiency in Java SE (minimum Java SE 11, preferred Java SE 17/21)
o Deep knowledge of Jakarta EE specifications, including JPA
(EclipseLink), CDI, EJB, JAX-RS and Annotation Processing (Jakarta EE 10).
o Experience with Jakarta EE containers (Websphere Liberty or similar).
Cloud Platforms:
o Hands-on experience with cloud providers like AWS, Azure, or Google Cloud.
o Understanding of cloud-native development practices, including containers (Docker, Kubernetes) and serverless architectures.
Asynchronous Programming:
o Proficiency in asynchronous programming paradigms using technologies like JMS, Kafka, or RabbitMQ.
o Familiarity with patterns to deal with asynchronous complexity like SAGA, command-response-pattern or inbox / outbox.
Domain-Driven Design (DDD):
o Experience designing and implementing solutions following DDD principles.
o Strong understanding of strategic and tactical DDD, including bounded
contexts, aggregates, entities, and repositories.
o Ability to translate principles like hexagonal architecture into practical software design.
Distributed Systems:
o Knowledge of distributed system patterns like eventual consistency.
o Experience designing systems for high availability, scalability, and resilience in a cloud environment.
APIs and Microservices:
o Proficiency in designing and developing RESTful APIs.
o Knowledge of microservices architecture like self-contained systems and tools like Quarkus or MicroProfile.
Databases:
o Strong experience with relational databases (PostgreSQL).
o Deep understanding of central data modeling, transaction handling and concurrency control concepts.
o Knowledge of data storage best practices in distributed and asynchronous systems.
Software Development Ecosystem:
o Hands-on experience of industry standard dev tools like source code
management (Git), CI/CD (Jenkins, ArgoCD) and runtime tools (Docker / Podman).
2. Architecture & Design
Solution Architecture:
o Ability to define and oversee the systems architecture in line with the principles of DDD and cloud-based infrastructure.
o Experience in creating high-level and low-level designs, addressing scalability, maintainability, and performance.
Event-Driven Architecture:
o Experience designing and building event-driven architectures, ensuring decoupling of services and efficient message passing.
Security:
o Knowledge of security best practices and vulnerability prevention strategies in cloud environments.
3. Team Leadership
Mentorship:
o Ability to mentor junior and mid-level developers, guiding them through complex design and implementation challenges.
o Foster a culture of continuous learning and improvement within the development team.
Collaboration:
o Strong collaboration with other teams (DevOps, QA, Product Management) to ensure alignment on technical and business goals.
o Experience working in agile development environments
(Scrum/Kanban).
4. Problem-Solving & Innovation
Complex Problem-Solving:
o Ability to identify and solve complex technical problems, especially in areas related to system concurrency, data consistency, and distributed processing.
Technical Innovation:
o Stay updated with the latest advancements in Jakarta EE, DDD, and
cloud technologies, promoting their adoption when appropriate.
o Strong track record of driving innovation and introducing best practices.
5. Soft Skills
Strong Communication:
o Excellent verbal and written communication skills, able to convey technical ideas clearly and concisely to both technical and nontechnical stakeholders.
Decision-Making:
o Ability to make well-informed decisions under pressure, particularly in high-stakes scenarios involving the production system.
Adaptability:
o Comfortable with evolving technologies and environments, especially
with the rapid changes in cloud and asynchronous systems.