Ascension · Software Engineer
Updated · 2026-10-02

Ascension Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Ascension is a nonprofit Catholic health system. Candidates describe the Software Engineer role as building and maintaining cloud-native software for its clinical, administrative and marketing digital experiences. The reported technical landscape includes Google Cloud Platform, Microsoft Azure, Oracle Cloud Infrastructure and Salesforce Data Cloud, with Spring Boot named for backend work. The problems candidates mention are data harmonization, pipeline performance and secure identity management, under HIPAA, SOC2 and GDPR constraints. Teams are described as Lean-Agile, with a rotational support model.

This guide is for engineers preparing for a Software Engineer loop at Ascension, whether the team leans toward cloud architecture, data and marketing platforms, or a regional engineering group. It covers the five reported rounds, the fifteen reported questions (microservices, data ingestion, compliance, multi-cloud design, identity federation, delivery practice, mentoring and on-call), and a seven-day plan. Candidates also report that formats vary by team, so confirm the shape of your own loop with the recruiter.

Candidates report five rounds over roughly 4-6 weeks: Recruiter Screening, Hiring Manager Interview, Core Assessment Phase, Technical Rounds and a Behavioral Interview. The mix runs from resume discussion through panel conversations to design and scenario discussion.

Salesforce Data CloudMarketing CloudHIPAA compliance

38 min read

Browse Software Engineer questions

See the practice prompts

20Practice promptsAcross five skill areas

The reported work is cloud-native application engineering in a regulated setting. Candidates mention services built with Spring Boot, workloads placed across Google Cloud Platform, Azure and Oracle Cloud Infrastructure, large datasets moved between systems, and identity handled with SAML 2.0 and OAuth 2.0. Most reported questions are open discussions about how you design, secure and run such systems, so the best preparation is to speak your answers aloud until each one has a clear structure, a trade-off and a concrete example from your own work.

Prepare the stack as a set of decisions you can defend. For Spring Boot and microservices, know service boundaries, configuration, health checks, and what you test at unit and integration level. For multi-cloud, be ready to compare platforms on identity integration, data residency, managed services you would rely on, and cost. For infrastructure as code, which candidates list with Terraform, practise explaining how a repeatable deployment and a least-privilege access policy are written and reviewed. Candidates also list Salesforce Data Cloud and Marketing Cloud among tested topics, so if your target team is a marketing or data platform team, add profile unification, segmentation and consent flows to your list.

Compliance is the thread that runs through the reported questions. HIPAA, SOC2 and GDPR, consent management and patient data privacy show up in the ingestion, identity-resolution and architecture questions alike. Do not keep a separate compliance answer. Build one checklist (data classification, encryption in transit and at rest, least-privilege roles, audit logging, retention and deletion, consent checks) and apply it inside every design you describe. For identity resolution, be ready to talk about matching rules, false merges and how a consent flag travels with a merged record.

The behavioral side is as concrete as the technical side: stabilizing an at-risk project, keeping quality high in a fast cycle, and mentoring less experienced engineers. Candidates are advised to use STAR with the trade-offs and measurable outcome stated. PracHub's practice library also has coding and SQL drills on idempotent requests, merging event streams and safe concurrent updates. They are not Ascension questions, but they exercise the same ingestion and data-handling ideas.

01

Recruiter Screening

reported

Candidates describe this first stage as a screen to verify your background and your interest in the mission. Reports add that it is also where background, compensation expectations and the general scope of the role are discussed. It is a conversation rather than a technical test, so the work is to make your story short, specific and aimed at this role.

What to demonstrate

  • Whether your background matches the cloud, backend or data work in the role
  • Clear communication of what you have built and your interest in a healthcare organization
  • Practical fit: location, expectations and scope

How to prepare

  • Write a short career narrative that names Spring Boot or backend services, the cloud platforms you have used, and one compliance-sensitive system you worked on.
  • Decide why a healthcare mission interests you, in terms of a concrete kind of software you want to build, not a slogan.
  • Prepare your compensation expectations and ask the recruiter which teams the loop covers and what format each later round takes.
Ascension Software Engineer candidate reports ↗
02

Hiring Manager Interview

reported

Candidates report an in-depth discussion of your resume and the experience relevant to the job, with the hiring manager. Expect to walk through projects you owned and be asked to explain decisions in detail. Questions about delivery practice, mentoring or on-call balance are the kind this conversation can cover.

What to demonstrate

  • Depth of ownership in the projects on your resume
  • Relevance of your experience to the team's cloud and data work
  • Ability to explain technical decisions and their outcomes plainly

How to prepare

  • Pick two projects and write for each the problem, your specific contribution, the architecture trade-off you made and a result you can measure.
  • Rehearse the answers on Spring Boot and microservices experience, testing in a fast delivery cycle, and balancing delivery with rotational on-call support.
  • List questions for the manager about the team's platforms, how Lean-Agile planning works there, and how on-call rotates.
Ascension Software Engineer candidate reports ↗
03

Core Assessment Phase

reported

This stage is described as a series of panel interviews with peers, technical leads and stakeholders. The audience mixes engineers and non-engineers, so you need two registers: precise technical detail for peers and plain business language for stakeholders. The reported questions on identity federation, cross-cloud architecture and explaining architecture to non-technical audiences fit this kind of panel.

What to demonstrate

  • Technical depth in front of peers and technical leads
  • Ability to adjust the explanation for stakeholders outside engineering
  • Collaboration style across functions

How to prepare

  • Draw the SAML 2.0 and OAuth 2.0 flows from memory, naming each hop, then list what you check when a login or token exchange fails (clock skew, audience, redirect URI, signing certificate, scopes).
  • Prepare a cross-cloud architecture walkthrough you can give at two levels: a diagram-level technical version and a version that names cost, risk and outcome only.
  • Prepare one story of explaining an architecture decision to a non-technical or executive audience, including what you cut and what changed as a result.
Ascension Software Engineer candidate reports ↗
04

Technical Rounds

reported

Candidates report practical discussions of system design, past projects and scenario-based problems. This is where the reported design questions on data ingestion, identity resolution, high-volume pipelines and cloud placement are practised. Treat each scenario as a design conversation: clarify requirements, sketch components, say where compliance and cost enter, then name the trade-offs.

What to demonstrate

  • Structured design thinking for data ingestion and integration problems
  • Awareness of security, privacy and cost as non-functional requirements
  • Troubleshooting a scenario from symptoms to cause

How to prepare

  • Design a healthcare data ingestion stream end to end: sources, an ingestion buffer, validation, harmonization, storage, consent and access checks, and replay when a step fails.
  • Prepare an identity-resolution design: deterministic keys first, fuzzy matching with a review queue, a merge record that can be undone, and a consent flag that survives merging.
  • Prepare a decision matrix for placing an application on one of the three cloud platforms, with identity integration, data residency, managed-service fit, operating cost and team skills as columns.
  • Practise the PracHub drills on idempotent requests and merging ordered event streams to make pipeline reasoning fluent.
Ascension Software Engineer candidate reports ↗
05

Behavioral Interview

reported

The last stage is reported as behavioral and values-based, with leadership. Expect experience questions about stabilizing a troubled project, mentoring, quality practices and delivering under compliance pressure, plus questions about why healthcare. Prepare stories that name your decision, your trade-off and a measurable result.

What to demonstrate

  • Leadership and mentoring examples from your own work
  • Judgment when delivery pressure meets security or compliance requirements
  • Reasons for wanting to work in a healthcare setting

How to prepare

  • Write three STAR stories, one each for rescuing a project, raising quality in a fast cycle and mentoring, and keep your own actions in first person.
  • Prepare a story where a security or privacy requirement changed a plan, and what you traded off to keep the date or move it.
  • Prepare a sincere, specific answer on why patient-data-sensitive software matters to you.
Ascension Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Naming one cloud platform's services and calling it a multi-cloud design

Frame cloud placement as criteria: identity integration, data residency, managed-service fit, cost and team skills. Walk a decision matrix and explain what would make you move a workload.

02

Adding HIPAA or GDPR at the end of a design as a single sentence

Build compliance into the components as you draw them: data classification, encryption in transit and at rest, least-privilege roles, audit logs, retention and deletion, and consent checks before data is used.

03

Mixing up SAML 2.0 and OAuth 2.0 when asked about federation

Know what each protocol does. SAML issues signed assertions for sign-on, OAuth 2.0 delegates authorization with tokens, and a sign-in layer on OAuth is needed for authentication. Practise a troubleshooting order: metadata and certificates, audience and redirect values, clock skew, scopes and claims.

04

Treating identity resolution as an exact-match join

Describe deterministic matching first, then fuzzy matching with a review queue, a merge you can reverse, and handling of false merges. State how consent travels with the merged record.

05

Telling behavioral stories in the plural with no decision and no result

Use first person singular, name the decision you owned, the trade-off and a measurable outcome. Keep the situation to two sentences and spend the rest on your reasoning.

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

17 technical prompts0 include a worked solution

Canonicalise a request body into a stable idempotency fingerprint

medium
parsingcanonicalisationhashing

idempotency_key.request_fingerprint is a SHA-256 over the method, path and canonicalised body, and a retry whose fingerprint differs must be rejected with 422 rather than served the stored response. Write the canonicaliser. Bodies are JSON up to 256 KB nested at most 32 levels; clients vary key order, whitespace and unicode escaping, and some send 64-bit ids as JSON numbers. Produce a deterministic byte string such that semantically identical bodies match and any semantic difference does not. State your complexity and name two normalisations you refuse to perform.

Approach
  1. Parse once into a tree, then re-serialise under fixed rules: object keys sorted, array order preserved, one escaping convention, no insignificant whitespace. Parsing is O(n) and sorting keys is O(k log k) per object, so O(n log n) overall with O(depth) stack, and the 32-level cap is enforced during parsing because hostile nesting is how a canonicaliser becomes a stack overflow.
  2. Sort keys by their UTF-8 bytes and say why the obvious implementation is wrong in some runtimes: a default string comparison that orders by UTF-16 code units places surrogate pairs, meaning code points from U+10000 up, below U+E000 to U+FFFF, which is not UTF-8 byte order, so two services written in different languages disagree on the same document.
  3. Do not re-encode numbers through a double. IEEE-754 binary64 represents integers exactly only up to 2^53, so normalising a 19-digit id through a float changes it, and 1 against 1.0 cannot be reconciled without deciding whether they are the same value. Preserve the literal token, and require ids as strings at the API boundary if you want them comparable.
  4. Reject duplicate keys rather than picking one. JSON permits them and parsers disagree, most keeping the last, so any choice you make ties the fingerprint to a parser detail that the code handling the request does not necessarily share.
Follow-up
  • A client sends the same logical request with an extra field your API ignores. Same key, different fingerprint, so you return 422. Is that the right answer?
  • Where does the fingerprint get computed relative to request decompression and the body-size limit?

Identify the heaviest tenants in a five-minute window under memory pressure

medium
top-kheavy hittersstreaming

The edge service handles about 3,000 requests per second across roughly 50,000 tenants, peaking near 9,000. Expose the 50 heaviest tenants by request count over the trailing five minutes so limits can be tightened before one tenant's backfill starves the fleet. You may not retain five minutes of raw records. Give the exact solution and its memory, then the bounded-memory approximation with its error stated as a formula, and say which you would ship and at what tenant cardinality that choice changes.

Approach
  1. Do the exact version first, because it is affordable at this cardinality: a ring of 300 one-second counters per tenant, advanced lazily, is 1,200 bytes of counters per tenant and roughly 60 to 90 MB for 50,000 tenants with overhead. Carry a running total and subtract the bucket you overwrite so a window read is O(1) rather than 300 adds.
  2. Extract the top 50 with a size-k min-heap over the tenant sums: O(d log k) for d tenants, against O(d log d) to sort them all. Maintaining the heap continuously instead of on query requires a tenant-to-heap-index map, because incrementing a count already inside the heap means sifting from a known position, and without that map you rebuild the heap on every request.
  3. State the approximation precisely rather than gesturing at sketches. Misra-Gries with m counters retains every item whose true count exceeds N/(m+1), and each retained count underestimates the truth by at most N/(m+1). With m = 1,000 and N = 900,000 requests in the window the error is roughly 900 requests, which is fine for spotting a tenant sending 50,000 and useless for ranking two tenants 200 apart.
  4. Say what breaks when the window slides: Misra-Gries and Space-Saving are insert-only and cannot be decremented as records age out. The workable construction is one summary per sub-window, say ten seconds, with 30 summaries merged at query time, and the merged error is the sum of the per-summary errors, so the bound degrades linearly in the number of sub-windows.
Follow-up
  • The heaviest tenant is heavy because of one export job rather than user traffic. Should the limiter treat those as the same tenant?
  • Two tenants sit tied at the boundary of the top 50. Does your answer flap, and does the flapping matter?

Merge partitioned event streams into one ordered feed with bounded lateness

hard
k-way mergewatermarksout-of-order streams

The read-model service consumes 64 log partitions carrying about 4,000 events per second in total. Each partition is ordered within itself, but partitions drift by up to 30 seconds, and the activity feed must present a tenant's events in occurred_at order. Produce the merge. State its complexity, the buffer it requires in events and in bytes, what happens when one partition is idle, and what you do with an event that arrives after you have already emitted its position. Payloads average 1 KB.

Approach
  1. Merge with a min-heap over the 64 partition heads keyed on (occurred_at, event_id): O(log P) per event and O(n log P) overall. The tie-break on event_id is what makes the output deterministic when two partitions carry the same millisecond, which matters because the feed is paginated and a non-deterministic order reorders pages under the reader.
  2. Emitting the heap head is only correct once every partition has produced everything up to that timestamp, so the emit condition is a watermark: the minimum across partitions of the highest occurred_at seen, less the allowed lateness. Events are held until the watermark passes them, which is what turns individually ordered streams into a jointly ordered one.
  3. Size the buffer from the lateness rather than guessing: 4,000 events per second times 30 seconds is 120,000 buffered events, and at 1 KB each about 120 MB of heap. That number is the real price of the ordering guarantee and belongs in front of whoever asked for it.
  4. Handle the idle partition explicitly, because it fails the feed rather than corrupting it: a partition with no traffic never advances its own maximum, so the watermark freezes and output stops entirely. Either every partition emits a periodic idle marker carrying the broker's current time, or the watermark falls back to wall clock for a partition silent beyond a threshold.
Follow-up
  • The lateness budget is raised to five minutes. What is the new buffer, and what besides memory changes?
  • The consumer restarts. Where does it resume from, and what does the feed look like for the first 30 seconds?

The plan follows the reported rounds: a loop and story inventory first, then the Spring Boot, identity, ingestion, data harmonization and cloud design questions, ending with behavioral stories. PracHub's practice drills are attached to the days where they exercise ingestion and data handling.

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 loop and inventory your material
  • Write the five reported rounds in order and note, for each, who you are talking to and which kind of answer it needs.
  • List the technologies the role names (Spring Boot, GCP, Azure, Oracle Cloud Infrastructure, Terraform, SAML, OAuth) and mark your real experience in each.
  • Pick two projects you could discuss in depth and outline problem, contribution, trade-off and result for each.

Deliverable: A one-page loop map, a technology experience matrix and two project outlines.

02Spring Boot, microservices and testing
  • Write and say aloud your answer on Spring Boot and microservices: service boundaries, configuration, health checks, deployment, one failure you debugged.
  • Write your testing layers (unit, integration, contract) and one trade-off story for fast delivery.
  • Outline how you take part in Lean-Agile planning: refinement, estimation, sprint review, handling scope changes.

Deliverable: Three rehearsed answers (Spring Boot and microservices, quality and testing, Lean-Agile participation) and one STAR story on a quality trade-off.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
03Identity federation and compliance
  • Draw SAML 2.0 and OAuth 2.0 flows from memory and write a failure checklist for each.
  • Write one compliance checklist (classification, encryption, least privilege, audit logging, retention, consent) and apply it to a sample patient-data service.
  • Explain in a few sentences how you would verify that checklist is met in a cloud-native application, including pipeline checks and access review.

Deliverable: Two flow diagrams with failure checklists, plus a one-page compliance checklist applied to a sample service.

Practice prompt ↗Practice prompt ↗
04Data ingestion and high-volume pipelines
  • Design an ingestion stream for healthcare data: sources, buffer, validation, harmonization, storage, replay and consent checks.
  • Write where you trade throughput against latency and cost: batch size, partitioning, back-pressure and retries.
  • Work the PracHub drills on idempotent request fingerprints and merging ordered event streams.

Deliverable: An ingestion architecture sketch, a throughput versus cost trade-off list, and two solved PracHub drills.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Data modeling and identity resolution
  • Outline a canonical data model for combining clinical and administrative records, with source-system identifiers kept.
  • Write a matching strategy: deterministic keys, fuzzy match, review queue, reversible merges and a consent flag.
  • Practise the PracHub drill on detecting a concurrent edit as a model for safe record updates.

Deliverable: A canonical model diagram, a matching strategy with false-merge handling, and one solved update drill.

Practice prompt ↗Practice prompt ↗
06Multi-cloud architecture and cost
  • Prepare a cross-cloud architecture walkthrough, and rehearse a version for technical peers and a version for stakeholders.
  • Build a decision matrix for application placement across Google Cloud Platform, Azure and Oracle Cloud Infrastructure.
  • List cost levers: right-sizing, scheduling, storage tiers, commitments, tagging for cost ownership, and what you would monitor.

Deliverable: A cross-cloud design walkthrough, a placement decision matrix and a cost-lever list.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Behavioral stories and collaboration
  • Write and say aloud STAR stories for stabilizing an at-risk project and for mentoring.
  • Prepare the story about explaining architecture to non-technical or executive stakeholders, and your approach to balancing delivery with on-call support.
  • Do a full spoken run-through of one story per round and refine the weakest.

Deliverable: Four STAR stories (rescue, mentoring, stakeholder translation, delivery versus on-call) in first-person, rehearsed aloud.

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 ask for stories about stabilizing a troubled project, keeping quality in a fast cycle, and mentoring engineers. Candidates are also advised to show how they communicate technical ideas to non-technical stakeholders and how they work in Lean-Agile teams. Build each story around a decision you made, the trade-off, and a measurable result.

Can you describe a time when you had to stabilize a complex or at-risk technical project and restore its momen

medium
Architecture and System Design

Can you describe a time when you had to stabilize a complex or at-risk technical project and restore its momentum?

Approach
  1. Choose a project that was really at risk (missed milestones, unstable releases, unclear ownership) and where you held the decision. Open with two sentences on the situation and the stakes, then spend most of the answer on what you did.
  2. Show diagnosis before action: separate causes into scope, quality, dependencies and people, say what evidence you used (defect counts, cycle time, blocked tickets), and name the one or two causes that mattered most.
  3. Describe the stabilizing moves in order: cut scope to the smallest releasable slice, agree a re-baselined plan with stakeholders, add a release gate or automated test for the failures that kept recurring, and set up a short, regular risk review.
  4. Close with a measurable result from your own project, such as fewer escaped defects, a restored release cadence or a met milestone, and one thing you would do earlier next time. The mistake that sinks it is a hero story with no decision, or one that blames the team.
Follow-up
  • What did you cut, and how did you get stakeholders to accept it?
  • How did you know the project was recovering rather than just quiet?
  • What was the first sign the project was at risk, and what would you watch for sooner next time?

How do you handle code quality standards, unit testing, and integration testing within a fast-paced developmen

medium
Process and Collaboration

How do you handle code quality standards, unit testing, and integration testing within a fast-paced development cycle?

Approach
  1. Describe the layers you actually used. Unit tests for business logic run on every commit; integration tests exercise real boundaries (database, message broker, a downstream service or its contract) and are kept in a smaller, separate suite.
  2. Explain how the practices fit a fast cycle: required automated checks and code review before merge, static analysis and dependency scanning in the pipeline, and parallelized test runs. Flaky tests are quarantined and fixed, not ignored.
  3. State your view on coverage: you track it as a trend and review untested risky paths, rather than chasing a percentage. For microservices, mention contract tests so one service can change without silently breaking its consumers.
  4. Give one concrete trade-off story: a time you slowed a release to add a missing integration test, or shipped with a known gap behind a feature flag and a follow-up. End with the outcome, such as incidents avoided or rollback time. The mistake that sinks it is reciting tool names without a story.
Follow-up
  • Which tests do you write first for a new service, and why?
  • How do you handle a flaky integration test blocking a release?
  • How do you decide whether a change needs an integration test or only unit tests?

Describe a situation where you mentored junior or mid-level engineers on design consistency and coding best pr

medium
Process and Collaboration

Describe a situation where you mentored junior or mid-level engineers on design consistency and coding best practices.

Approach
  1. Pick a specific mentee and a specific gap, such as services each handling errors and logging differently, or inconsistent API naming. Say how you noticed it and what outcome you wanted for them, not just for the code.
  2. Describe your methods: pair on a real task, review pull requests with comments that explain the reason, point to a good example in the codebase, and write down the convention (a short design template, a lint rule or a decision record) so it does not depend on you.
  3. Show how you balanced consistency and growth: you set the standard but let the mentee make and defend a design choice, then reviewed it together. Rewriting their code yourself is the common mistake.
  4. Finish with evidence: fewer review rounds, a design the mentee presented on their own, or consistency across services. Mention what you learned about mentoring, such as adjusting how much guidance each person needs.
Follow-up
  • How did you handle a mentee who disagreed with the standard you were teaching?
  • How did you measure whether the mentoring worked?
  • How do you keep design consistency without slowing a team down?
  • 01

    Can you describe a time when you had to stabilize a complex or at-risk technical project and restore its momentum?

  • 02

    How do you handle code quality standards, unit testing, and integration testing within a fast-paced development cycle?

  • 03

    Describe a situation where you mentored junior or mid-level engineers on design consistency and coding best practices.

  • 04

    Can you share an experience where you had to translate technical architectural concepts for non-technical or C-suite stakeholders?

  • 05

    Tell a story about meeting a business deadline while a security or compliance requirement pushed back, and what you traded off.

  • 06

    Tell a story about finding and fixing a bottleneck in a data pipeline or a cloud resource, and how you showed the fix worked.

PracHub preparation framework ↗
How many rounds are there and how long does the process take?

Candidates report five rounds over roughly 4-6 weeks: Recruiter Screening, Hiring Manager Interview, Core Assessment Phase, Technical Rounds and a Behavioral Interview. Reports add that the exact number and shape of rounds vary by team, so ask the recruiter for the format of your own loop.

PracHub Software Engineer practice ↗
What should I prepare for the technical rounds?

Candidates describe practical discussions of system design, past projects and scenarios rather than puzzle-style coding. Prepare Spring Boot and microservices experience, data ingestion and pipeline design, identity federation with SAML 2.0 and OAuth 2.0, multi-cloud architecture and cost, and infrastructure as code. Practise answering aloud with a clear structure and trade-offs.

PracHub Software Engineer practice ↗
Is there a coding test or take-home?

The candidate reports for this loop describe discussions, and none mention a take-home or a live coding stage. Ask the recruiter whether your team uses one. If so, the PracHub drills on idempotent requests, merging event streams and safe concurrent updates are good warm-ups for data-handling code.

PracHub Software Engineer practice ↗
Do I need healthcare experience?

Candidates list direct healthcare-provider experience and familiarity with Epic or electronic health record workflows as nice-to-have, not required. What you can prepare is fluency in HIPAA, SOC2 and GDPR concepts, consent management and patient data privacy, applied inside your designs.

PracHub Software Engineer practice ↗
How much Salesforce Data Cloud and Marketing Cloud should I know?

Both appear among the topics candidates report, and the role description mentions marketing digital experience teams. If you are interviewing for a data or marketing platform team, prepare profile unification, identity resolution, segmentation and consent handling. For a general cloud role, focus on the cloud platforms, identity and pipelines first.

PracHub Software Engineer practice ↗
Will on-call come up in the interview?

The role description candidates report includes a rotational on-call support model, and one reported question asks how you prioritize delivery work around it. Prepare an answer on triage by severity, handoffs, protecting focus time and how you reduce repeat incidents so on-call load drops.

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.