Linktree · Data Scientist
Updated · 2026-09-24

Linktree Data Scientist
Interview Questions & Guide 2026

THE 60-SECOND BRIEF

This guide covers what a Data Scientist at Linktree is expected to do and how to prepare for the interview.

Product-sense cases reward reasoning from a mechanism to a testable prediction. Reciting every metric you can name reads as pattern matching; naming the single quantity that would move if your explanation were true reads as thinking.

Linktree candidates report 3 rounds · ≈ 3-5 weeks. The stages below are what candidates describe, not a published process.

Decompose DAU into new, retained, reactivated, resurrectedDesign feed experiments that survive social-graph interferenceTrade engagement gains against negative feedback and prevalence

35 min read

Browse Data Scientist questions

See the practice prompts

17Practice promptsAcross five skill areas
3With worked solutionsIncluded in the practice prompts

This guide covers what a Data Scientist at Linktree is expected to do and how to prepare for the interview.

01

Recruiter Screen

reported

A screening call is a matching exercise run by someone who will not evaluate your statistics. They are checking that the work described on your resume is work you personally did, and that its scope matches the level the role is written for. Logistics get settled in the same half hour so nobody spends an interviewer's afternoon on a mismatch. The answer that fails is the one narrated in the plural. If every sentence is 'we built' and 'the team decided', there is nothing specific to write down about you. Name the piece that was yours, the decision you made inside it, and what changed after.

What to demonstrate

  • Whether the ownership implied by your resume survives one round of follow-up about who actually did which part
  • Whether your described scope (data size, stakeholders, what shipped) matches the seniority the role is written at
  • Whether timeline, location and compensation expectations make the rest of the loop worth scheduling

How to prepare

  • Rewrite your top three resume bullets in the first person singular, each with the decision you made and what moved afterwards, then say them out loud once so the 'we' does not return under pressure
  • Attach one number to each project: the baseline, the change, and the window it was measured over. Where impact was never measured, say that plainly rather than inventing a figure
  • Settle your compensation range before the call and give it as a range with a reason behind it, such as current total comp or a competing timeline, instead of deflecting the question twice
PracHub interview research ↗
02

Product Manager Interview

reported

Underneath the questions about your past work sits a resourcing question. Given four things worth doing and one of you, which gets done and what happens to the rest? Managers ask because that is the daily texture of the job, and because the answer shows whether you rank work by effort or by what it changes. The weak version sorts by personal interest or by whoever asked most insistently. The strong version ties each candidate piece of work to a decision somebody downstream is waiting on, and then names the one you would drop and who you would tell.

What to demonstrate

  • Whether you rank work by the decision it unblocks or by how interesting the method is
  • How you describe a request you declined, and whether you can say who you said it to
  • Whether your sense of how long something takes survives one follow-up question about the messy part
  • How you decide something is good enough to hand over unfinished

How to prepare

  • Write out your current queue and, next to each item, the decision that stays stalled until it lands. Anything with no waiting decision becomes your example of work you would cut
  • Rehearse turning down a plausible stakeholder request out loud, including the smaller alternative you offered instead
  • Have one case where you shipped a rough answer early and one where you refused to, with the reason that separated them
PracHub interview research ↗
03

Technical Round

reported

This round decides whether someone can hand you a schema and a question and trust the number that comes back. Correctness under a clock is the bar, not clever syntax. The habit that separates strong from weak answers is checking the grain: after every join, know how many rows you expect and whether the count moved. Most wrong answers in this format are not wrong logic, they are a fan-out from a key that turned out not to be unique, or a filter applied before an aggregate when it belonged after. Say what you expect before you run it.

What to demonstrate

  • Whether your row counts survive each join, and whether you notice on your own when they do not
  • Deliberate handling of rows that fail to match, including whether the question needs an inner join or a left join with the non-matches kept and counted
  • Whether NULLs are treated on purpose, given that a NULL compares equal to nothing and that COUNT of a column skips it
  • Reaching a defensible answer inside the window instead of a refined one after it

How to prepare

  • Take a two-table schema, write a join that fans out on purpose, then fix it by collapsing the many-side to one row per key before joining. Repeat until the fix is reflex rather than recall.
  • Write a funnel as one query and print the distinct user count at each stage, then confirm each stage is a subset of the one above it rather than assuming it
  • Do a few timed runs in a plain text box with no autocomplete and no formatter, since assessment editors often have neither
PracHub interview research ↗

PracHub editorial advice for the preparation topics above.

01

Using report volume as a measurement of how much violating content exists

Reporting is a member behaviour, not an observation of the content. Report counts rise when the report control is made easier to reach, when a coordinated campaign targets an account, and when the audience shifts toward people who object; they fall when violating content is shown mainly to members who agree with it. A ranker that gets better at matching bad content to receptive audiences will drive reports down and harm up at the same time. Prevalence must come from a random sample of served impressions with recorded selection probabilities, labelled by humans against the written policy, and reported with an interval. Reports are useful as a detection signal and as a demand-side complaint rate, not as a denominator-anchored measure of harm.

02

Randomising individual members when the treatment travels along the social graph

If treated members post, comment or share more, their followers see the extra content whether or not those followers are treated, so the control group is partly treated and the measured difference understates the true effect. For features that redistribute a fixed amount of attention, the leakage runs the other way and the effect is overstated. The size of the bias scales with how dense the neighbourhood is, so it is largest exactly among the connected members whose behaviour the feature was built for. The fix is randomising clusters of the graph (ego networks or communities found by balanced partitioning), clustering the variance at that unit, and accepting that effective sample size falls by roughly the average cluster size.

03

Reading an observational correlation as a causal effect

Name the confounder you are most worried about and the design that would remove it: an experiment, a difference-in-differences with a checked pre-period trend, an instrument, or a regression discontinuity. When none is available, state which direction the bias likely runs and bound the claim accordingly.

04

Crediting a treatment for regression to the mean

Selecting a group because it is extreme (lowest-engagement users, accounts having their worst month, the bottom decile of a score) moves that group's expected next-period value back toward the average even under no treatment, by exactly as much as the selecting measure is imperfectly correlated with its own later value. Compare against units that met the same selection rule and went untreated, or use two pre-periods so the bounce-back is visible before the intervention starts. A pre-post number on a group chosen for being extreme measures the selection rule, not the treatment.

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

14 technical prompts3 include a worked solution

Roll a daily negative feedback rate up to a week

easy
rate hygienegroupbydenominators

You have two DataFrames. impressions: impression_id, event_date (date), surface. engagements: event_id, event_date, surface, impression_id (nullable), is_negative_feedback (bool). Compute negative feedback per 1,000 impressions: 1000 times the count of engagement rows with is_negative_feedback True and impression_id not null, over the count of impressions in the same date and surface. Return a daily table by surface, then a weekly table built by re-summing numerator and denominator. Also return the unweighted mean of the seven daily rates for the same weeks, and say which number you would publish.

Approach
  1. Aggregate the two frames separately to (event_date, surface) grain: a numerator count from engagements filtered on is_negative_feedback and impression_id.notna(), a denominator count from impressions. Keep them as two columns, not a pre-divided rate, because everything downstream needs the parts.
  2. Outer-join numerator onto denominator so that a day with impressions and zero negative feedback becomes a 0 rather than disappearing. A dropped zero-numerator day silently raises every rolled-up rate.
  3. Attach a week key to the daily frame, then compute the weekly rate as 1000 * sum(numerator) / sum(denominator) grouped by (week, surface). This is a ratio of sums.
  4. Compute the second, wrong number for comparison: groupby(week, surface).rate.mean(). Show the two side by side with the daily impression counts so the divergence has a visible cause.
  5. State the rule: the weighted version is the volume-weighted average of the daily rates, so the unweighted mean over-weights low-traffic days. The two agree only when every daily denominator is identical.
  6. Report numerator, denominator and rate in the output, never the rate alone, so a reader can tell a denominator move from a numerator move.
Follow-up
  • The hide control moved from a submenu to the card on Tuesday. What happens to this metric, and is it a quality regression?
  • How would you report this rate split by hide, report, not-interested and unfollow without publishing four charts nobody reads?
  • An engagement row has impression_id NULL. Should it be in this numerator, and what is it measuring if you include it?

Trailing seven-day distinct actives without a rolling window

mediumWorked solution
windowed distinctinterval mergecomplexity

activity has member_id (int64) and local_date (date), one row per member per active local day, about 60 million distinct pairs spanning 400 dates. For every date d in the range, compute the number of distinct members active on at least one day in the closed window [d minus 6, d]. You may not use rolling, and you may not loop over dates recomputing a distinct count across the full frame. Return a DataFrame of date and wau, and state the time and memory cost of the method you chose.

Approach
  1. Say why the obvious answers fail. Summing seven daily active counts double-counts anyone active on more than one day, which is most of the active base. Looping over 400 dates with a nunique over 60 million rows is 400 full passes. Neither is a rolling-window problem in the pandas sense, because the aggregate is a distinct count and distinct counts do not decompose additively.
  2. Reframe it geometrically. A member contributes to wau(d) exactly when d lies in [t, t+6] for one of their active dates t. So the answer is the size of the union of those intervals, counted across members, evaluated at each date.
  3. Merge each member's intervals before counting, which is the step that removes the double counting. After sorting by (member_id, local_date), a new interval starts wherever the gap to the previous active date exceeds 7 days; otherwise the interval extends. The run's interval is [first t of the run, last t of the run + 6].
  4. Turn merged intervals into a difference array: plus one at each interval start, minus one at end plus one day, then a cumulative sum over the full date index. That is O(number of runs) memory and one sort overall.
  5. Offer the simpler alternative and price it: explode each (member, date) into the seven dates it covers, drop duplicates on (member, target_date), then count per target_date. Correct and easy to defend, but it materialises seven times the rows before the dedupe, so it is a memory decision rather than a correctness one.
  6. Handle the edges: dates in the first six days of the range have a truncated window and should be reported as such or dropped, not silently published as a lower wau.
Worked solution 35 min
  1. a = activity.drop_duplicates().sort_values(['member_id','local_date'])
  2. gap = a.groupby('member_id').local_date.diff().dt.days; run_start = gap.isna() | (gap > 7); run_id = run_start.groupby(a.member_id).cumsum()
  3. runs = a.groupby([a.member_id, run_id]).local_date.agg(['min','max']); runs['end'] = runs['max'] + pd.Timedelta(days=6)
  4. deltas = pd.concat([runs['min'].value_counts(), -(runs['end'] + pd.Timedelta(days=1)).value_counts()]).groupby(level=0).sum()
  5. wau = deltas.reindex(full_date_index, fill_value=0).cumsum().rename('wau').to_frame()
  6. Mark the first six dates as truncated and either drop them or carry a flag column
EXPECTED RESULTA DataFrame indexed by every date in the range with one integer column wau, equal to the count of distinct members active in the trailing seven days, with the first six dates flagged as truncated.
Follow-up
  • Now report wau by country. What breaks in the interval approach and what do you change?
  • The definition changes to distinct members with at least two active days in the window. Does either method survive?
  • How would you compute the same number incrementally each day without recomputing the whole history?

Cluster bootstrap a ratio metric under graph randomisation

hard
cluster bootstrapdelta methodinterference

units has cluster_id, arm ('control' or 'treatment'), neg_feedback_events (int) and impressions (int), one row per member; members are nested in about 900 ego-network clusters, which were the randomisation unit. The metric is negative feedback per 1,000 impressions, a ratio of sums. Write a cluster bootstrap from scratch: resample clusters with replacement within arm, keeping the number of clusters per arm fixed, recompute each arm's ratio and the relative difference, 2,000 replicates, percentile interval. Also compute a cluster-level delta-method interval and a naive member-level bootstrap. Report all three widths.

Approach
  1. Collapse to the randomisation unit before resampling anything. Sum neg_feedback_events and impressions to one row per (cluster_id, arm). Resampling has to happen over the units that were independently assigned, and members inside a cluster were not.
  2. Resample cluster rows with replacement within arm, holding the per-arm cluster count fixed, then recompute R = 1000 * sum(numerator) / sum(denominator) per arm from the resampled clusters. Recomputing the ratio of sums inside each replicate is what propagates the correlation between numerator and denominator; averaging per-cluster ratios instead answers a different question and will not match the point estimate.
  3. Take the relative lift R_t / R_c minus 1 per replicate and read the 2.5th and 97.5th percentiles off the 2,000 values. Percentile is adequate here; mention BCa as the refinement if the bootstrap distribution is visibly skewed.
  4. Derive the delta-method interval at the cluster level as the analytic check. With n clusters contributing numerator y_i and denominator x_i, R = ybar / xbar and Var(R) is approximately (1 / (n * xbar^2)) * (var(y) - 2Rcov(y,x) + R^2*var(x)). Arms are independent, so variances add for the difference.
  5. Run the naive member-level bootstrap only to show what it costs. Resampling members destroys the within-cluster correlation, so its interval is narrower by roughly the square root of the design effect 1 + (m - 1) * ICC, where m is the average cluster size. Quote that number as the price of the design.
  6. Close with the decision: report the cluster interval, state the number of clusters rather than the number of members as the effective sample size, and say what minimum detectable effect that leaves.
Follow-up
  • The cluster sizes are extremely uneven, with the largest cluster holding 4 percent of impressions. What does that do to the bootstrap and what would you change?
  • Derive the delta-method variance for the relative lift rather than the difference, and say when the two disagree.
  • You have 900 clusters and need to detect a 3 percent relative change. Is this test powered, and what would you trade to get there?

Four days spend equal time on query work, statistics, modelling and product judgement at deliberately shallow depth, which produces a scored map of where you actually stand. The last three days spend everything on the two areas the role weights most, and close by re-running day one to measure movement.

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
01Breadth pass: query fluency
  • Solve six prompts spanning aggregation, joins, window functions and date arithmetic in 60 minutes total, stopping at 10 minutes each whether or not it works, and mark every prompt as solved, solved slowly, or stuck.
  • For each unsolved prompt write the single blocking sentence (I lost the grain, I did not know the frame clause, I could not express the date boundary) instead of reading the solution.
  • Translate one pandas transformation you know well into SQL and one SQL query into pandas, checking that both return the same row count and the same totals.

Deliverable: A scored six-row table, one line per prompt, saved for the day-seven re-run.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Worked solution ↗
02Breadth pass: statistics and inference
  • Answer ten short questions in writing with nothing open: what a p-value is conditional on, what a 95 percent interval covers across repeated samples, when a paired test is the right one, what the bootstrap estimates, why multiple comparisons inflate false positives, how controlling the family-wise error rate differs from controlling the false discovery rate, what power depends on, what a missed real effect costs a product, the three situations where the central limit theorem does not rescue you (small n, very heavy tails, dependent observations), and what a standard error is the standard deviation of.
  • Grade yourself against a reference and count only the answers that were exactly right, not the ones that were nearly right.
  • Rewrite the two weakest answers the following morning from memory in full sentences.

Deliverable: Ten graded answers with an honest count of exact hits.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
03Breadth pass: modelling
  • Take one tabular dataset end to end in 90 minutes: a leakage-safe split, a baseline that is not a model (majority class or historical mean), one regularized linear model, one gradient-boosted tree, and a single evaluation metric chosen before you look at any result.
  • Write why that metric fits the cost structure: precision at a fixed recall for alerting, calibration for anything feeding a price or a threshold, ranking metrics for retrieval, and note that area under the ROC curve is insensitive to class balance in a way that can flatter a rare-positive problem.
  • Name the leak you were most likely to introduce (an encoding fit on all rows before splitting, or a feature computed after the label's timestamp) and write the check that would have caught it.

Deliverable: A notebook whose first cell states the metric and the baseline, plus two lines on what beat what and by how much.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Breadth pass: product judgement
  • Answer three case prompts aloud at 15 minutes each, timing how long passes before you state a success metric.
  • For one case write the first segmentation you would run and the row counts you expect per segment, so that a tiny segment cannot quietly drive the conclusion.
  • Take a metric definition you did not write, from a public dashboard, a textbook, or documentation you already have open, and list every place two analysts implementing it would diverge: which rows the denominator admits, whether the unit is an account or a person, what the time window is anchored to, and what happens to data that arrives late. Then write the one question that would close the largest of those gaps.

Deliverable: Three recorded case answers plus an ambiguity list for a metric someone else defined, ending in the single question you would ask about it.

Practice prompt ↗Practice prompt ↗Worked solution ↗
05Depth, first area
  • Rank the four areas by how many bullet points in the role description each one covers, pick the top one, and spend the entire day inside it.
  • Work the six hardest problems you can find in that area and for each write the generalizable move you should have reached for first, rather than the answer.
  • Re-solve the two you failed the same evening with notes closed.

Deliverable: Six generalizable moves written as instructions to yourself, not as solutions.

Practice prompt ↗Practice prompt ↗
06Depth, second area, and the seam between them
  • Repeat the depth protocol on the second-ranked area with the same six-problem structure.
  • Construct one problem that requires both areas at once, for example a metric redefinition whose effect you must validate with a test whose readout you then have to query.
  • Solve your own combined problem end to end and note where the handoff between the two areas cost you time.

Deliverable: One combined problem, solved end to end, with the handoff failure written down.

Practice prompt ↗Practice prompt ↗
07Integration and re-measurement
  • Re-run the six prompts from day one under the same clock and compare both correctness and time.
  • Run a 60-minute mixed mock that moves between areas without warning, since switching cost is what breadth passes do not train.
  • Write the two areas you would still fail on, and the sentence you will use in the interview when you hit one of them.

Deliverable: A before-and-after score table plus a written plan for the two remaining gaps.

Practice prompt ↗Practice prompt ↗Worked solution ↗

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

Data people depend on systems owned by other teams, and much of the job is negotiating for instrumentation, access, or a fix to a broken pipeline. Prepare an example of getting something changed upstream that you did not control. Describe what you asked for, what you traded, and how you worked while you waited.

Describe a situation where you disagreed with a Product Manager regard…

medium
behavioural and stakeholder questions

Describe a situation where you disagreed with a Product Manager regarding an experiment's design. How did you resolve it?

Approach
  1. State the situation in two sentences and spend the rest on your reasoning.
  2. Quantify the outcome, including what you would not claim credit for.
  3. Name the disagreement or constraint, and how you resolved it with evidence.
Follow-up
  • What did you decide not to do, and why?
  • What would you do differently if you ran that project again?

Recommend holding a ranker that lifts engagement and hides

hard
metric tradeoffsguardrailsstakeholder pushback

A ranking change finished a four-week cluster-randomised test on the home feed. Impressions per engaged session rose 3.1 percent and authored interactions per weekly active member rose 0.4 percent. Negative feedback per 1,000 impressions rose 6 percent, concentrated in hide and not_interested; unfollow was flat. Creator reach concentration rose 1.4 points. The product owner has already briefed the launch upward. In ten minutes give your recommendation, the exchange rate you are applying between engagement and quality, and the specific result that would change your mind. You may request two extra cuts of the data.

Approach
  1. Put both movements on the same base before arguing about them. Negative feedback is denominated per impression, and impressions per engaged session rose 3.1 percent, so absolute negative actions per engaged session rose about 9.3 percent (1.06 times 1.031), not 6 percent. Say that number out loud; it is usually the first thing nobody has computed.
  2. Ask whether the negative feedback rise is broad or concentrated: report distinct actors per 1,000 impressions beside the event rate. A rise driven by more members hiding is a distribution problem that affects the median viewer; a rise driven by the same members hiding more is a targeting problem in a segment that may be separable.
  3. Connect the 1.4 point concentration move to the supply-side guardrail rather than treating it as a curiosity. Pull retained reaching creators by arm and the median viewer's negative feedback on impressions from sub-threshold creators. Concentration is the plausible mechanism that pays for the engagement, and it is paid in creator churn that a four-week window barely registers.
  4. Read the effect by week with the burn-in excluded, not pooled. A 0.4 percent authored-interaction effect that is 1.1 percent in week 1 and 0.1 percent by week 4 is novelty decay, not a lift. State whether the ranking model was frozen for the test; if it retrained on experiment data, the arms are not independent and a pooled estimate is not interpretable either way.
  5. Deliver the recommendation as an exchange rate the owner can argue with: this buys roughly N additional hides per additional authored interaction at current volume. Then name the falsifier, for example the week-4 authored-interaction effect holding above 0.3 percent with flat concentration and the negative feedback rise confined to a removable segment.
Follow-up
  • The owner launches anyway. What do you instrument on day one, and what is your stop rule?
  • Negative feedback rate depends on how reachable the hide control is. Did the treatment change any surface affordance, and how would you know?
  • If concentration rose, does the cluster randomisation still hold? Whose feeds leaked into whose?

Defend a qualified-session definition against two motivated objections

hard
metric definitiongameabilitynorth star

The north star is weekly members with at least one qualified session: 30 or more foreground seconds plus at least one non-negative engagement or authored item. A utility surface team argues the 30-second floor penalises fast successful visits. A video team argues requiring an explicit action undercounts passive watching. Both teams are reviewed on this metric. In fifteen minutes, defend or revise the definition, state what each proposed change does to gameability, and name the evidence that would justify a revision.

Approach
  1. Split the two objections, because they attack different clauses and fail differently. The utility objection is about a threshold (30 seconds); the video objection is about the qualifying condition (an explicit action). Answering both with the same argument is the common tell that the definition was never understood.
  2. Test each proposed change for gameability before discussing its merit. Dropping the action requirement makes the metric movable by autoplay, by longer video, and by any change that keeps an item in the viewport, which is precisely the failure the clause exists to prevent. A per-surface floor lets one team obtain a definitional lift without changing member outcomes, and makes the platform total a sum of incomparable parts.
  3. Answer the video objection with evidence rather than principle, and say what evidence would move you: compare week-1 retention among members whose only qualifying signal was long dwell on video_short impressions against members whose qualifying signal was an explicit action. If a fitted dwell threshold predicts return at the same rate as a like, a dwell-based qualifier is defensible, fitted per media_type and re-fitted per period rather than inherited.
  4. Answer the utility objection by separating the metric from the review. One definition platform-wide, with surface-level diagnostics beside it, and a review conversation that credits the utility surface on its own funnel rather than on a whole-platform north star it structurally cannot move. Forking the definition solves the review problem by destroying the metric.
  5. Fix the change process in advance so revisions cannot be mistaken for wins: any new definition is dual-reported beside the old one for at least four weeks, the size of the definitional jump is published, and the team proposing the change does not own the analysis that evaluates it.
Follow-up
  • The utility team says they are graded on a number they cannot move. What do you actually offer them?
  • What evidence would make you drop the 30-second floor entirely, rather than adjust it?
  • Enforcement state changes after impressions are served. Does a session stay qualified when its only engagement was on content later removed?
  • 01

    Describe a situation where you disagreed with a Product Manager regarding an experiment's design. How did you resolve it?

  • 02

    A ranking change finished a four-week cluster-randomised test on the home feed. Impressions per engaged session rose 3.1 percent and authored interactions per weekly active member rose 0.4 percent. Negative feedback per 1,000 impressions rose 6 percent, concentrated in hide and not_interested; unfollow was flat. Creator reach concentration rose 1.4 points. The product owner has already briefed the launch upward. In ten minutes give your recommendation, the exchange rate you are applying between engagement and quality, and the specific result that would change your mind. You may request two extra cuts of the data.

  • 03

    The north star is weekly members with at least one qualified session: 30 or more foreground seconds plus at least one non-negative engagement or authored item. A utility surface team argues the 30-second floor penalises fast successful visits. A video team argues requiring an explicit action undercounts passive watching. Both teams are reviewed on this metric. In fifteen minutes, defend or revise the definition, state what each proposed change does to gameability, and name the evidence that would justify a revision.

PracHub interview preparation framework ↗
Is this an official Linktree interview guide?

No. It is PracHub's own research and practice material for the Data Scientist role at Linktree. Rounds and questions reflect what candidates have reported, not a process Linktree has published, and they change over time. Confirm the current format and scope with your recruiter.

PracHub interview research ↗
How much preparation time should I dedicate?

Most successful candidates spend 2–3 weeks of focused practice. Prioritize SQL practice and reviewing your past projects through the lens of A/B testing and product metrics.

PracHub interview research ↗
What is the company culture like?

Linktree is highly product-focused and fast-moving. Candidates report that the interviews favor people who are curious, collaborative, and biased toward action.

PracHub interview research ↗
Is the technical interview very difficult?

It is designed to be rigorous but fair. The goal is to see how you think in real-time, especially when you are asked to pair-code or debug a query.

PracHub interview research ↗
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.