Druva Data Analytics Interview Questions & Answers
Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.
About Druva hiring for Data Analytics roles
Druva is a data protection and backup software company that offers a cloud-native SaaS platform for backup, recovery and data security. It protects data across endpoints, SaaS applications and cloud workloads for enterprises worldwide. The company was founded in Pune, and its large Pune engineering centre hires software engineers, quality engineers, cloud engineers and site reliability engineers.
For Data Analytics roles, this Druva practice set focuses most on Data Cleaning (7), Power BI (5), A/B Testing & Experiments (4), Statistics and Case Studies (4). It has 4 easy, 22 medium, 14 hard questions, so you can start easy and work up to the harder ones.
Company type
Product
Headquarters
California, USA
Main India offices
Pune
Druva Data Analytics interview process
Online coding assessment
Technical round 1 (DSA)
Technical round 2 (OS, networking or design)
Hiring manager round
HR round
Typical pattern based on public candidate experiences. Rounds vary by role, team and year.
Solved for DruvaStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
✓ 3 questions free • Unlock the rest in seconds
01
What is the difference between extract filters and data source filters in Tableau?
Extract filters decide which rows go into the extract file at all, which reduces its size and speeds every view; filtered rows are simply not available. Data source filters apply to all worksheets using that data source, for live or extract, and are useful for security or scope, such as only the India business. Both act before context filters. Normal worksheet filters only affect one sheet.
02
Write Python code to calculate the sample size per group for a conversion test with a 4% baseline and a 10% relative lift.
# Fill missing delivery_days with the median for that city
df['delivery_days'] = (
df['delivery_days']
.fillna(df.groupby('city')['delivery_days'].transform('median'))
)
# Rows in a city with no values at all stay NaN; fall back to overall median
df['delivery_days'] = df['delivery_days'].fillna(df['delivery_days'].median())
04
You loaded a month of sales into the warehouse. How do you check the load is complete and correct?
Reconcile against the source: compare row counts, total amount, and counts by day and by store between source and target. Check for duplicate keys, nulls in mandatory columns, and dates outside the expected month. Compare with the previous month to spot big unexplained jumps. Spot-check a few individual transactions end to end. Automate these checks so each future load produces a small pass or fail report.
05
A profit margin visual shows errors for products with zero sales. How do you fix it in DAX?
DIVIDE(numerator, denominator, alternate) handles division by zero or blank safely and returns blank or the alternate value you supply, so visuals do not show errors or infinity. The / operator returns an error or infinity in those cases. For example, DIVIDE([Profit], [Sales]) shows blank for a product with no sales. Use / only when you are certain the denominator can never be zero, because it is marginally faster.
06
Design a dashboard for CXOs — what principles do you follow?
Start from the business questions, show 4–6 top KPIs with trend vs target, allow drill-downs, keep colours consistent, remove clutter, add time/region filters and give one clear insight per visual.
Simpson's paradox happens when a trend in several groups reverses when the groups are combined, because group sizes differ. Example: a new sales process has higher conversion in both small and large stores, yet overall conversion looks lower because it was mostly rolled out to large stores, which convert worse in general. The lesson is to check segments and confounding variables before concluding from aggregate numbers.
08
How do you measure impact when a proper A/B test is not possible?
Use quasi-experimental methods. Difference-in-differences compares the change in a treated group, such as cities that got a new policy, with the change in similar untreated cities over the same period. Synthetic control builds a weighted mix of untreated regions to mimic the treated one. Regression discontinuity uses a cut-off, like a credit score threshold. Always check pre-period trends and state the assumptions clearly.
Never add mixed units. Identify the unit for each row from a currency or unit column, or infer it from the source system. Convert to one standard, for example INR using a dated exchange rate table joined on transaction date, and kilograms using a conversion factor. Keep the original value and unit columns for audit. Document which rates were used, and flag rows where the unit could not be determined.
11
Traffic suddenly doubled from one city, with near-zero engagement time and no conversions. What is happening and what do you do?
This is very likely bot or spam traffic, or a misfiring tag. Check the user agents, IP ranges, hostnames, screen resolutions and landing pages for that traffic. If it is bots, exclude it with filters or data segments in analytics and in your reporting layer, and inform the web team so they can block it. Then restate the affected dashboard numbers, because bots inflate sessions and pull down conversion rate.
12
What is the normal distribution and the 68-95-99.7 rule?
The normal distribution is a symmetric, bell-shaped distribution described by its mean and standard deviation. The empirical rule says about 68% of values fall within one standard deviation of the mean, 95% within two and 99.7% within three. For example, if delivery times average 30 minutes with an SD of 5, about 95% arrive in 20 to 40 minutes. Many business metrics are skewed, so check before assuming normality.
13
Write a Tableau table calculation for year-over-year sales growth.
// with YEAR(Order Date) in the view, Compute Using: Table (across)
(ZN(SUM([Sales])) - LOOKUP(ZN(SUM([Sales])), -1))
/ ABS(LOOKUP(ZN(SUM([Sales])), -1))
// the built-in Quick Table Calculation 'Year over Year Growth' generates similar logic
// format the field as a percentage
14
What are variables (VAR) in DAX and why are they useful?
VAR stores the result of an expression inside a measure, and RETURN gives the final output. Variables make measures readable, avoid evaluating the same expression twice, and are evaluated in the filter context where they are defined, which helps avoid subtle bugs inside CALCULATE. They also make debugging easy, because you can temporarily RETURN a variable to check its value before returning the final result.
15
Tableau or Power BI: how would you decide which one a team should use?
Both are capable, so the decision usually depends on context. Power BI fits teams already on Microsoft 365 and Azure, has lower per-user cost, and strong modelling with DAX. Tableau is often preferred for flexible visual exploration, very polished custom visuals and mixed-platform environments. I would also weigh existing skills, data sources, governance needs, licensing and embedding requirements, then run a short pilot on a real use case.
Prepare carefully and stay factual. Share the finding early with the initiative owner privately so they are not surprised in a big meeting. Lead with the question asked, the method and the evidence, acknowledge limitations and what is working, and avoid blaming anyone. Offer options, such as fixing a specific step, narrowing the scope or stopping, with estimated impact. Bad news delivered with solutions is received far better.
18
Find customers who ordered in January but not in February.
Broadcasting lets NumPy perform operations on arrays of different shapes without copying data, by virtually stretching the smaller array. For example, subtracting a 1D array of column means from a 2D array centres every column in one line: X - X.mean(axis=0). Shapes are compatible when trailing dimensions are equal or one of them is 1. It is a key reason vectorised code is much faster than Python loops.
A Common Table Expression (WITH name AS (...)) is a named temporary result used inside one query. Use it to break complex logic into readable steps or for recursive queries.
23
Write Python code for a simple difference-in-differences estimate of a store pilot.
I would compare channels on incremental return, not last-click ROAS. Gather spend, attributed conversions under two models, customer quality such as repeat rate and margin, and any lift test or mix model results. Look at diminishing returns: the last rupee in a saturated channel is worth less than the average. Then recommend cutting where marginal return is lowest, ideally phased with a holdout to confirm the impact.
25
What is the difference between ALL, ALLEXCEPT and REMOVEFILTERS in DAX?
ALL removes filters from a table or columns and can also return all rows as a table. REMOVEFILTERS only removes filters and is clearer inside CALCULATE. ALLEXCEPT removes all filters on a table except the columns you list. A common use is share of total: DIVIDE([Sales], CALCULATE([Sales], ALL(Product))) gives each product's percentage, while ALLEXCEPT(Product, Product[Category]) gives share within its category.
26
How do you merge two DataFrames on different column names?
First check whether it is a tracking problem: did the analytics tag break on some templates, did consent settings change, does server log or backend order data show the same fall? If the drop is real, check the search console for impressions and rankings, recent site releases such as changed URLs, missing redirects, noindex tags or robots.txt changes, and whether a search algorithm update or seasonal pattern matches. Then break the drop down by page group.
=XLOOKUP(1, (A2:A500=G2) * (B2:B500=H2), C2:C500, "Not found")
-- A = product, B = city, C = price
-- G2 and H2 hold the product and city to find
-- each condition returns TRUE/FALSE; multiplying gives 1 only where both match
30
A retail chain asks you which of its 120 stores it should close. How do you approach it?
Clarify the goal first: profit, cash or market share. Build a store-level dataset with revenue, contribution margin after rent and staff, trend over 24 months, footfall, catchment demographics and cannibalisation with nearby stores. Separate structural losers from stores that are new or temporarily disrupted. Estimate how much revenue would shift to nearby stores or online if a store closes. Present a shortlist with scenarios and risks, not a single answer.
A north star metric is the single measure that best captures the value a product delivers to customers and predicts long-term growth, such as weekly active learners for an education app or orders delivered for a delivery service. It aligns teams around one outcome. It should be supported by input metrics that teams can influence, such as activation rate and repeat usage, and balanced with guardrails like cost or quality.
32
Your Sales table has OrderDate and ShipDate. How do you analyse sales by ship date when only OrderDate is the active relationship?
-- create an inactive relationship Sales[ShipDate] -> 'Date'[Date] in the model
Sales by Ship Date =
CALCULATE(
[Total Sales],
USERELATIONSHIP(Sales[ShipDate], 'Date'[Date])
)
-- the measure uses the inactive relationship only inside this CALCULATE
-- the alternative is a second role-playing date table
A Data Table shows how a formula's result changes when one or two inputs vary. For example, place a loan EMI formula in a corner, list interest rates down the column and tenures across the row, then use What-If Analysis, Data Table to fill every combination. It is ideal for sensitivity analysis in pricing or budgeting. Large Data Tables slow recalculation, so set calculation to automatic except tables when needed.
34
What is the difference between an outlier and a data error?
An outlier is a genuine but unusual value, such as a bulk corporate order of 50 laptops; it is real and may be important. A data error is an incorrect value, such as an age of 250 or a price entered in paise instead of rupees. Errors should be fixed or removed. Outliers should be investigated and often kept, perhaps analysed separately or with median-based metrics so they do not distort averages.
35
Your pandas script shows SettingWithCopyWarning and a new column does not update. What is happening and how do you fix it?
It warns that you may be modifying a temporary copy of a slice, so the change might not reach the original DataFrame, for example df[df.sales > 0]['flag'] = 1. Avoid it by using a single loc call, df.loc[df.sales > 0, 'flag'] = 1, or by calling .copy() when you intentionally create a new subset. Newer pandas versions with copy-on-write make behaviour more predictable, but clear loc assignments remain best practice.
36
Write Python code to extract valid 10-digit Indian mobile numbers from a messy text column.
import re
pattern = re.compile(r'(?:\+?91[\s-]?|0)?([6-9]\d{9})')
def get_mobile(text):
if not isinstance(text, str):
return None
digits = re.sub(r'[\s()-]', '', text)
m = pattern.search(digits)
return m.group(1) if m else None
df['mobile'] = df['contact'].apply(get_mobile)
37
When would you use a one-tailed test instead of a two-tailed test?
A two-tailed test checks for a difference in either direction and is the safer default for A/B tests. A one-tailed test checks only one direction, such as treatment being better, and needs fewer users. Use it only if you decided beforehand that you would act the same way whether the change has no effect or a negative effect. Otherwise you may miss harm, which is why most teams stay two-tailed.
38
What is the logical order in which SQL executes a SELECT query?
Although written as SELECT first, a query is logically processed as FROM and JOIN, then WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY and finally LIMIT. This explains common errors: you cannot use a SELECT alias in WHERE because SELECT runs later, but you can use it in ORDER BY. It also explains why aggregates belong in HAVING, not WHERE, and why window functions cannot be filtered in the same query level.
39
The column names in a monthly vendor file keep changing. How do you make your cleaning pipeline robust?
Agree a data contract with the vendor if possible. In the pipeline, normalise headers by trimming, lower-casing and replacing spaces, then map known variants to standard names through a lookup table you maintain. Validate that all required columns exist after mapping and fail with a clear message if not, instead of producing silent blanks. Select columns by name, never by position, and log any unexpected new columns for review.
40
After joining orders to payments, your revenue total doubles. What went wrong?
This is a join fan-out: an order has more than one matching payment row, for example split payments or retries, so each order line is repeated and sums are inflated. Check by counting rows per key on both sides. Fix it by aggregating payments to one row per order before joining, joining at the correct grain, or using the right key. Always compare row counts and totals before and after a join.
Tips to crack the Druva Data Analytics interview
Revise operating systems, file systems and networking basics, since backup and storage products rely heavily on these concepts.
Practise DSA problems in your main language and be ready to discuss how you would design a scalable backup service.
Learn basic cloud services such as object storage and compute on AWS to connect your skills with Druva's platform.
Keep a one-minute story ready for every project on your CV: problem, your part, tools, result.
Practise the hard questions on this page aloud; Druva interviewers usually ask follow-ups on your first answer.
Frequently asked questions
How many rounds are there in the Druva Data Analytics interview?
Candidates usually go through 5 stages: Online coding assessment; Technical round 1 (DSA); Technical round 2 (OS, networking or design); Hiring manager round; HR round. The exact rounds change with the role, team, location and your experience, so confirm the process with the recruiter.
Which topics should I prepare for the Druva Data Analytics interview?
This practice set leans on Data Cleaning (7), Power BI (5), A/B Testing & Experiments (4), Statistics and Case Studies (4). Revise those first, then practise explaining one or two of your own projects end to end, because most Druva interviewers ask you to walk through real work.
Are these the exact questions asked at Druva?
No. These are curated practice questions that match the skills and difficulty usually tested in product interviews like Druva's. They are not a leaked or verified list of past questions.
Where does Druva hire Data Analytics professionals in India?
Druva has large teams in Pune. Openings and locations change often, so check the Druva careers page and filter by city and experience.