Skip to content

Data Analytics Interview Questions for Hardware & semiconductors Companies

40 questions weighted to the interview style of hardware & semiconductors companies — 4 easy, 29 medium, 7 hard.

How hardware & semiconductors companies interview for Data Analytics

Hardware, semiconductor and enterprise-technology companies hire data and QA people to work with engineering teams on large, complex products. Interviews test strong fundamentals, hands-on skills and careful, structured thinking.

This set focuses on Python for Analysis (6), SQL (6), Data Cleaning (4), Power BI (4).

HR round Technical round 1 Technical round 2 Managerial round Technical interview 1
Solved — hardware & semiconductors companiesStart 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 referential integrity and how do orphan records appear in analytics data?

Save to ▾
Show answer
Referential integrity means every foreign key value points to an existing row in the parent table, for example every order's customer_id exists in customers. Orphan records break this rule. They appear when source systems load tables at different times, records are deleted without cascading, or IDs are formatted differently across systems. Detect them with a LEFT JOIN where the parent key is NULL, and decide whether to fix, map or flag them.
02

What is the difference between relationships, joins and data blending in Tableau?

TableauMedium
Save to ▾
Show answer
Relationships, the default logical layer, connect tables flexibly and Tableau decides join type and level per view, avoiding duplicated measures. Joins physically merge tables into one at a fixed level, which can duplicate rows if grains differ. Blending combines data from separate data sources at the view level using a primary and secondary source, aggregating the secondary first. Prefer relationships, use joins for specific row-level needs, and blending as a last resort.
03

What is cohort analysis?

Save to ▾
Show answer
Grouping users by a shared start date or trait and tracking behaviour over time, for example monthly retention per signup month.
04

What is the difference between a list, tuple, dictionary and set in Python?

Save to ▾
Show answer
A list is ordered and mutable, good for sequences you change, like [10, 20, 30]. A tuple is ordered but immutable, useful for fixed records such as coordinates. A dictionary stores key-value pairs with fast lookup by key, like {'Delhi': 120}. A set holds unique unordered values and is great for removing duplicates or checking membership quickly. Analysts use dictionaries constantly for mappings and renaming columns.
05

Your NOT IN query unexpectedly returns zero rows. Why might that happen, and how do EXISTS and IN differ?

SQLMedium
Save to ▾
Show answer
IN checks whether a value is in a list or subquery result; EXISTS checks whether a subquery returns at least one row and stops at the first match. Results are the same in most cases, and modern optimisers often run them similarly. The big difference is NOT IN with NULLs: if the subquery returns any NULL, NOT IN returns no rows. NOT EXISTS behaves correctly, so prefer it for anti-joins.
06

Write SQL to calculate open rate and click-through rate for each email campaign.

Save to ▾
Show answer
SELECT s.campaign_id, COUNT(DISTINCT s.user_id) AS delivered, COUNT(DISTINCT o.user_id) AS opened, COUNT(DISTINCT c.user_id) AS clicked, ROUND(100.0 * COUNT(DISTINCT o.user_id) / COUNT(DISTINCT s.user_id), 1) AS open_rate, ROUND(100.0 * COUNT(DISTINCT c.user_id) / COUNT(DISTINCT s.user_id), 1) AS ctr FROM email_sends s LEFT JOIN email_opens o ON o.campaign_id = s.campaign_id AND o.user_id = s.user_id LEFT JOIN email_clicks c ON c.campaign_id = s.campaign_id AND c.user_id = s.user_id WHERE s.status = 'delivered' GROUP BY s.campaign_id;
07

After joining orders to payments, your revenue total doubles. What went wrong?

SQLMedium
Save to ▾
Show answer
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.
08

Write Python code to test whether conversion differs between control and treatment.

Save to ▾
Show answer
from statsmodels.stats.proportion import proportions_ztest, proportion_confint conversions = [1180, 1295] # control, treatment visitors = [30000, 30100] z, p = proportions_ztest(conversions, visitors) print(f'z = {z:.2f}, p = {p:.4f}') for c, n in zip(conversions, visitors): low, high = proportion_confint(c, n, method='wilson') print(f'rate {c/n:.3%} 95% CI {low:.3%} to {high:.3%}')
09

Your event logs store timestamps in UTC, but the business reports daily sales in IST, and late-night orders land on the wrong day. How do you fix it?

Save to ▾
Show answer
Convert timestamps to the business time zone before deriving the date. IST is UTC plus 5 hours 30 minutes, so an order at 20:00 UTC belongs to the next day in IST. In SQL use AT TIME ZONE or CONVERT_TZ, and in pandas use tz_localize('UTC') followed by tz_convert('Asia/Kolkata'). Store raw UTC, add a local date column in the model, and document which one each report uses.
10

Write a DAX measure for year-over-year sales growth percentage.

Power BIMedium
Save to ▾
Show answer
Sales LY = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date])) Sales YoY % = VAR cur = [Total Sales] VAR prev = [Sales LY] RETURN DIVIDE(cur - prev, prev) -- needs a marked date table; format the measure as a percentage
11

What is the difference between Goal Seek and Solver?

ExcelMedium
Save to ▾
Show answer
Goal Seek changes one input to hit a target output; Solver optimises with several variables and constraints, for example maximising profit under budget limits.
12

Why do ratio metrics need extra care on a dashboard compared with count metrics?

Save to ▾
Show answer
A ratio like conversion rate or average order value can move because the numerator or the denominator changed, so always show both components nearby. Ratios can look dramatic on small bases, such as 2 of 4 users. They also cannot be averaged across segments; you must divide total numerator by total denominator, otherwise small segments get too much weight. Counts are simpler but need context like trends or targets.
13

What is the difference between frequentist and Bayesian A/B testing?

Save to ▾
Show answer
Frequentist testing asks how surprising the data would be if there were no difference, and gives p-values and confidence intervals with a fixed sample size. Bayesian testing combines a prior with the data to give a probability that treatment beats control and the expected loss of choosing it. Bayesian results are easier for business users to read, but still depend on priors and still need sensible stopping rules.
14

What are absolute and relative cell references?

ExcelMedium
Save to ▾
Show answer
Relative references change when copied (A1); absolute references stay fixed ($A$1); mixed references lock only the row or column (A$1 or $A1).
15

How do you connect Python to a SQL database?

Save to ▾
Show answer
Create an engine with SQLAlchemy or a driver such as psycopg2, then run pd.read_sql(query, engine) to load results into a DataFrame.
16

Write a Tableau table calculation for year-over-year sales growth.

TableauMedium
Save to ▾
Show answer
// 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
17

Sales dropped 20% last month. How will you analyse it?

Save to ▾
Show answer
Confirm data accuracy first → break down by region, product, channel and customer segment → compare with seasonality and last year → check pricing, stock-outs, marketing changes and funnel conversion → present the root causes with clear charts.
18

What is the grain of a fact table and why should you decide it first?

Save to ▾
Show answer
The grain is the exact meaning of one row in a fact table, such as one order line, one daily store total or one monthly account balance. You decide it first because it controls which dimensions can join, which measures are valid and how totals behave. Mixing grains in one table, for example order lines and order-level shipping charges, causes double counting. Always state the grain in one sentence before adding columns.
19

Write SQL to flag rows that fail basic validation rules in a customer table.

Save to ▾
Show answer
SELECT customer_id, CASE WHEN email IS NULL OR email NOT LIKE '%_@_%._%' THEN 1 ELSE 0 END AS bad_email, CASE WHEN LENGTH(pincode) <> 6 THEN 1 ELSE 0 END AS bad_pincode, CASE WHEN signup_date > CURRENT_DATE THEN 1 ELSE 0 END AS future_signup, CASE WHEN age NOT BETWEEN 18 AND 100 THEN 1 ELSE 0 END AS bad_age FROM customers; -- sum each flag to report the error rate per rule
20

Leadership wants sales by store manager, but managers move between stores every few months. How would you model it?

Save to ▾
Show answer
First agree the business rule: should a sale belong to the manager in charge on the sale date, or to the current manager? For history, track the manager on the store dimension as SCD Type 2, or keep a separate store-manager assignment table with start and end dates and join on the sale date. Add a current-manager attribute too, so both views are possible. Document the rule on the report.
21

Actual sales are at order-line level but targets are set per region per month. How do you model them together?

Save to ▾
Show answer
Keep two fact tables at their natural grains: fact_sales at order line and fact_target at region-month. Never spread targets onto order lines. Both share conformed dimensions at a common level, such as a month attribute in the date dimension and region in the geography dimension. In reports, compare them only at month and region or higher. In Power BI, relate targets to month-level or region-level tables, not to daily keys.
22

How do you calculate month-over-month growth?

Save to ▾
Show answer
Aggregate revenue by month, use LAG(revenue) OVER (ORDER BY month), then (revenue - prev) / prev x 100.
23

Design a dashboard for CXOs — what principles do you follow?

Save to ▾
Show answer
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.
24

What does CASE WHEN do?

SQLMedium
Save to ▾
Show answer
It adds conditional logic inside queries, for example bucketing ages or flagging values, returning different results per condition.
25

Write pandas code to fill missing values in a column with the median of each group.

Save to ▾
Show answer
# 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())
26

Your analysis shows that a flagship initiative championed by leadership is not working. How do you present it?

Save to ▾
Show answer
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.
27

How do you calculate a rolling average?

SQLMedium
Save to ▾
Show answer
df['sales'].rolling(window=7).mean() gives a 7-period moving average, useful to smooth daily noise.
28

You inherit a monthly Excel report and suspect some numbers are hard-typed over formulas. How do you audit it?

ExcelMedium
Save to ▾
Show answer
Use Go To Special and select Constants with Numbers to highlight hard-typed values inside formula areas. Show Formulas (Ctrl+`) to scan columns for inconsistencies, and use Trace Precedents and Dependents on key totals. Inquire or Spreadsheet Compare, if available, can flag inconsistent formulas. Then fix the overwritten cells, protect formula ranges and add check totals that compare with the source data each month.
29

What is the unit of randomisation in an experiment, and how do you choose it?

Save to ▾
Show answer
The unit of randomisation is what gets assigned to control or treatment: a user, a session, a device, a store or a city. Usually it should be the user, so one person always sees the same version. Session-level randomisation can show one user both versions and contaminate results. Your analysis unit should match it; if you randomise by user but analyse per page view, standard errors become too small.
30

What is the difference between a clustered and a non-clustered index?

SQLMedium
Save to ▾
Show answer
A clustered index defines the physical order of rows (one per table); a non-clustered index is a separate structure with pointers to the rows.
31

What is incrementality testing in marketing?

Save to ▾
Show answer
Incrementality testing measures sales that happened because of a campaign, compared with what would have happened anyway. You hold out a random group of users or a set of matched cities from the campaign and compare their conversions with the exposed group. Attribution tools often over-credit channels like retargeting and brand search, which reach people already likely to buy, so incrementality tests show the true lift and the true cost per incremental sale.
32

How do you read a CSV and inspect it in Pandas?

Save to ▾
Show answer
df = pd.read_csv('file.csv'); then head(), info(), describe() and isna().sum() for a quick health check.
33

How do you handle outliers in Pandas?

Save to ▾
Show answer
Detect with IQR or z-score, then cap with clip, remove, transform with log, or keep and flag them depending on whether they are errors or real events.
34

What is Power Query and why is it useful?

Power BIMedium
Save to ▾
Show answer
An ETL tool inside Excel for importing, cleaning and shaping data with recorded steps that refresh automatically when the source changes.
35

What is a virtual environment in Python and why should analysts use one?

Save to ▾
Show answer
A virtual environment is an isolated folder with its own Python interpreter and installed packages, created with python -m venv or tools like conda or uv. Each project can then pin its own pandas or library versions without breaking other projects. Saving the package list in requirements.txt or a lock file lets a colleague or a scheduled server reproduce the same setup, which avoids the classic works-on-my-laptop problem.
36

Your Sales table has OrderDate and ShipDate. How do you analyse sales by ship date when only OrderDate is the active relationship?

Save to ▾
Show answer
-- 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
37

Many reporting queries in your team use SELECT DISTINCT to remove duplicate rows. What is the risk?

SQLMedium
Save to ▾
Show answer
SELECT DISTINCT often hides a real problem, such as a join on the wrong key or a one-to-many join that multiplies rows. The output looks clean, but sums computed before the DISTINCT, or legitimate repeated rows, can be wrong, and DISTINCT adds a costly sort on large tables. Instead, find why duplicates appear, fix the join or aggregate the child table first, and add a uniqueness test on the key.
38

What is the difference between loc and iloc in pandas?

Save to ▾
Show answer
loc selects by labels: row index labels and column names, for example df.loc[df['city'] == 'Pune', ['name', 'sales']]. iloc selects by integer position, for example df.iloc[0:5, 0:3] for the first five rows and three columns. With loc, slices include the end label; with iloc, the end position is excluded like normal Python. Use loc for readable filtering and iloc when position matters.
39

What is a confidence interval?

Save to ▾
Show answer
A confidence interval gives a range of plausible values for a population parameter based on a sample. A 95 percent interval for average order value of 820 to 880 rupees means that if we repeated the sampling many times, about 95 percent of such intervals would contain the true average. Wider intervals mean more uncertainty; larger samples narrow them. Reporting the interval is more honest than reporting one number.
40

A stakeholder says the Power BI report shows different revenue than their Excel file. How do you troubleshoot?

Power BIMedium
Save to ▾
Show answer
I would first agree on definitions: gross or net, including tax or returns, order date or invoice date. Then compare one small slice, such as one month and one region, in both. I check filters on the report and page, relationships that drop unmatched rows, refresh time versus the Excel extract time, and duplicate rows. Once the gap is explained, I document the definition in the report so the question does not repeat.

Hardware & semiconductors companies (11)

Frequently asked questions

How are Data Analytics interviews at hardware & semiconductors companies different?

Hardware, semiconductor and enterprise-technology companies hire data and QA people to work with engineering teams on large, complex products. Interviews test strong fundamentals, hands-on skills and careful, structured thinking.

Which hardware & semiconductors companies are covered?

This page links to 11 hardware & semiconductors companies, including Apple, Cisco, Samsung, Qualcomm, Intel, NVIDIA, Dell Technologies, Siemens. Each has its own page with rounds and a separate practice set.

What rounds should I expect?

Common rounds at these companies include: HR round; Technical round 1; Technical round 2; Managerial round; Technical interview 1. The exact process varies by company and role.