Senior Java Backend Interview Questions: 50 Java, Spring Boot, Kubernetes, AWS & Observability Questions


Senior backend interviews are no longer limited to questions like “What is a HashMap?” or “What is dependency injection?”

For experienced Java developers, interviewers increasingly want to understand how you design, troubleshoot, secure, scale, and operate applications in production.

You may be asked how Virtual Threads work internally, why a @Transactional method is not behaving as expected, how to troubleshoot a Kubernetes pod stuck in CrashLoopBackOff, when to choose DynamoDB over RDS, or how to find the root cause when an API suddenly goes from 200ms to 5 seconds.

These questions test something more important than syntax: production engineering experience.

In this guide, we cover 50 senior Java backend interview questions and answers across Java, Spring Boot, microservices, Kubernetes, AWS, and observability.

The goal is not to memorize one-line answers. The goal is to understand how an experienced backend engineer would approach these problems in a real production environment.

Java Interview Questions

1. How do Virtual Threads work internally, and when should you avoid using them?

Virtual Threads are lightweight threads provided by modern Java versions through Project Loom. Unlike traditional platform threads, virtual threads are managed by the JVM and can be created in very large numbers.

When a virtual thread performs a blocking operation that supports virtual-thread scheduling, the JVM can suspend the virtual thread and free the underlying platform thread to execute other work.

This makes virtual threads particularly useful for applications performing many blocking I/O operations such as HTTP calls, database operations, or file operations.

However, virtual threads do not automatically make CPU-intensive applications faster.

You should be careful when the workload is primarily CPU-bound, when native code or synchronization causes pinning concerns, or when downstream resources such as database connection pools become the actual bottleneck.

Senior-level point: Increasing the number of concurrent threads does not remove limits imposed by databases, external APIs, CPU, or connection pools.

2. How does ConcurrentHashMap achieve thread safety?

ConcurrentHashMap allows multiple threads to access and update a map concurrently without requiring a single lock around the entire data structure.

Modern implementations use techniques such as atomic operations and fine-grained synchronization for updates to different parts of the map.

This allows multiple operations to proceed concurrently when they do not conflict.

It is generally preferable to using Collections.synchronizedMap() when high concurrent access is required.

3. How would you troubleshoot a Java application with 100% CPU usage?

I would start by determining whether the CPU usage is coming from the JVM process and then identify which threads are consuming CPU.

A typical investigation would include:

  • Check CPU metrics.
  • Identify high-CPU JVM threads.
  • Take thread dumps.
  • Convert thread IDs where necessary.
  • Look for infinite loops, excessive computation, lock contention, or unexpected traffic.
  • Check garbage collection activity.
  • Compare the issue with recent deployments.

Profiling tools such as Java Flight Recorder can provide much deeper information without requiring the application to be restarted.

4. How would you identify and fix a JVM memory leak?

A memory leak occurs when objects remain reachable even though the application no longer needs them.

I would monitor heap usage over time and look for a pattern where memory continues increasing after garbage collection.

Useful investigation techniques include:

  • Heap dumps
  • Java Flight Recorder
  • GC logs
  • Memory profilers
  • Object histogram analysis

Common causes include unbounded caches, static collections, listener registrations, ThreadLocal misuse, and objects retained unintentionally.

5. G1 GC vs ZGC – when would you choose each?

Both G1 and ZGC are modern garbage collectors, but they target somewhat different performance requirements.

G1 is a general-purpose collector designed to balance throughput and predictable pause behavior.

ZGC is designed for very low pause times, particularly useful for applications with large heaps and strict latency requirements.

The decision should be based on application characteristics, heap size, latency requirements, throughput expectations, and actual measurements rather than simply choosing the newest collector.

6. How does CompletableFuture handle asynchronous execution?

CompletableFuture provides an API for composing asynchronous operations.

For example:

CompletableFuture<String> result =
    CompletableFuture.supplyAsync(() -> callExternalService())
        .thenApply(response -> processResponse(response));

If no executor is explicitly supplied, asynchronous stages commonly use the common ForkJoinPool.

For production applications, explicitly choosing an appropriate executor can be important because blocking operations should not unnecessarily consume a shared pool intended for other work.

7. What causes thread pool exhaustion in a Java application?

Thread pool exhaustion occurs when available worker threads are continuously busy and new tasks cannot be processed efficiently.

Common causes include:

  • Slow database queries
  • Blocking external API calls
  • Long-running tasks
  • Deadlocks
  • Insufficient pool size
  • Traffic spikes
  • Incorrect asynchronous design

Simply increasing the pool size is not always the solution. The underlying bottleneck should first be identified.

8. How would you design a thread-safe cache in Java?

The design depends on the application's requirements.

For a simple in-memory cache, concurrent data structures can provide basic thread safety.

For production systems, however, additional concerns include:

  • Maximum cache size
  • Expiration
  • Eviction policy
  • Concurrent updates
  • Cache stampede prevention
  • Distributed consistency

If multiple application instances need to share the cache, a distributed cache such as Redis may be more appropriate than a local JVM cache.

9. How does the Java Memory Model handle visibility and ordering?

The Java Memory Model defines how threads interact with shared memory and what guarantees exist around visibility and ordering.

Without proper synchronization, one thread may not immediately observe another thread's changes.

Mechanisms such as:

  • volatile
  • synchronized
  • Locks
  • Atomic classes
  • Concurrent collections

provide different memory visibility and ordering guarantees.

A senior engineer should understand the happens-before relationship rather than treating volatile as simply a way to make variables thread-safe.

10. How would you profile a production JVM without restarting the application?

Modern JVM tooling provides several ways to investigate a running application.

Java Flight Recorder and related JVM diagnostic tools can collect information about CPU usage, allocations, garbage collection, threads, locks, and other runtime behavior.

The key production principle is to use diagnostic tooling carefully and understand its overhead and security implications.

Spring Boot Interview Questions

11. How does Spring Boot Auto-Configuration work internally?

Spring Boot Auto-Configuration attempts to configure application components based on the dependencies and configuration present in the application.

It uses conditional configuration extensively.

For example, if certain classes are available on the classpath and certain beans are not already defined, Spring Boot may automatically configure appropriate infrastructure.

This is why adding a dependency such as a database driver or Spring Data starter can result in significant configuration being created automatically.

12. How does @Transactional work internally?

@Transactional is generally implemented using Spring's proxy-based AOP infrastructure.

When a transactional method is invoked through the appropriate proxy, Spring can:

  1. Start or join a transaction.
  2. Invoke the target method.
  3. Commit the transaction if successful.
  4. Roll back according to the configured rollback rules when required.

The transaction manager coordinates the actual transaction with the underlying resource, such as a database.

13. Why does @Transactional sometimes not work?

This is a classic senior Spring interview question.

One common reason is self-invocation.

If one method directly calls another method in the same class, the call may bypass the Spring proxy responsible for applying transactional behavior.

Other causes include:

  • Incorrect transaction manager configuration
  • Calling methods before the bean is proxied
  • Incorrect propagation settings
  • Unexpected rollback rules
  • Transactions crossing inappropriate boundaries

14. How would you optimize a slow Spring Boot REST API?

I would avoid immediately changing application code.

First, I would identify where the latency is being introduced.

The investigation could include:

  • API latency metrics
  • Distributed traces
  • Database query performance
  • Connection pool metrics
  • External API latency
  • Thread pool usage
  • JVM CPU and memory
  • Application logs

Only after identifying the bottleneck would I optimize the relevant component.

15. How would you handle global exception handling in a microservice?

Spring Boot applications can centralize REST exception handling using @RestControllerAdvice and @ExceptionHandler.

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(OrderNotFoundException.class)
    public ResponseEntity<ErrorResponse> handle(
            OrderNotFoundException ex) {

        return ResponseEntity
                .status(HttpStatus.NOT_FOUND)
                .body(new ErrorResponse("ORDER_NOT_FOUND"));
    }
}

A consistent error response format makes APIs easier to consume and troubleshoot.

16. How does Spring Boot manage database connections?

Spring Boot commonly configures a JDBC connection pool through a DataSource.

HikariCP is the default connection pool in many Spring Boot configurations.

Instead of creating a new physical database connection for every request, the application borrows connections from the pool and returns them when the operation completes.

Connection pool configuration has a major impact on application performance.

17. How would you configure and tune HikariCP?

Important HikariCP settings include:

  • Maximum pool size
  • Minimum idle connections
  • Connection timeout
  • Idle timeout
  • Maximum lifetime

The correct pool size depends on database capacity, query duration, application concurrency, and workload.

Increasing the pool indefinitely can actually make the database perform worse.

18. How would you implement caching in Spring Boot?

Spring provides caching abstractions through annotations such as:

@Cacheable
@CachePut
@CacheEvict

For example:

@Cacheable("products")
public Product getProduct(Long id) {
    return productRepository.findById(id)
            .orElseThrow();
}

The actual cache implementation can be local or distributed depending on the architecture.

19. How would you secure a Spring Boot microservice?

A production service should typically use layered security.

This may include:

  • HTTPS
  • OAuth2/JWT authentication
  • Role or scope-based authorization
  • Input validation
  • Rate limiting
  • Secure secret management
  • Audit logging
  • Security headers

For microservices, service-to-service authentication and authorization must also be considered.

20. How would you gracefully shut down a Spring Boot application?

Graceful shutdown allows an application to stop accepting new traffic while giving existing requests enough time to complete.

This is particularly important in Kubernetes and load-balanced environments.

A good shutdown strategy should coordinate application shutdown with readiness state, load balancing, ongoing requests, message processing, and resource cleanup.

Microservices Interview Questions

21. How would you design a fault-tolerant microservices architecture?

A fault-tolerant architecture assumes that failures will happen.

Important patterns include:

  • Timeouts
  • Retries with backoff
  • Circuit breakers
  • Bulkheads
  • Idempotency
  • Health checks
  • Load balancing
  • Graceful degradation
  • Observability

The goal is not to eliminate failures completely. The goal is to prevent a local failure from becoming a system-wide outage.

22. How do you prevent cascading failures?

Cascading failures occur when one unhealthy service causes other services to become overloaded or unavailable.

For example:

Service A → Service B → Service C → Database

If Service C becomes slow, Service B may consume all its threads waiting for C. Service A can then experience the same problem.

Timeouts, circuit breakers, bulkheads, rate limiting, bounded queues, and graceful degradation can help prevent this behavior.

23. Circuit Breaker vs Retry – when should each be used?

A retry is useful when a temporary failure may succeed on another attempt.

A circuit breaker prevents repeated calls to a dependency that is already failing.

Retries should always be bounded and normally use backoff and jitter.

Blindly retrying a failing dependency can make an outage significantly worse.

24. How would you implement distributed transactions?

Distributed transactions are difficult because multiple independent services own different data.

Instead of trying to maintain one ACID transaction across every microservice, many architectures use patterns such as:

  • Saga
  • Transactional Outbox
  • Event-driven architecture
  • Compensating transactions

The appropriate approach depends on consistency requirements and business workflows.

25. Saga Choreography vs Orchestration?

In choreography, services react to events and coordinate the workflow without a central coordinator.

In orchestration, a central component controls the workflow and tells participating services what actions to perform.

Choreography can reduce central coordination but may become difficult to understand as the number of services grows.

Orchestration provides a clearer workflow but introduces a central coordinator that must also be designed and operated correctly.

26. How would you implement idempotency in REST APIs?

Idempotency ensures that repeating the same request does not accidentally create multiple business operations.

A common approach is to accept an Idempotency-Key from the client and store the processing result associated with that key.

For example, a payment request retried three times should not charge the customer three times.

27. How would you handle service-to-service communication failures?

I would first classify the failure.

Is it:

  • Network failure?
  • Timeout?
  • HTTP 5xx?
  • Rate limiting?
  • Authentication failure?
  • Dependency outage?

Then I would apply the appropriate strategy such as timeout, limited retry, circuit breaker, fallback, or asynchronous processing.

28. How would you design API versioning for microservices?

API versioning allows services to evolve without unexpectedly breaking existing clients.

Common approaches include:

  • URL versioning
  • Header-based versioning
  • Media-type versioning

For public APIs, backward compatibility and a clear deprecation strategy are often more important than the specific versioning mechanism.

29. How would you handle eventual consistency?

Eventual consistency means different parts of a distributed system may temporarily have different views of data before converging.

This is common in event-driven microservices.

Applications should be designed to tolerate temporary inconsistencies where the business allows them.

Techniques include:

  • Events
  • Retries
  • Compensating actions
  • Idempotent consumers
  • Reconciliation jobs

30. How would you troubleshoot a slow downstream microservice?

I would use distributed tracing to identify where the request is spending time.

Then I would investigate the downstream service's:

  • CPU
  • Memory
  • GC
  • Thread pools
  • Database latency
  • Connection pools
  • External dependencies

The important point is to avoid assuming that the caller is the problem simply because the caller is experiencing the latency.

Kubernetes Interview Questions

31. What happens when a Kubernetes Pod crashes?

Kubernetes continuously observes the desired and actual state of workloads.

If a container crashes, Kubernetes may restart it depending on the Pod's restart policy and controller managing the workload.

For Deployments, the ReplicaSet ensures that the desired number of replicas is maintained.

If the container repeatedly fails, the Pod can eventually enter a state such as CrashLoopBackOff.

32. Readiness Probe vs Liveness Probe?

Readiness determines whether a Pod should receive traffic.

Liveness determines whether Kubernetes should consider the container unhealthy enough to restart it.

A common mistake is using the same aggressive health check for both.

For example, a temporary downstream database problem should not necessarily cause Kubernetes to restart every application container.

33. Deployment vs StatefulSet?

A Deployment is commonly used for stateless workloads.

A StatefulSet is designed for workloads that require stable identities, stable network identities, or persistent storage relationships.

Spring Boot REST APIs are commonly deployed using Deployments, while stateful systems may require StatefulSets depending on their architecture.

34. How does Kubernetes Service Discovery work?

Kubernetes Services provide stable networking and DNS-based discovery for workloads.

Instead of calling an individual Pod IP, another application can call the Kubernetes Service.

Kubernetes then routes traffic to appropriate backend Pods.

This is important because Pods are ephemeral and their IP addresses can change.

35. How does HPA scale a Spring Boot application?

The Horizontal Pod Autoscaler increases or decreases the number of Pod replicas based on configured metrics.

Common signals include CPU and memory, while custom or external metrics can also be used.

For backend systems, CPU alone may not always represent application load. Request rate, queue depth, or latency-related signals can sometimes be more meaningful.

36. How would you troubleshoot a Pod stuck in CrashLoopBackOff?

I would inspect:

  • Pod events
  • Container logs
  • Previous container logs
  • Environment variables
  • Secrets and ConfigMaps
  • Resource limits
  • Startup configuration
  • Health probes

Common causes include application startup failures, missing configuration, invalid secrets, database connectivity problems, insufficient memory, and incorrectly configured probes.

37. How would you perform a zero-downtime deployment?

A typical approach uses multiple replicas and a rolling deployment strategy.

The new version is gradually introduced while old replicas continue serving traffic.

Readiness probes are important because a new Pod should receive traffic only after the application is actually ready.

Graceful shutdown is equally important so existing requests can complete before an old Pod terminates.

38. How do you manage configuration and secrets in Kubernetes?

Non-sensitive configuration can be stored using ConfigMaps.

Sensitive values can be provided through Kubernetes Secrets or, preferably in many production environments, integrated with an external secrets management solution.

Applications should avoid hardcoding credentials, API keys, or database passwords inside source code or container images.

39. How would you troubleshoot high CPU or memory usage inside a Pod?

First, determine whether the issue is caused by the Java application or by container and workload configuration.

For Java, investigate:

  • Heap usage
  • GC activity
  • Thread behavior
  • CPU-intensive code
  • Traffic levels
  • Object allocation

For Kubernetes, also inspect requests, limits, throttling, restarts, and node-level resource pressure.

40. How would you configure JVM memory limits for Java applications running in Kubernetes?

Java applications running in containers should be configured with awareness of the container's memory limit.

The JVM needs memory not only for the Java heap but also for metaspace, thread stacks, native memory, code cache, and other runtime structures.

Therefore, setting the heap equal to the entire container memory limit is usually a bad idea.

A production configuration should leave appropriate headroom for non-heap and native memory usage.

AWS Interview Questions

41. EC2 vs ECS vs EKS vs Lambda – when would you choose each?

EC2 provides virtual machines and gives you significant control over the operating environment.

ECS provides managed container orchestration without requiring you to operate Kubernetes.

EKS provides managed Kubernetes control-plane infrastructure and is useful when Kubernetes is a strategic platform choice.

Lambda provides serverless execution and is well suited to event-driven or short-lived workloads where managing servers is undesirable.

The decision should consider operational complexity, workload characteristics, team expertise, scalability, networking, cost, and platform requirements.

42. SQS vs SNS – when should you use each?

SQS is primarily a queueing service used to decouple producers and consumers.

SNS is primarily a publish/subscribe messaging service used to distribute notifications or events to multiple subscribers.

They can also be combined.

For example:

Producer → SNS → Multiple SQS Queues → Multiple Consumers

This allows different consumers to process the same event independently.

43. RDS vs DynamoDB for a Spring Boot application?

RDS is a relational database service suitable for applications requiring relational modeling, SQL, joins, transactions, and established relational database capabilities.

DynamoDB is a managed NoSQL database designed for highly scalable key-value and document workloads.

The decision should be based on access patterns rather than simply choosing the database with better theoretical scalability.

44. How would you design a highly available Java application on AWS?

A highly available architecture should avoid single points of failure.

A typical design might include:

  • Multiple Availability Zones
  • Load balancing
  • Multiple application instances
  • Auto Scaling
  • Highly available database architecture
  • Distributed caching where appropriate
  • Asynchronous messaging
  • Monitoring and alerting
  • Automated deployment

High availability is an architectural property, not simply an AWS checkbox.

45. How would you secure a Spring Boot application running on AWS?

Security should be implemented at multiple layers.

Important areas include:

  • IAM least privilege
  • Private networking where appropriate
  • Security groups
  • Encryption in transit
  • Encryption at rest
  • Secrets management
  • Secure API authentication
  • Logging and auditing
  • Vulnerability management

Application-level security and cloud-level security should complement each other.

Observability & Production Interview Questions

46. Metrics vs Logs vs Distributed Traces?

Metrics provide numerical measurements such as request rate, CPU, memory, error rate, and latency.

Logs provide detailed events and application context.

Distributed traces show how a request travels through multiple services.

In a production microservices environment, the three signals are most powerful when correlated.

Metrics tell you that something is wrong.

Traces help identify where it is wrong.

Logs help explain what happened.

47. How do Micrometer and OpenTelemetry work with Spring Boot?

Micrometer provides instrumentation and metrics capabilities widely used in the Spring ecosystem.

OpenTelemetry provides standardized observability instrumentation and telemetry collection across metrics, traces, and logs.

A production architecture might use Micrometer for application metrics and OpenTelemetry for distributed telemetry and tracing.

The telemetry can then be exported to appropriate monitoring and observability backends.

48. How would you investigate an API whose latency suddenly increased from 200ms to 5 seconds?

I would start with metrics rather than immediately searching logs.

First, determine:

  • Which endpoints are affected?
  • Is the increase in p50, p95, or p99 latency?
  • Did traffic increase?
  • Did error rates increase?
  • Did CPU or memory change?

Next, I would inspect distributed traces to identify which service or operation is consuming the additional time.

Suppose a trace shows:

API Gateway: 50ms

Order Service: 100ms

Payment Service: 4.5 seconds

The investigation can then move to Payment Service.

I would check its database queries, connection pool, external API calls, CPU, GC, thread pools, and logs.

This produces a much faster investigation path than searching every application log from the beginning.

49. How would you identify whether the problem is in Java, Kubernetes, database, or AWS infrastructure?

This requires correlation across multiple layers.

Layer What to Investigate
Java CPU, memory, GC, threads, locks, application profiling
Spring Boot API latency, connection pools, application metrics, logs
Kubernetes Pods, restarts, probes, CPU throttling, memory limits
Database Slow queries, connections, locks, CPU, storage performance
AWS Network, load balancer, service health, infrastructure metrics

Distributed tracing is especially valuable because it connects application behavior across service boundaries.

50. Design an end-to-end observability architecture for Java microservices running on Kubernetes and AWS.

A production observability architecture should cover the application, container platform, cloud infrastructure, databases, messaging systems, and external dependencies.

A simplified architecture could look like:

Users → Load Balancer/API Gateway → Spring Boot Microservices → Database / Kafka / AWS Services

Telemetry flows from the applications and infrastructure into the observability platform:

Spring Boot → Micrometer/OpenTelemetry → Collector → Metrics/Logs/Traces Backend → Grafana/Dashboards/Alerts

The platform should provide:

  • Application metrics
  • JVM metrics
  • API latency
  • Error rates
  • Distributed tracing
  • Structured logs
  • Trace-log correlation
  • Kubernetes metrics
  • Database metrics
  • Kafka metrics
  • AWS infrastructure metrics
  • Actionable alerts

The goal is to reduce the time required to move from symptom → investigation → root cause → resolution.

Final Senior-Level Interview Question

Tell me about a production incident you handled. How did you identify the root cause, what tools did you use, and what changes did you make to prevent it from happening again?

This question is often more valuable than dozens of theoretical questions because it reveals whether you have actually worked through production problems.

A strong answer should follow a clear structure:

  1. Situation: What happened?
  2. Impact: Who or what was affected?
  3. Detection: How did you discover the problem?
  4. Investigation: What metrics, logs, traces, dashboards, or JVM tools did you use?
  5. Root cause: What actually caused the incident?
  6. Resolution: What did you do to restore the service?
  7. Prevention: What did you change so the problem would not happen again?

For example, don't simply say:

"The database was slow, so we optimized the query."

A stronger senior-level answer explains how you discovered the database was the bottleneck, what evidence supported the conclusion, how you measured the improvement, and what monitoring or architectural changes were introduced afterward.

How to Approach Senior Java Backend Interviews

One of the biggest differences between a mid-level and senior backend interview is the level at which the interviewer expects you to think.

A junior developer might answer:

"Use a retry."

A senior engineer should ask:

  • What type of failure are we retrying?
  • Is the operation idempotent?
  • How many retries?
  • What backoff strategy?
  • Could retries overload the dependency?
  • Should we use a circuit breaker?
  • What happens if the dependency remains unavailable?
  • How will we monitor the behavior?

The same thinking applies to almost every topic in this article.

For example, when asked about HikariCP, don't only explain the configuration properties. Explain how connection-pool exhaustion affects API latency and how you would prove that the pool is actually the bottleneck.

When asked about Kubernetes, don't only define readiness and liveness probes. Explain how incorrect probes can cause unnecessary restarts or route traffic to an application that is not ready.

When asked about AWS, don't simply compare services. Explain why you would choose a particular service based on workload, availability, scalability, operational complexity, and cost.

Senior Backend Engineering Mindset

A strong senior Java backend engineer thinks beyond individual classes and APIs.

You should be able to connect:

Code → JVM → Spring Boot → Database → Microservices → Kubernetes → AWS → Observability → Business Impact

When a production system slows down, the answer is rarely found in one layer.

A database problem can appear as a Spring Boot latency problem. A Kubernetes CPU limit can appear as a Java performance problem. A downstream service failure can appear as thread-pool exhaustion in the calling service.

This is why senior engineers need a system-level understanding of backend applications.

Conclusion

Senior Java backend interviews are increasingly focused on real-world engineering rather than isolated Java syntax.

Virtual Threads, JVM performance, Spring Boot internals, microservice resilience, Kubernetes, AWS architecture, and observability are all connected when you operate a production system.

The strongest candidates are not necessarily the people who can memorize the most definitions. They are the engineers who can explain why a particular design was chosen, what can go wrong, how they would troubleshoot it, and how they would prevent the problem from returning.

If you are preparing for a senior Java, Spring Boot, microservices, Kubernetes, or AWS interview, use these 50 questions as a starting point and practice answering each one using real production scenarios from your experience.

Looking to build scalable and production-ready Java/Spring Boot applications? Explore more practical Java, Spring Boot, microservices, AWS, Kubernetes, and backend engineering content from LogicBrace.

Frequently Asked Questions

What topics should a senior Java backend developer prepare for?

A senior Java backend developer should be comfortable with Java internals, concurrency, JVM performance, Spring Boot, database access, microservices, distributed systems, Kubernetes, cloud platforms, security, and observability.

Are Virtual Threads important for senior Java interviews?

Yes. Modern Java interviews may test not only how Virtual Threads work but also when they are appropriate, what happens with blocking I/O, and why Virtual Threads do not solve CPU-bound problems or downstream resource limitations.

What Spring Boot topics are important for senior developers?

Important areas include auto-configuration, dependency injection, transaction management, database connection pools, caching, security, REST API design, exception handling, configuration, graceful shutdown, and production troubleshooting.

What Kubernetes questions should Java developers know?

Java developers working with cloud-native applications should understand Pods, Deployments, Services, probes, HPA, ConfigMaps, Secrets, resource requests and limits, rolling deployments, graceful shutdown, and container/JVM memory management.

What AWS services should a senior Java developer know?

The exact list depends on the role, but commonly used services include EC2, ECS, EKS, Lambda, S3, RDS, DynamoDB, SQS, SNS, API Gateway, CloudWatch, IAM, and VPC.

How do you answer senior-level production incident questions?

Explain the situation, business impact, detection method, investigation process, root cause, resolution, and preventive actions. Interviewers are usually more interested in your reasoning and engineering judgment than in a perfect incident story.

Related Java & Backend Topics

  • Java Virtual Threads and Project Loom
  • Java HashMap Internals
  • Spring Boot Microservices Interview Questions
  • Spring Security, OAuth2 and JWT Interview Questions
  • Spring Boot Observability Interview Questions
  • Microservices System Design
  • Java Performance Tuning
  • Kafka and Event-Driven Architecture
  • Kubernetes for Spring Boot Applications
  • AWS Architecture for Java 


Post a Comment

0 Comments

Close Menu