Java developer job description template (2026)
A complete Java developer job description you can copy, with Spring Boot and JVM specifics, seniority levels and tips for attracting experienced engineers.
By the Ryz Labs team · Updated October 2026
A Java developer job description should say which Java era and which problem space the role lives in. A developer maintaining a Java 8 monolith on WebLogic and one building Spring Boot 3 services on Java 21 with virtual threads are doing different jobs, and senior candidates read the post to work out which one you have. Spell out your Java version, your framework, how services talk to each other and what the person will own. The template below targets a senior backend Java developer building and running Spring Boot microservices. Copy it, replace the bracketed details and remove anything that does not match your team.
Java developer job description template
Job title
Senior Java Developer (Spring Boot, Backend Services)
Employment type: full-time or contract. Location: remote, with at least four hours of overlap with US Eastern time.
About the role
We are hiring a senior Java developer to build and operate the services behind [product name]. You will own backend services that process [orders / payments / claims / events] for [customers / internal teams], work with product managers and front-end engineers, and shape how we design, test and release JVM services. Our platform runs Spring Boot 3 on Java 21, deployed to Kubernetes on [AWS / Azure / GCP], with Postgres and Kafka at the core. You will join a team of [number] engineers and report to [title].
Responsibilities
- Design and build REST and event-driven services with Spring Boot 3, Spring Web and Spring Data JPA.
- Own services from design doc to production: implementation, tests, deployment, dashboards and incident follow-up.
- Model data in Postgres, tune Hibernate mappings and fetch strategies, and catch N+1 queries before they ship.
- Produce and consume Kafka events with clear schemas, idempotent handlers and sensible retry and dead-letter behavior.
- Diagnose JVM issues in production using heap dumps, thread dumps, GC logs and Java Flight Recorder.
- Write unit and integration tests with JUnit 5, Mockito and Testcontainers so tests run against real databases and brokers.
- Manage schema changes with Flyway or Liquibase in a way that supports zero-downtime deploys.
- Secure APIs with Spring Security, OAuth 2.0 and JWT, and review code for injection and deserialization risks.
- Keep builds healthy in Maven or Gradle: dependency upgrades, CVE fixes and reproducible CI pipelines.
- Review pull requests, mentor mid-level engineers and help retire legacy modules safely.
Requirements
- 5+ years of professional software development, with at least 4 years building production services in Java.
- Strong command of modern Java (17 or 21): records, sealed types, streams, Optional and the java.time API.
- Deep experience with Spring Boot, including dependency injection, configuration, profiles and auto-configuration behavior.
- Solid understanding of JPA and Hibernate: entity lifecycle, lazy loading, transaction boundaries and when to drop down to plain SQL.
- Working knowledge of Java concurrency: the memory model, ExecutorService, CompletableFuture and where virtual threads help.
- Experience with at least one message broker such as Kafka or RabbitMQ in production.
- Practical JVM tuning skills: heap sizing, choosing between G1 and ZGC, and reading GC logs.
- Experience shipping containerized Java services to Kubernetes or a managed container platform.
- Clear written English for design docs, code review and async communication.
Nice to have
- Experience with Spring Cloud, Resilience4j or a service mesh for timeouts, retries and circuit breaking.
- Reactive programming with Spring WebFlux or Project Reactor, and a clear opinion on when it is worth the complexity.
- GraalVM native images or Quarkus for fast-starting services.
- Migrating applications from Java 8 or 11 to a current LTS release, or from javax to jakarta namespaces.
- Kotlin on the JVM alongside Java.
- Observability with OpenTelemetry, Micrometer and Prometheus.
Tech stack
Java 21, Spring Boot 3, Spring Data JPA, Hibernate 6, Postgres, Kafka, Redis, Gradle, JUnit 5, Testcontainers, Flyway, Docker, Kubernetes, GitHub Actions, AWS (EKS, RDS, MSK), Grafana. Swap in your real stack and versions; experienced Java developers check this first.
What success looks like in 6 months
- You own at least one service as its primary maintainer and have shipped several features through it to production.
- You have fixed a known production problem, such as a memory leak, a slow JPA query or a noisy alert.
- You have moved at least one dependency or framework upgrade forward, such as a Spring Boot minor version or a Java LTS bump.
- Teammates ask for your review on concurrency, transaction and data-modeling changes.
How to apply and interview process
Send your resume or LinkedIn profile and a few sentences about a Java service you built or rescued. Our process has four steps: a 30-minute intro call, a technical conversation about a system you have worked on, a practical exercise or pairing session on a realistic backend problem, and a final conversation with the team you would join. We aim to give feedback within a few days of each step.
Junior vs mid vs senior Java developer
Java roles vary widely in scope. Match the title to the decisions the person will make, especially around service boundaries, data access and production support.
| Level | Scope | Typical experience | Key skills |
|---|
| Junior | Scoped tickets inside an existing Spring Boot service, with close review | 0-2 years | Core Java and collections, OOP basics, simple Spring controllers, JUnit tests, basic SQL |
| Mid-level | Features end to end within a service, including persistence, tests and deployment | 2-5 years | Spring Boot in depth, JPA and transactions, REST design, Kafka consumers, debugging with logs and metrics |
| Senior | Service boundaries, data ownership, performance and reliability for a team's systems | 5+ years | JVM internals and GC tuning, concurrency, distributed system trade-offs, migrations, mentoring and design review |
Tips for writing a Java developer job description that attracts senior talent
- State your Java and Spring versions. "Java 21 and Spring Boot 3" tells candidates the codebase is maintained. If you are on Java 8, say so and say whether an upgrade is part of the job.
- Say monolith or microservices, honestly. Many teams run a large Spring monolith plus a handful of services. Senior Java developers want to know which they will spend their days in.
- Name the application server if there is one. WebLogic, WebSphere and JBoss experience is a specific skill. Hiding it until the onsite wastes everyone's time.
- Describe your production support model. Mention on-call rotation, who reads the heap dump when a pod is OOM-killed, and how incidents are reviewed.
- Drop the enterprise acronym list. Requiring J2EE, EJB, JSF, Struts and SOAP for a modern Spring Boot role signals that the post was copied from 2012.
- Mention the build and release path. Maven or Gradle, how long CI takes and how often you deploy all hint at how painful daily work will be.
- Give one concrete scaling or reliability problem. Use a real detail from your system, such as a batch job that must finish before market open or a Kafka topic that lags during peaks.
Skip the job post: hire a vetted senior Java developer
A strong job description still starts a hiring cycle that often takes months. If you need senior Java capacity sooner, Ryz Labs can match you with senior Java developers from Latin America who work on your team, work in your repos and join your standups, all within an hour of US time zones. Only the top 1% of the engineers we interview make it through our vetting, which covers Java concurrency, Spring internals, data access and debugging production JVM issues.
Through staff augmentation you can add one Java developer or a whole group of them without changing how your team works. Ryz engineers work on your team and report to your leads. Talk to us to scope the team you need. If you are running your own hiring loop, our Java interview questions cover the topics we test and what strong answers sound like.
FAQ
What should a Java developer job description include?
A clear title with seniority, your Java and framework versions, the kind of system the person will work on, specific responsibilities, realistic requirements, your real tech stack, what success looks like after a few months and the interview steps. Avoid long lists of legacy Java EE technologies unless the role truly needs them.
Should a Java job description require Spring Boot?
If your services run on Spring Boot, yes. Most of the work will be in Spring's configuration, data access and security layers, and that depth takes time to build. If you use Quarkus, Micronaut or Jakarta EE, require that framework instead and list Spring as a plus.
How senior does a Java developer need to be to handle JVM performance issues?
Diagnosing GC pauses, memory leaks and thread contention usually needs senior experience. Mid-level developers can often fix the code once the problem is found, but reading heap dumps and choosing collector settings under production pressure is a skill most engineers build after several years of running JVM services.
Questions we didn't answer? Email info@ryzlabs.com.