Most Java codebases a startup inherits were written for a language that no longer exists. Java 21 shipped in September 2023 with virtual threads as a final feature (JEP 444), and Java 25, the newest long-term-support release, went GA in September 2025 (OpenJDK). A senior Java developer in 2026 should write code that looks different from the Java of 2014. Many candidates with "10 years of Java" on their resume still write it the old way, and that gap is what your hiring process has to find.
Key Takeaways
- Screen for modern Java (records, virtual threads, Spring Boot 3 and 4), not years on a resume.
- Spring Boot 3 made Java 17 the floor and moved from `javax.` to `jakarta.`, so upgrade experience is a real skill.
- The best Java hires reason about the JVM: memory, garbage collection, and thread behavior under load.
- Java is still used by nearly 30% of professional developers, so the pool is deep and you can afford to be picky.
The Pool Is Big. That Makes Filtering the Job.
In Stack Overflow's 2025 Developer Survey, 29.6% of professional developers reported using Java and 15.6% reported using Spring Boot (Stack Overflow). That is a huge supply of people. It also means a lot of resumes look identical.
What separates them is currency. Spring Boot 3.0 requires Java 17 as a minimum and swapped the Java EE namespace for Jakarta EE (Spring Boot 3.0 release notes). The current line, Spring Boot 4.1, still needs only Java 17 but is compatible through Java 26 (Spring docs). And each Spring Boot minor version gets roughly a year of open-source support (Spring Boot supported versions). Translation for a founder: if your app is on Spring Boot 2.x or an early 3.x, you are going to pay for an upgrade soon, and the person you hire should have done one before.
What to Actually Test
Skip the trivia about access modifiers. Ask about the things that break production.
| Signal | Weak answer | Strong answer |
|---|---|---|
| Concurrency | "I use a thread pool" | Explains when virtual threads help (lots of blocking I/O) and when they don't (CPU-bound work, and on Java 21, `synchronized` blocks that pin carrier threads) |
| Spring upgrades | "We stayed on 2.7" | Has moved a service to Boot 3, handled the `jakarta.*` rename, fixed broken dependencies |
| Memory | "The JVM handles it" | Has read a heap dump, knows what a memory leak looks like in a long-running service |
| Data access | Writes everything through the ORM | Spots N+1 queries, knows when to drop to SQL |
| Modern syntax | Getter/setter boilerplate everywhere | Uses records, sealed types, and pattern matching where they fit |
One good screening question: "How would you turn on virtual threads in a Spring Boot 3.2+ app, and what would you watch for?" The mechanics are a single property on Java 21 (Spring Boot 3.2 release notes). The watching is the senior part. A strong candidate talks about connection pool limits, because virtual threads make it very easy to open far more database connections than your database will accept.
For the general shape of a technical screen, how to design a technical test for developers covers the format, and how to spot a fake senior developer covers the resume inflation that Java attracts more than most languages.
A Concrete Version
Say you run a 12-person B2B SaaS company. Your billing service is Spring Boot 2.7 on Java 11, and your one Java engineer just gave notice.
The US option: the BLS puts the median software developer wage at $135,980 as of May 2025 (BLS), and a senior Java engineer who has done framework migrations sits above the median. Using the same BLS benefits math as our backend hiring guide, even a median US developer runs roughly $194,000 a year fully loaded, before recruiting fees. A senior Java engineer who has done framework migrations costs more.
The nearshore option: a senior LATAM Java engineer through a staff-augmentation partner typically runs 40 to 60% below that fully loaded US cost, works your hours, and you can review a vetted shortlist within 72 hours, often before a US job post has drawn its first qualified applicant.
Either way, the first 60 days should look the same. Week one: get the service building locally and write down every dependency that blocks Boot 3. Weeks two to four: upgrade to Java 17, then Boot 3, one module at a time, with tests running in CI after each step. Weeks five to eight: decide on Java 21 and virtual threads based on measured load, not hype. If a candidate cannot sketch a plan like that in an interview, they have not done the work.
The Honest Counterpoint
Java is a poor choice for some things you might be tempted to use it for. A three-person startup building a CRUD MVP will usually ship faster in a batteries-included framework like Rails or Django, and startup time on the JVM still matters for some serverless workloads. If your roadmap is mostly frontend work, a Java hire will spend their days outside their strengths.
The other trap is over-hiring. Plenty of Java engineers come from large enterprises with layers of architecture that a startup does not need. A candidate who wants to add an event bus and six microservices to a product with 400 customers is a real risk. Ask them about the simplest system they have shipped and how they decided it was simple enough.
Frequently Asked Questions
What Java version should a new hire know?
Java 17 at minimum, since Spring Boot 3 and 4 require it. Java 21 is a good sign because it brought virtual threads, and familiarity with Java 25, the newest LTS release, means they keep up.
Should I hire a Java developer or a Kotlin developer?
If your codebase is Java, hire Java. Kotlin runs on the same JVM and interoperates well, so a strong Kotlin engineer can work in Java, but the reverse takes ramp-up. Our Kotlin hiring guide covers that side.
How do I test Spring Boot skills quickly?
Give them a small Spring Boot 2.7 service and ask what it would take to move it to Boot 3. Their answer shows whether they know about the Java 17 floor, the `jakarta.*` namespace change, and dependency compatibility.
The Bottom Line
Java talent is plentiful, so the hard part is filtering for engineers who write modern Java and have lived through a framework upgrade. Test concurrency, memory, and migration experience with real scenarios. Be wary of candidates who bring enterprise complexity to a startup codebase. If you want to see senior Java engineers who have already passed that kind of screen, see available engineers or get a quote for your role.
Roberto Espinoza is CEO of Ruzora, which helps US startups hire pre-vetted senior LATAM engineers, with a vetted shortlist in 72 hours. See available engineers.
