Responsibilities - About the Role We are seeking an experienced Java Principal Engineer to join our team and drive the technical vision, architecture, and design of enterprise-grade applications. You will work in an Agile environment, collaborating with product management and development teams to deliver high-quality, scalable, and secure software solutions.
Your future duties and responsibilities
1. Technical Skills
Expertise in Java & Jakarta EE
Expert level proficiency in Java SE (minimum Java SE 11, preferred Java SE 17/21)
Deep knowledge of Jakarta EE specifications, including JPA (EclipseLink), CDI, EJB, JAX-RS, and Annotation Processing (Jakarta EE 10).
Experience with Jakarta EE containers (WebSphere Liberty or similar).
Cloud Platforms
Hands-on experience with cloud providers like AWS, Azure, or Google Cloud.
Understanding of cloud-native development practices, including containers (Docker, Kubernetes) and serverless architectures.
Asynchronous Programming
Proficiency in asynchronous programming paradigms using technologies like JMS, Kafka, or RabbitMQ.
Familiarity with patterns to deal with asynchronous complexity like SAGA, command-response-pattern, or inbox / outbox.
Domain-Driven Design (DDD)
Experience designing and implementing solutions following DDD principles.
Strong understanding of strategic and tactical DDD, including bounded contexts, aggregates, entities, and repositories.
Ability to translate principles like hexagonal architecture into practical software design.
Distributed Systems
Knowledge of distributed system patterns like eventual consistency.
Experience designing systems for high availability, scalability, and resilience in a cloud environment.
APIs and Microservices
Proficiency in designing and developing RESTful APIs.
Knowledge of microservices architecture like self-contained systems and tools like Quarkus or MicroProfile.
Databases
Strong experience with relational databases (PostgreSQL).
Deep understanding of central data modeling, transaction handling, and concurrency control concepts.
Knowledge of data storage best practices in distributed and asynchronous systems.
Software Development Ecosystem
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
Ability to define and oversee the system s architecture in line with the principles of DDD and cloud-based infrastructure.
Experience in creating high-level and low-level designs, addressing scalability, maintainability, and performance.
Event-Driven Architecture
Experience designing and building event-driven architectures, ensuring decoupling of services and efficient message passing.
Security
Knowledge of security best practices and vulnerability prevention strategies in cloud environments. 3. Team Leadership
Mentorship
Ability to mentor junior and mid-level developers, guiding them through complex design and implementation challenges.
Foster a culture of continuous learning and improvement within the development team.
Collaboration
Strong collaboration with other teams (DevOps, QA, Product Management) to ensure alignment on technical and business goals.
Experience working in agile development environments (Scrum/Kanban). 4. Problem-Solving & Innovation
Complex Problem-Solving
Ability to identify and solve complex technical problems, especially in areas related to system concurrency, data consistency, and distributed processing.
Technical Innovation
Stay updated with the latest advancements in Jakarta EE, DDD, and cloud technologies, promoting their adoption when appropriate.
Strong track record of driving innovation and introducing best practices. 5. Soft Skills
Strong Communication
Excellent verbal and written communication skills, able to convey technical ideas clearly and concisely to both technical and nontechnical stakeholders.
Decision-Making
Ability to make well-informed decisions under pressure, particularly in high-stakes scenarios involving the production system.
Adaptability
Comfortable with evolving technologies and environments, especially with the rapid changes in cloud and asynchronous systems. .
Required qualifications to be successful in this role
Education Qualification Bachelors degree in computer science or related field or higher with minimum 6 years of relevant experience. #LI-SB2