For Java & Spring Boot developers

practice real take-home assignments

Paste a job ad. Get the take-home they'd probably give you.

Each assignment is built from the posting you paste: a Maven starter project that compiles, tests that fail until you do the work, a timeboxed brief and a 100-point grading rubric.

Generate a free assignment

No card needed. Or download the sample ZIP first, no account required.

hirecheck-sample-securities-import.ziptimebox 3 h · level mid

Files

README.md, RUBRIC.md, pom.xml, five Java classes in src/main/java (the TODO is in TradeImportService.java), application.properties, and the test classes TradeImportTest.java and TradeImportHardeningTest.java.

README.md (excerpt)

# Take-home practice: Securities trade file import and rejection report (Spring Boot 3, Java 21)
> Practice assignment generated by HireCheck — not a real employer's assignment. Timebox: **3 hours**. Target level: **mid**.

## Where to work
Look for `// TODO` in `TradeImportService.importCsv`. You may refactor anything, but keep the HTTP contract.

## Run
`mvn verify` — the provided tests must pass. Your own tests are part of the grade.

Starter project, as downloaded55 tests, 55 errors

$ mvn verify
[ERROR] Tests run: 51, Failures: 0, Errors: 51, Skipped: 0, Time elapsed: 4.633 s <<< FAILURE! -- in com.example.imports.TradeImportHardeningTest
[ERROR] com.example.imports.TradeImportHardeningTest.acceptsCrLfLineEndings -- Time elapsed: 0.518 s <<< ERROR!
	...
[ERROR] Tests run: 4, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 0.036 s <<< FAILURE! -- in com.example.imports.TradeImportTest
[ERROR] com.example.imports.TradeImportTest.badHeaderIs400 -- Time elapsed: 0.007 s <<< ERROR!
	...
[ERROR] Tests run: 55, Failures: 0, Errors: 55, Skipped: 0
[INFO] BUILD FAILURE

Same tests, finished solutionBUILD SUCCESS

$ mvn verify
[INFO] Tests run: 51, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.449 s -- in com.example.imports.TradeImportHardeningTest
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.059 s -- in com.example.imports.TradeImportTest
[INFO] Tests run: 55, Failures: 0, Errors: 0, Skipped: 0
[INFO] BUILD SUCCESS
Real files and real mvn verify output from the free sample. Per-test lines after the first failure in each class are trimmed.

How it works

Generating takes under a minute. The 3–4 hours after that are yours.

  1. Paste the job ad

    HireCheck picks out the stack and seniority: Spring Web, JPA, Security, Kafka and so on.

  2. Download the repo

    A starter project that compiles, with TODOs and tests that go green when you're done.

  3. Grade yourself

    Score your work against a transparent 100-point rubric with junior, mid and senior bars. AI feedback on your solution coming soon

Why not LeetCode?

Take-homes aren't algorithm puzzles.

A reviewer reads your validation, error handling, transactions, tests and how you structured the code. That's what you practise here.

From the sample brief

  • Reject bad CSV rows with a 1-based line number and a reason: COLUMNS, ISIN, SIDE, QUANTITY, PRICE, DATE, DUPLICATE.
  • Return 400 {"code":"BAD_FILE"} when the header is wrong.
  • Catch duplicate references, both within the file and already in the database.
  • Stretch goal: explain in NOTES.md what an operator would see if the database fails halfway through a large file.

What you get

Scenarios
  • REST APIs
  • JPA reporting
  • Spring Security / JWT
  • Resilient integrations
  • Event processing
  • Batch imports
  • PostgreSQL + Testcontainers
Stack
Spring Boot 3 · Java 21 · Maven · JUnit 5
In the ZIP
README.md brief, RUBRIC.md, pom.xml, starter code with // TODO markers, and provided tests that fail until you finish.
Timebox
3–4 hours per brief, like the real thing.
Checked
Templates are vetted by a working Spring developer. Every reference solution passes mvn verify.

See a real example, no signup

HireCheck generated this from a real Tallinn securities-processing job posting (company name removed). It is exactly what you download: the brief, the rubric and a starter project that compiles, with tests that fail until you implement it. No reference solution included.

Take-home practice: Trade file import & validation report — securities trading edition (Spring Boot 3, Java 21)

Practice assignment generated by HireCheck — not a real employer's assignment. Timebox: 3 hours. Target level: mid.

Context

Operations uploads daily trade files. Valid trades must be stored and every bad row explained so ops can fix it. You are joining a securities trading team; treat data correctness and clear error reporting as production concerns.

Requirements

POST /api/imports/trades (multipart file) → {imported, rejected:[{line, reason}]}.

CSV header reference,isin,side,quantity,price,tradeDate (else 400 {"code":"BAD_FILE"}). Line numbers are 1-based incl. header. Files may use LF or CRLF line endings.

Reasons: COLUMNS (≠6), ISIN (2 letters + 9 alnum + 1 digit), SIDE (BUY|SELL), QUANTITY (>0), PRICE (>0), DATE (ISO, not future), DUPLICATE (reference already in file or DB). Valid rows saved with all their fields.

Stretch goals (optional)
  • Mention how you would apply this with batch.

Where to work

Look for // TODO in TradeImportService.importCsv. You may refactor anything, but keep the HTTP contract.

Run

mvn verify — the provided tests must pass. Your own tests are part of the grade.

Deliver

A git repo + NOTES.md: decisions, trade-offs, what you'd do with more time.

Show the grading rubric

Grading rubric — Trade file import & validation report (100 pts)

Reviewer emphasis for this mid securities trading role: correctness first, then java, spring boot, batch.

AreaPts
Correctness (provided tests)30
Validation completeness & clear reasons15
Streaming / memory for large files15
Own tests (huge file, encoding, quotes)15
Transaction strategy (all-or-nothing vs partial) justified10
NOTES.md: Spring Batch, ISIN checksum, idempotent re-upload15

Levels: junior ≥60, mid ≥75, senior ≥85 and a strong NOTES.md.

Pricing

Start with one free assignment. Upgrade if you want to keep practising.

Free

€0

1 full practice assignment.

Start free

Pro

€9/month

  • Unlimited assignments (fair use)
  • All templates, each with its rubric
  • AI feedback on your solution when it launches

Cancel anytime · 14-day refund. VAT included where applicable.

Get Pro

Who's behind this

Built by a Tallinn-based backend developer who works with Spring Boot every day and made this during his own job search.

Every template is written and tested by hand: the reference solution passes mvn verify before an assignment ever reaches you.

Cancel anytime
One click in the Stripe customer portal. You keep Pro until the end of the month you paid for.
14-day refund
Not useful for you? Email us within 14 days of your first payment for a full refund.
Your job posting isn't stored
The text you paste is used only during generation and deleted right after. It never goes into our database. It is sent to our AI provider to create the assignment. Privacy policy

Honest note

Practice only. Don't use HireCheck to do a real employer's assignment. Practise beforehand, so you can ace it yourself.

FAQ

Is this a screening tool for employers?
No. HireCheck is for candidates who want to practise take-home assignments. It is not an employer screening or background-check tool.
What's the difference between the sample and my free assignment?
The sample is one fixed assignment anyone can download without an account. Your free assignment is generated from the job posting you paste, and needs an account.
Other languages?
Spring Boot first. Node/TypeScript and Python are next.
Do you store my job ad?
No. It's deleted right after generation; we keep only the generated assignment so you can re-download it. See Privacy.
Who's behind this?
A full-stack Java developer from Estonia who got tired of guessing what take-homes look like.

Got a job ad open in another tab? Paste it in.

Generate a free assignment

No card needed.