0% found this document useful (0 votes)
3 views2 pages

Senior Java Developer Live Coding Assessment

The document outlines a live coding assessment for a Senior Java Developer position, focusing on building a Cloud-Ready Order Processing Service using Java 17 and various technologies. Key requirements include creating REST APIs for order management, integrating with Kafka for event publishing, and implementing a retry mechanism with a Dead Letter Queue. Evaluation criteria emphasize architecture, Java expertise, Spring Boot practices, and cloud readiness, with additional advanced requirements for idempotency support and documentation expectations.

Uploaded by

Tara Papu
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views2 pages

Senior Java Developer Live Coding Assessment

The document outlines a live coding assessment for a Senior Java Developer position, focusing on building a Cloud-Ready Order Processing Service using Java 17 and various technologies. Key requirements include creating REST APIs for order management, integrating with Kafka for event publishing, and implementing a retry mechanism with a Dead Letter Queue. Evaluation criteria emphasize architecture, Java expertise, Spring Boot practices, and cloud readiness, with additional advanced requirements for idempotency support and documentation expectations.

Uploaded by

Tara Papu
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Senior Java Developer - Live Coding Assessment

Objective
Build a Cloud-Ready Order Processing Service using Java 17, Spring Boot, JPA/Hibernate, Kafka,
REST APIs, and Docker.

Functional Requirements

• Create Order API: POST /orders


• Get Order API: GET /orders/{id}
• Store orders in database (PostgreSQL or H2)
• Publish [Link] event to Kafka after order creation
• Consume event and update order status (COMPLETED or FAILED)
• Implement retry mechanism (3 attempts) and Dead Letter Queue (DLQ)

Technical Constraints

• Use Java 17 features (record, switch expressions, Optional properly)


• Use Streams API where appropriate
• Proper use of @Transactional
• DTO separation from entities
• Global exception handling using @ControllerAdvice
• Proper layering (Controller, Service, Repository)
• Unit tests required
• Dockerize the application

Evaluation Criteria

• Architecture & SOLID principles


• Core Java expertise
• Spring Boot best practices
• JPA/Hibernate optimization (avoid N+1)
• Kafka configuration & idempotency handling
• Cloud readiness (Docker, health checks, environment configs)

Live Coding Extension (Advanced)


Add idempotency support using 'Idempotency-Key' header. Duplicate keys should not create
duplicate orders and must return existing order.

README Requirements

• How to run locally


• Architecture diagram
• Design decisions and trade-offs
• Future improvements

You might also like