DriveReady

03 — Round Strategy

60 minutes. 3 questions. One backend (Java), one SQL (MySQL), one frontend (HTML/CSS/JS). Platform: Mercer Mettl, inside Secure Exam Browser 1.6.8.


1. The 60 seconds before you start

# Action Why
1 Open the question dropdown and read all three titles The parts are selectable (1. Backend, 2. Database, 3. frontend). You choose the order.
2 Set the language selector on the backend question to Java It is per question, inside the question.
3 On the backend question, delete the placeholder throw line immediately Highest-ROI action in the exam. §4 below.
4 On the SQL question, click View Schema Bottom of the query window, right-hand side. Never guess a column name.

2. Attempt order — frontend, SQL, backend

Not 1-2-3. Attempt in this order:

Order Part Budget Why here
1st Frontend 15 min Highest probability you have already solved this exact question. The Result pane renders your page live, so it is the only self-verifying question. Bank a near-certain mark first.
2nd SQL 15 min Bounded: read schema, pick 2–3 tables, write one query. Little risk of a time sink.
3rd Backend 25 min The only part that can swallow unbounded time. Give it the remainder.
— Buffer 5 min Re-read output shapes, re-run, submit.

The reasoning

Scoring is per test case (research/02 §1), and two first-hand candidates cleared on opposite single questions. So this is a total-score exam, not a "finish 2 of 3" exam. That means: take certain marks first, and never let one question consume another's time.

The frontend question is the only one where you can see it working before submitting. Start where the feedback is.


3. Time budget with checkpoints

Clock You should be If you are not
0:00 Read all 3, set Java, delete the throw —
0:02 Starting the frontend question —
0:15 Frontend renders correctly in the Result pane Stop. Bank what works, move on. A partial frontend edit still scores.
0:30 SQL query returns plausible rows Stop polishing. A query that runs and is nearly right scores test cases; one that errors scores none.
0:55 Backend compiles and passes the given example Submit whatever compiles. Non-compiling code scores zero on every case.
0:58 Re-check output column names / ids / return type —

The hard rule: at 0:55, a compiling partial beats an elegant incomplete.


4. The Java template trap — do this first, every time

The Mettl Java starter reportedly ships with:

throw new Exception("Waiting to be implemented");

Verified by compiling it (solutions/java/). It kills you two ways:

Left after your return — does not compile:

error: unreachable statement

Zero on every test case, including the ones your logic would have passed.

Left before your code — compiles, then throws at runtime. Every test fails, and it looks like a platform fault, so you debug the wrong thing.

Delete that line before you write anything else. Not later. First.


5. Per-part playbook

Frontend — 15 minutes

  1. Read the objectives as a checklist. They are numbered for a reason; each is graded.
  2. Scan the starter for an HTML comment marking the insertion point. The dropdown task has `` exactly where the missing element goes.
  3. Never change an existing id or class. Every observed task says so, and the JS depends on them. Ids like addToCartChips are case-sensitive and graded literally.
  4. Apply the initial state on load, not only on interaction. The search-filter task sets the input to "nana" and expects the list already filtered when the page renders — call your filter function once at the end of the script.
  5. Watch the Result pane. If it renders, you have the mark.

Typical size, per REV-002: 2 HTML changes, 1 CSS change, 3–4 lines of JS. If you are writing more than that, re-read the question.

SQL — 15 minutes

  1. Open View Schema first. Write down the 2–3 tables you need and the join columns.
  2. Count the tables you actually need. Never more than 3 in any observed task, against schemas showing 7 and 8. Most tables are decoys.
  3. Alias every output column exactly as the question prints it. "Number of Sports Registered" means that string, spaces and capitals included. This is the single highest-ROI topic in the library.
  4. Circle every boundary word before writing: strictly greater / at least / after / not. 7 of 10 observed tasks turn on one.
  5. Ask: can this join duplicate rows? If the filter is on a child table (transactions, sections), you need DISTINCT.
  6. Row filter → WHERE. Group filter → HAVING. Aggregates in WHERE is a hard error.
  7. "No NULLs" hint → INNER JOIN does it for free.

It is MySQL: YEAR(d) = 2024, backquote `day`, LIMIT not TOP.

Backend — 25 minutes

  1. Delete the throw.
  2. Read the return type. Return the value; do not print it. All observed tasks are function-only — no main, no Scanner.
  3. Write the brute force first. Inputs are small; O(n²) is fine. There is no observed task needing better.
  4. trim() before split("\\s+"). long when concatenating digits. getOrDefault on maps. LinkedHashMap when order matters.
  5. Run the given example — then run your own edge case. Hidden test cases exist; the printed example is not the grading set.

6. IDE facts worth knowing before you see them

Feature Detail
Question dropdown 1. Backend, 2. Database, 3. frontend — switch freely
Language selector Per question, top-right
View Schema SQL only, bottom of the query window, right side
Result / Console Frontend renders live; backend shows test output
Revisit Later Per-question bookmark — park a partial and come back
Secure Exam Browser Closes other apps; counts navigation away from the test window and may warn or terminate. Do not alt-tab.

7. What not to do

Don't Because
Write main + Scanner for the backend question Function-only. Pure wasted minutes.
Optimise the backend solution Inputs are small. Spend the time on boundaries instead.
Rename an id or class in the frontend The provided JS breaks and the grader looks for them.
Join all 7 tables because they are shown Never more than 3 are needed.
Use NOT IN on a nullable column One NULL makes it return nothing. NOT EXISTS or LEFT JOIN ... IS NULL.
Leave a question empty because it is unfinished Partial test cases score. Submit anything that runs.
Alt-tab to check documentation The secure browser counts it.
Learn React for this Zero of 9 observed frontend tasks use a framework.

8. If you only remember five things

  1. Delete the throw. First action on the backend question.
  2. Frontend first — you have probably already solved it, and you can see it work.
  3. Alias output columns exactly as printed.
  4. Circle the boundary words. > is not >=; "after 10 AM" excludes 10:00.
  5. At 0:55, submit whatever compiles. Per-test-case scoring rewards partials; a compile error scores zero.