Alcor · Software Engineer
Updated · 2026-10-02

Alcor Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Candidates describe Alcor as a consulting-style employer that designs, builds and maintains enterprise solutions on the ServiceNow platform for clients. The work named in the reports spans HR service delivery (HRSD), IT operations management (ITOM) and general software development on the platform. In this role you turn business requirements into working configuration and custom scripts, test them, and hand them over in a form other developers and the client can maintain.

This guide is for engineers preparing for the Alcor Software Engineer loop, particularly those with ServiceNow experience in HRSD or ITOM. It covers the four reported rounds, the twelve questions candidates report (platform scripting, update sets, debugging, integrations, design trade-offs and behavioral prompts), and a plan for rehearsing them. It does not cover other Alcor roles.

Candidates report four rounds over roughly three to five weeks: Initial Screening, Technical Assessments, Engagement with Senior Team and Final Leadership Interviews. These stages are candidate-described, not a published process.

ServiceNow DevelopmentITOM (IT Operations Management)HRSD (Human Resources Service Delivery)

35 min read

Browse Software Engineer questions

See the practice prompts

17Practice promptsAcross five skill areas

The role, as candidates and the listed requirements describe it, is platform engineering for clients. You clarify scope with functional consultants and project managers, configure the ServiceNow platform, write custom scripts, unit test your own work, and take part in peer reviews and technical design sessions. You are also expected to add to the team's shared knowledge of best practice. The listed must-haves are JavaScript, ServiceNow experience in HRSD or ITOM, and a working grasp of the software development lifecycle. Certifications, REST or SOAP integration experience and earlier client-facing work are listed as extras.

The reported questions follow that shape. Several are platform-knowledge questions: how Business Rules differ from Client Scripts, why Update Sets matter when several developers share an instance, what to weigh when designing a custom application. Others are working-method questions: debugging a script that slows the system, tuning work on large ITOM datasets, integrating an external API, keeping code maintainable through platform upgrades. The remainder are behavioral: ambiguous requirements, explaining a technical issue to a non-technical stakeholder, prioritizing competing tickets, and disagreeing with a colleague's technical decision.

Candidates' tips add two themes. First, favor out-of-the-box features before custom development, and be able to justify any customization. Second, explain your reasoning aloud, because the path to an answer matters as much as the answer. The evaluation areas candidates list are platform development (scripting standards, Business Rules, Script Includes, UI Policies, Workflows, REST and SOAP integration) and system architecture (maintainability, performance tuning, ACLs, upgrade-safe structure, handoff documentation).

For preparation, this means depth on a narrow stack rather than breadth across computer science. The reports list no algorithm puzzles, so spend most of your time on platform mechanics and on rehearsing decisions with trade-offs: why a server-side rule instead of a client script, why configuration instead of code, why a scheduled batch instead of an inline query. Then build a bank of first-person stories from real projects, since the later rounds are described as senior-team scenarios and leadership conversations.

01

Initial Screening

reported

Candidates describe the Initial Screening as the opener, where the conversation is about your background and your interest in the role. The requirements list JavaScript, ServiceNow work in HRSD or ITOM, and SDLC knowledge, so expect your history to be read against them. Approach it as a short, structured account of what you built, on which modules, and why this role appeals to you.

What to demonstrate

  • Your background and how it lines up with the listed requirements
  • Your interest in the position
  • Which ServiceNow modules (HRSD or ITOM) you have worked in

How to prepare

  • Write a two-minute career walk-through that names the ServiceNow modules you used, the scripts or integrations you built, and your own part in each.
  • Prepare one specific reason for wanting a client-facing platform role, and a short list of questions about how projects are staffed and reviewed.
  • Confirm in writing what the later rounds will look like, so you can prepare for the format.
Alcor Software Engineer candidate reports ↗
02

Technical Assessments

reported

Technical Assessments are described as a hands-on check of development skills through practical application. The reported platform and working-method questions are the natural material for this stage: how server-side and client-side logic differ, how to manage Update Sets with several developers, how to find the cause of a slow script. Approach it by practicing with real code and configuration, not by reciting definitions.

What to demonstrate

  • Hands-on development skill applied to practical problems
  • Working JavaScript and use of platform components
  • How clearly you explain choices while you work

How to prepare

  • Write small server-side and client-side scripts from memory, and state for each where it runs and what event triggers it.
  • Rehearse a repeatable debugging sequence for slow scripts: reproduce, measure, isolate, change one thing, re-measure.
  • Be ready to describe an Update Set workflow for a shared instance, including how you spot and resolve collisions before moving changes between instances.
Alcor Software Engineer candidate reports ↗
03

Engagement with Senior Team

reported

Engagement with Senior Team is described as working through real-world scenarios with senior colleagues. Scenario prompts candidates quote elsewhere include migrating a legacy process to a new module and finding why a dashboard loads slowly. Approach this stage by thinking aloud: state assumptions, name the options, pick one and say what it costs.

What to demonstrate

  • How you handle realistic project scenarios
  • How you reason about design and trade-offs in front of senior people
  • How you communicate when the requirement is not fully defined

How to prepare

  • Practice scenario answers in a fixed order: clarify the goal, list constraints, name two options, choose, then say how you would verify the result.
  • Prepare a design checklist for a custom application: data model, access control, upgrade impact, performance, and who maintains it afterwards.
  • Have a story ready about turning a vague requirement into something buildable.
Alcor Software Engineer candidate reports ↗
04

Final Leadership Interviews

reported

Final Leadership Interviews close the loop and are described as focused on leadership and fit. Because the role is client-facing and the requirements stress communication and working under deadlines, this is the stage for your behavioral stories. Approach it with a short, honest set of examples in which you made the decisions.

What to demonstrate

  • Leadership and fit with the team
  • How you describe your own decisions and results
  • Communication with non-technical people

How to prepare

  • Choose three stories from your bank: one on ambiguity, one on disagreement, one on explaining a technical issue to a non-technical stakeholder.
  • Prepare an honest account of the out-of-the-box versus custom decision, with a real project where you made the call.
  • Write down questions for the leaders you meet, for example how the team handles platform governance and review.
Alcor Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Defining Business Rules and Client Scripts by name only, with no sense of where each runs or when it fires.

State that Business Rules run on the server around database operations (before, after, async, display) and Client Scripts run in the browser (onLoad, onChange, onSubmit, onCellEdit). Add that browser-side checks can be bypassed, so rules that must hold belong on the server.

02

Answering the custom-versus-out-of-the-box question with an absolute: always customize, or never customize.

Candidates' tips say to favor out-of-the-box features first. Give a decision test instead: does configuration meet the requirement, what does customizing cost at upgrade time, and who maintains it. Back it with a project where you applied that test.

03

Debugging a slow script by guessing at the cause and changing several things at once.

Reproduce it, measure where the time goes, isolate one suspect such as a query inside a loop, change one thing, and measure again. Say aloud what each step would rule out.

04

Walking through an API integration that covers only the successful call.

Cover authentication and where credentials are stored, field mapping, error handling, retries that cannot double-apply a change, limits on the other side's capacity, logging, and a way to test outside production. Say whether you would use REST or SOAP and why.

05

Telling project stories in the plural, so your own contribution cannot be identified.

Tell each story in first person singular: what you decided, what you wrote, what you measured. Be ready to go into detail on every project listed on your resume.

Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.

12 technical prompts0 include a worked solution

Diff a projection against the primary without per-row point reads

hard
reconciliationrange hashingthrottling

The listing projection has drifted and some rows show a stale version. The primary holds 40,000,000 resource rows across 12,000 tenants while serving 1,200 writes and 14,000 reads per second. The obvious repair, reading each resource row and comparing its version against the projection, is correct and would eventually finish. Explain precisely why it is unacceptable here, then give a diff that finds the differing rows, state its complexity, and make it safe to run against a live primary. Replication lag is usually under 100 ms and is not bounded.

Approach
  1. Quantify the naive cost rather than calling it slow: 40,000,000 point reads at even 0.5 ms each is over five hours serialised, and the only lever is concurrency, which is exactly what you cannot spend. The primary's pool is sized for the write path, and 40,000,000 random reads evict the buffer cache that sustains the 85 percent cache hit rate, so the audit degrades the system it is auditing.
  2. Replace random access with one ordered pass per side. Both sides can be read in (tenant_id, resource_id) order, which is a sequential scan on each and a merge join in O(n) time and O(1) memory. For a dense diff that is the whole answer, and it reads the primary once instead of 40,000,000 times.
  3. For the expected sparse case, compare range hashes instead of rows: partition the key space, compute per range an order-independent aggregate over hash(resource_id, version), compare aggregates, and descend only into ranges that differ. With d differing rows and branching factor B, at most d ranges mismatch per level, so the drill-down examines O(d log_B(n/d)) ranges and reads full rows only in mismatching leaves.
  4. Aggregate with a sum modulo 2^64 or a multiset hash, never XOR. XOR is order-independent but self-cancelling, so two rows wrong in the same way, or a row duplicated on one side, leave the range aggregate matching and the range is declared clean.
Follow-up
  • The diff reports 900 stale rows. How do you decide between patching those rows and rebuilding the projection from resource_revision?
  • Same job, but the projection lives in a search index that cannot be scanned in key order. What changes?

Archive a resource graph without breaking live references or recursing

medium
graph traversaltopological ordertenant isolation

Resources reference other resources within a tenant; for the largest tenant the reference table holds up to 2,000,000 nodes and 8,000,000 edges. Archiving a resource must archive everything reachable from it that nothing outside the set still references, refuse when a live external referrer exists, and terminate when references form cycles, which they legitimately do. Produce the archive order and the refusal list, targeting O(V+E). Say what stops the traversal crossing a tenant boundary, and why recursion is the wrong control structure at this size.

Approach
  1. Load the subgraph with the tenant predicate on both endpoints of the edge, not only on the side you started from. Scoping the left table alone is the classic cross-tenant leak: one mis-entered edge then pulls another tenant's resources into the traversal and, worse, into the archive.
  2. Traverse iteratively with an explicit stack. A 2,000,000-node graph can hold a chain deep enough to exhaust a native stack in the low tens of thousands of frames, and that failure is a process crash rather than an error you can return.
  3. Treat cycles as data rather than corruption: compute strongly connected components with Tarjan in O(V+E) using its own explicit stack, then condense. The condensation is a DAG, so a topological order over it gives the archive order, and every member of a component archives in one transaction because no order within a cycle is valid.
  4. Decide refusals with reverse edges. A candidate is archivable only if every in-edge originates inside the candidate set, so build the transpose or count in-degrees restricted to the visited set, and emit each blocked resource with the id of the external referrer, which is the only part of the answer an operator can act on.
Follow-up
  • The graph is read in one query and the archive writes a minute later. What can change in between, and how do you make the write safe?
  • The candidate set is 400,000 resources. Is that one transaction, and if not, what does a half-finished archive look like to a reader?

Find overlapping job attempts and peak concurrency from lease records

medium
sweep lineintervalsleases

A day of job_run history yields about 50,000,000 attempt records: (job_run_id, job_type, attempt, started_at, finished_at which is NULL when the worker died, lease_expires_at). Leases expire on a clock, so a job that outran its lease ran twice. Produce (a) every job_run_id whose attempts overlapped in wall-clock time and (b) the peak number of simultaneously running attempts per job_type with the minute it occurred. Target O(n log n). State how you treat a NULL finished_at and what clock skew does to your answer.

Approach
  1. Define the interval before sorting anything: an attempt occupies [started_at, COALESCE(finished_at, lease_expires_at)). finished_at is observed and lease_expires_at is only a promise, so every attempt without a finish contributes an estimate and the whole result is a lower bound on overlap rather than an exact count.
  2. For peak concurrency, sweep: emit 2n endpoints, sort by (timestamp, kind) with ends ordered before starts at equal timestamps, then walk the sequence maintaining a counter per job_type and record each type's maximum with its timestamp. O(n log n) dominated by the sort, O(n) space, or O(1) extra if the sort is external and the walk streams.
  3. For overlap detection, do not compare attempts pairwise. A single global sort by (job_run_id, started_at) gives both the grouping and the order; within a group, keep the maximum end seen so far and report an overlap exactly when the next start is less than that running maximum, which is one linear pass after the sort.
  4. Half-open intervals matter and are easy to get wrong: with closed intervals an attempt ending at the same millisecond another begins reads as concurrency two, and across 50,000,000 records that artefact swamps the real signal.
Follow-up
  • A handler is not idempotent and you have found 400 overlapping jobs. Which of them actually caused damage, and what would you query to find out?
  • Peak concurrency for one job_type is 4 against a configured cap of 4. Is the cap working, or is the data hiding attempts that never started?

The plan starts with your own platform experience, then covers the reported platform, debugging, integration and design questions, then the behavioral prompts, and ends with a full run-through of all four rounds.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Map the four rounds and inventory your platform work
  • Write the reported sequence (Initial Screening, Technical Assessments, Engagement with Senior Team, Final Leadership Interviews) and mark the stage you feel least ready for.
  • List every ServiceNow project you could discuss, noting the module (HRSD or ITOM), the scripts and integrations you built, and what you personally did.
  • Mark each listed requirement (JavaScript, HRSD or ITOM experience, SDLC, REST or SOAP) as strong, adequate or weak.

Deliverable: A one-page loop map and a project inventory with your own contribution and the weakest requirement marked.

02Platform scripting and change management
  • Write a server-side-versus-client-side comparison covering where each runs, what triggers it and what it should never be trusted to enforce, then answer the Business Rules versus Client Scripts question aloud.
  • Write an Update Set workflow for several developers: naming, one set per feature, collision checks, preview before commit, and the order of moves between instances. Then answer the Update Sets question aloud.
  • Write one Business Rule and one Client Script from memory for a simple requirement.

Deliverable: A comparison table, a written Update Set workflow, two working scripts and two spoken answers.

Practice prompt ↗Practice prompt ↗
03Debugging latency and tuning large datasets
  • Write your debugging sequence for a slow script as numbered steps, each with what it rules out, and answer the latency question aloud.
  • Prepare a real performance story for the ITOM large-dataset question with a baseline figure, the levers you tried, the result and the trade-offs.
  • From PracHub's practice library, work the SQL exercise on joins that fan out a page, to practice reasoning about query shape on large tables.

Deliverable: A numbered debugging runbook, a written performance story with before and after figures, and one worked query exercise.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Design, integration and maintainability
  • Write an integration outline for an external API: authentication, mapping, error handling, retries, logging and testing. Then answer the integration question aloud.
  • Write a checklist for designing a custom application (data model, access control, upgrade impact, performance, ownership) and answer the design-considerations question aloud.
  • Write your decision test for custom development versus out-of-the-box features, with one real example, and list the habits that keep code maintainable through upgrades.

Deliverable: An integration outline, a design checklist, a decision test with an example and three spoken answers.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Behavioral stories: ambiguity, explaining, disagreeing
  • Write a story for the ambiguous-requirement question: what you asked, what you wrote down, the smallest slice you built and what happened.
  • Write a story for explaining a technical issue to a non-technical stakeholder, leading with impact and the decision needed.
  • Write a story for disagreeing with a colleague's technical decision, including how you reached evidence and the honest outcome.

Deliverable: Three first-person stories, each with the decision, the measurement or evidence and what you would do differently.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Scenarios and prioritization
  • Answer the migration scenario aloud: how you would map data and convert scripts when moving a legacy process to a new module.
  • Answer the slow-dashboard scenario aloud, using your debugging runbook, and the upgrade-safe structure question by naming concrete habits.
  • Prepare the prioritization answer with a real example: ranking criteria, who you told, what slipped and how you protected testing and review.

Deliverable: Two recorded scenario answers and a written prioritization story with its ranking method.

Practice prompt ↗
07Full run-through of the loop
  • Give a two-minute career walk-through, then answer the latency, custom-versus-out-of-the-box and integration questions back to back, aloud and recorded.
  • Deliver the stakeholder-explanation story and the disagreement story, then listen back and cut anything vague, any plural pronoun that hides your role, and any claim without a number.
  • Prepare your questions for senior people and leaders, including project challenges and platform governance.

Deliverable: A recorded full run-through, a trimmed set of stories and a list of closing questions.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗

Expand any day for tasks and deliverables. Your progress is saved on this device.

The reported behavioral questions come from a client-facing role: handling vague requirements, explaining technical issues to non-technical people, prioritizing competing tickets and disagreeing with a colleague. Candidates' tips recommend the STAR method (Situation, Task, Action, Result) and detailed knowledge of your own resume. Prepare stories in first person singular, with a decision you made and a result you can state.

How do you handle performance optimization when working with large datasets in ITOM?

medium
Technical & Domain Expertise

How do you handle performance optimization when working with large datasets in ITOM?

Approach
  1. Answer with a real case, not a list of tips. Name the table or job involved, its approximate row count, and the baseline symptom (a slow report, a long scheduled job, a timeout) before describing any change.
  2. Say how you found the cost: timing the script, checking which query dominated, and spotting queries run once per record inside a loop. A story that starts with measurement is more believable than one that starts with a fix.
  3. Walk through the levers in the order you tried them: filter on indexed fields and fetch only the columns and records you need, aggregate in the database rather than looping through records in script, move heavy work into batched or scheduled processing, and archive data nobody reads.
  4. State the trade-offs. An index speeds reads and slows writes. Batching lowers load but makes results less fresh. Archiving needs agreement from whoever uses the old data.
  5. Close with proof: the before and after figures, and the check that the output was unchanged. The usual failing is claiming an improvement with no number.
Follow-up
  • How did you show the improvement came from your change and not from lower load that day?
  • What would you do if the table kept growing and the fix stopped working?
  • How did you find the slow query in the first place?

Describe a time you had to design a solution for a vague or ambiguous requirement.

medium
Problem-Solving & Architecture

Describe a time you had to design a solution for a vague or ambiguous requirement.

Approach
  1. Pick a case where the requirement arrived as a one-line ask and you made the first move. Give the situation in two sentences, then spend the time on how you made it concrete.
  2. Show the questions you asked and who you asked: the person who would use the feature, the functional consultant or project manager, and whoever owned existing processes. Include whether something out-of-the-box already covered part of it.
  3. Show that you wrote things down: a short list of assumptions, acceptance criteria, and what was out of scope, confirmed by the requester before you built much.
  4. Describe building the smallest useful slice first and getting it in front of the user, so a wrong assumption cost days instead of weeks.
  5. Avoid two failing stories: waiting for clarity that never comes, and building everything first and discovering the misunderstanding at the demo.
Follow-up
  • What did you do when the stakeholder could not answer your questions?
  • Which assumption turned out to be wrong, and how did you find out?
  • How did you record the decision so the next developer could understand it?

Tell me about a time you had to explain a complex technical issue to a non-technical stakeholder.

medium
Behavioral & Professionalism

Tell me about a time you had to explain a complex technical issue to a non-technical stakeholder.

Approach
  1. Choose an issue with a business consequence, such as a missed delivery, a failed release or a platform limitation that blocked a request. State it in two sentences and name the stakeholder and what they needed to decide.
  2. Show the translation. Lead with impact and the decision required, then explain the cause in plain terms or with one comparison, and leave out internal names and mechanisms they do not need.
  3. Offer options with cost, time and risk in their terms, with your recommendation and reason, instead of a technical tour.
  4. Show you checked understanding by asking them to restate it, then confirmed the decision in writing.
  5. The failing here is a story where the stakeholder was simply confused, or where you simplified so far that the real risk disappeared.
Follow-up
  • How did you know they had understood?
  • What did you leave out on purpose, and why?
  • What did you do when they pushed for the option you advised against?

How do you prioritize tasks when working on multiple high-priority development tickets simultaneously?

medium
Behavioral & Professionalism

How do you prioritize tasks when working on multiple high-priority development tickets simultaneously?

Approach
  1. Give a concrete method, not a slogan. For each ticket, list who is blocked, what happens if it slips, the effort, and any dependency, then rank by impact and urgency instead of by who asked most loudly.
  2. Show that you make the trade-off visible. Take the ranking and what would slip to the project manager or ticket owners and ask which of the high-priority items is truly first. Do not choose silently.
  3. Use an example with outcomes: which ticket shipped first, which waited, how you told the people affected, and what happened.
  4. Say how you protect quality while busy. Unit testing and peer review stay in, and a large ticket can be split into smaller parts that ship separately.
  5. The weak answers are 'I work longer hours' and 'I do them in parallel', since both hide the cost of switching between tasks.
Follow-up
  • What do you do when two stakeholders each insist their ticket is first?
  • How do you handle a new urgent ticket that arrives while you are mid-task?
  • How did you tell the person whose ticket you deferred?

Describe a situation where you disagreed with a technical decision made by a team member. How did you resolve

medium
Behavioral & Professionalism

Describe a situation where you disagreed with a technical decision made by a team member. How did you resolve it?

Approach
  1. Choose a disagreement about substance, such as custom script versus configuration, how to structure a migration, or how to manage changes between instances, where both sides had a reasonable case.
  2. Start by restating the other person's position and what they were trying to protect. This shows you understood the disagreement before arguing it.
  3. Describe how you moved toward evidence: a small prototype, a measurement, a check of the platform's documented behavior, or an assessment of upgrade impact. Agreeing on the criteria first often settles most of it.
  4. Report the outcome honestly: you persuaded them, you were persuaded, you compromised, or a decision-maker chose and you committed fully. Mention the working relationship afterwards.
  5. The failing story is one where you were right and the other person was obstinate. Another is a story that never names the technical issue.
Follow-up
  • What did you do when the decision went against you?
  • How do you raise a disagreement in a peer review versus a design session?
  • Did the discussion ever change your own mind?
  • 01

    Describe a time you had to design a solution for a vague or ambiguous requirement.

  • 02

    Tell me about a time you had to explain a complex technical issue to a non-technical stakeholder.

  • 03

    How do you prioritize tasks when working on multiple high-priority development tickets simultaneously?

  • 04

    Describe a situation where you disagreed with a technical decision made by a team member. How did you resolve it?

  • 05

    How do you handle performance optimization when working with large datasets in ITOM?

  • 06

    Pick a project on your resume and explain your individual contribution and the hardest technical challenge you overcame.

PracHub preparation framework ↗
How should I spread my preparation across the loop?

Candidates report four rounds over roughly three to five weeks, so you have time between stages. Spend the first stretch on platform mechanics (scripting, Update Sets, integrations, debugging), since those underpin the technical stage. Build your behavioral stories next, for the senior-team and leadership conversations. Rehearse aloud, because candidates' tips say your reasoning matters as much as the final answer.

Alcor Software Engineer candidate reports ↗
What topics do Alcor interviews cover?

Reports list ServiceNow development, ITOM, HRSD, platform customization and general software engineering. Platform areas include JavaScript scripting standards, Business Rules, Script Includes, UI Policies, Workflows and REST or SOAP integration. Architecture areas include maintainability, performance tuning, ACLs and upgrade-safe structure. The exact emphasis depends on the specialization you apply for.

Alcor Software Engineer candidate reports ↗
Do I need both HRSD and ITOM experience?

The listed requirements ask for ServiceNow experience in HRSD or ITOM, so one is enough on paper. Prepare your stronger module in depth, with projects and decisions you can describe in detail. For the other, learn what it is for and how its data and workflows differ, so a mixed-topic question does not stop you.

PracHub Software Engineer practice ↗
Should I practice algorithm problems?

The reported questions are about platform knowledge, debugging, integration, design trade-offs and behavior, and none is an algorithm puzzle. Put most of your time there. If you want to keep your general coding fluency, use a small amount of time on PracHub's coding drills, but do not let them displace platform preparation.

PracHub Software Engineer practice ↗
How do I answer the custom versus out-of-the-box question?

Candidates' tips say to favor out-of-the-box features first and avoid over-customization. Give a decision test: whether configuration meets the requirement, what customizing costs at upgrade time, and who maintains it. Then give a project where you chose configuration over code, or where you customized and could justify it.

PracHub Software Engineer practice ↗
What should I ask at the end of an interview?

Candidates' tips suggest asking about the team's current project challenges and its approach to platform governance. Add questions on how peer review and technical design sessions work, and how knowledge is shared between developers, since the role description mentions both.

PracHub Software Engineer practice ↗
Sources & methodology 3 sources ↗

No official company page is cited. Rounds and questions come from candidate reports and PracHub editorial material; each source shows the date it was read.