Skip to content

Senior BI Developer Interview Questions & Answers

40 questions for Senior BI Developer interviews — 1 easy, 19 medium, 20 hard.

About the Senior BI Developer role

A Senior BI Developer designs reusable data models and certified data sources, solves complex calculation and performance problems, reviews junior developers' work and sets dashboard standards. They work with architects and data engineers on warehouse design and with stakeholders on KPI definitions, and they often lead small teams delivering BI projects for business units or clients.

Data source design Advanced calculations Performance optimisation Code review Stakeholder management
Solved for this roleStart 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

An extract refresh fails every morning on Server. How do you troubleshoot?

Save to ▾
Show answer
Check the background task and job history for the error message. Common causes are expired or changed database passwords, firewall or VPN issues, schema changes like renamed columns, timeout because the query is too large, or Backgrounder overload at peak time. Fix credentials, update the data source, optimise the query or move the schedule. Set up failure email notifications.
02

How are LOD expressions different from table calculations?

Save to ▾
Show answer
LOD expressions are computed in the data source as part of the query, so they can be used as dimensions, in filters and inside other calculations. Table calculations run on the aggregated results already in the view, so they depend on the view layout and addressing. LODs are better for fixed levels such as customer totals, while table calcs suit running totals, ranks and differences.
03

Sales team wants year over year growth for each month on a single chart. How do you build it?

Save to ▾
Show answer
Place MONTH(Order Date) discrete on Columns and YEAR(Order Date) on Color with SUM(Sales) on Rows. Add a quick table calculation Percent Difference, compute using Year, relative to previous. Each month now shows growth versus the same month last year. Alternatively calculate with LOOKUP(SUM([Sales]), -1) partitioned by month and addressed by year.
04

What is the difference between tiled and floating objects in a dashboard?

Save to ▾
Show answer
Tiled objects sit in a layout grid and resize with containers, so they never overlap and adapt well to different sizes. Floating objects are placed at exact positions and can overlap other objects, useful for legends, logos or info icons. Most production dashboards use tiled layout with horizontal and vertical containers for structure, and only a few floating items.
05

How do filters interact with LOD expressions?

Save to ▾
Show answer
Extract, data source and context filters apply before FIXED, so they change FIXED results. Normal dimension filters apply after FIXED, so they do not affect it but do affect INCLUDE and EXCLUDE. Measure filters apply later still. Therefore, to make a region filter change a FIXED total, add it to context. Knowing this order prevents incorrect percent-of-total and cohort results.
06

When would you choose an LOD over a table calculation?

Save to ▾
Show answer
Choose an LOD when the result must be used as a dimension, a filter, in another data source level calculation, or must stay correct regardless of view layout, such as a customer's first purchase. Choose a table calculation for sequence-based logic such as running totals, ranks, moving averages and previous period values. LODs run in the database; table calcs run locally on the result set.
07

What is the difference between RANK, RANK_DENSE, RANK_MODIFIED and RANK_UNIQUE?

Save to ▾
Show answer
For values 100, 90, 90, 80: RANK gives 1, 2, 2, 4 (competition ranking). RANK_DENSE gives 1, 2, 2, 3 without gaps. RANK_MODIFIED gives 1, 3, 3, 4. RANK_UNIQUE gives 1, 2, 3, 4, breaking ties by order. Choose based on business rules, for example dense ranking for leaderboards where ties should share a position without skipping.
08

What are the Compute Using options such as Table Across and Pane Down?

Save to ▾
Show answer
Table Across computes left to right across the whole table, Table Down top to bottom, Table Across then Down moves across then wraps, Pane options restrict the calculation to each pane, Cell computes within a single cell, and Specific Dimensions lets you tick exact addressing fields. Specific Dimensions is the most reliable because it does not change when the layout is rearranged.
09

Why does filtering on a table calculation behave differently from a normal filter?

Save to ▾
Show answer
Table calculation filters apply at the end of the order of operations, after the calculation, so they hide marks without removing data from the computation. A normal dimension filter removes rows before the calc, changing running totals and ranks. To show only the last three months while keeping a running total from the start, filter with a table calc such as LAST() <= 2.
10

You need the average of daily totals, but data is at transaction level. How do you calculate it?

Save to ▾
Show answer
Compute daily totals first with an LOD, then average: AVG({FIXED DATETRUNC('day', [Order Date]) : SUM([Sales])}). If it must respond to filters such as Region, use INCLUDE instead: AVG({INCLUDE DATETRUNC('day', [Order Date]) : SUM([Sales])}) with the view at month or region level. Averaging raw transactions would give average ticket size, which is a different metric.
11

Your company is migrating from Tableau Server to Tableau Cloud. What would you plan?

Save to ▾
Show answer
Inventory content and usage to retire unused workbooks, map sites, projects, users, groups and permissions, and plan authentication. Set up Tableau Bridge for on-premise data, recreate schedules and subscriptions, and use migration tools to move content. Test critical dashboards for performance and row-level security, plan a pilot, communicate cut-over dates, and keep a rollback plan.
12

A live connection dashboard on a large database is very slow. What options would you evaluate?

Save to ▾
Show answer
Check the performance recording to see slow queries. Options include switching to an extract with aggregation and extract filters, adding database indexes or materialised views, removing custom SQL, enabling referential integrity assumptions, reducing the number of marks and quick filters, and using context filters wisely. If real-time is not required, a scheduled extract usually gives the biggest improvement.
13

What are subscriptions and data-driven alerts?

Save to ▾
Show answer
Subscriptions email users an image or PDF snapshot of a view or dashboard on a schedule, such as every Monday at 9 AM. Data-driven alerts notify users when a measure crosses a threshold, such as inventory below safety stock, checked when data refreshes. Both help business users who do not open dashboards daily, but too many can cause email fatigue.
14

Are LOD expressions dimensions or measures?

Save to ▾
Show answer
FIXED LODs with dimensions return row-level values that can be used as dimensions, for example a customer's first order year used for cohort analysis. Tableau puts them in measures by default when the result is numeric, but you can convert them to dimension. INCLUDE and EXCLUDE results are measures because they depend on the view. Converting FIXED to a dimension is common for bucketing.
15

Tell me about a time you pushed back on a stakeholder's request.

Save to ▾
Show answer
Situation: a sales director asked me to remove returns from revenue on the leadership dashboard to show higher growth. Task: keep reporting accurate while meeting his need. Action: I explained the impact on other reports, showed gross and net side by side with clear labels, and escalated the definition to finance for a final decision. Result: finance confirmed net revenue, and the director accepted it.
16

After rearranging the view, your percent of total gives wrong numbers. Why?

Save to ▾
Show answer
The table calc was probably set to Table Across or Table Down, which depends on layout. When fields move between Rows and Columns, the direction changes. Edit the table calculation and set Compute Using to Specific Dimensions with the correct addressing fields. Then the calculation stays correct even if users or developers reorganise the sheet.
17

Build a dimension switcher so users choose Region, Category or Segment.

Save to ▾
Show answer
Create a string parameter Dimension Choice with values Region, Category and Segment. Then: Selected Dimension: CASE [Dimension Choice] WHEN 'Region' THEN [Region] WHEN 'Category' THEN [Category] ELSE [Segment] END Put Selected Dimension on Rows and show the parameter control.
18

Calculate month-over-month percentage growth.

Save to ▾
Show answer
MoM Growth: (SUM([Sales]) - LOOKUP(SUM([Sales]), -1)) / ABS(LOOKUP(SUM([Sales]), -1)) Compute along month. The first month returns null because there is no previous value. Format as percentage and colour positive and negative values differently for quick reading.
19

What is the Tableau Server architecture and its key processes?

Save to ▾
Show answer
Tableau Server runs processes such as Gateway for incoming requests, Application Server for the web interface and permissions, VizQL Server for rendering views, Backgrounder for extract refreshes and subscriptions, Data Server for published data sources, Data Engine (Hyper) for extracts, the Repository database for metadata, and File Store. Administrators scale by adding nodes and adjusting process counts, often isolating Backgrounder on separate nodes.
20

What are the performance considerations of LOD expressions?

Save to ▾
Show answer
Each LOD generates a subquery joined back to the main query, so many LODs on large live data increase query complexity. FIXED on high-cardinality dimensions such as Order ID can be expensive. Keep the number of LODs small, prefer extracts, use FIXED with minimal dimensions, and check performance recordings. Sometimes pre-aggregating in the database is better than complex nested LODs.
21

Management wants new versus repeat customers per month. How would you build it?

Save to ▾
Show answer
Create First Purchase Month: {FIXED [Customer ID] : MIN(DATETRUNC('month', [Order Date]))}. Then Customer Type: IF DATETRUNC('month', [Order Date]) = [First Purchase Month] THEN 'New' ELSE 'Repeat' END. Put MONTH(Order Date) on Columns, COUNTD(Customer ID) on Rows and Customer Type on Color. Validate a few customers manually to make sure classification is correct.
22

You notice hundreds of duplicate workbooks and data sources on Server. How would you clean up governance?

Save to ▾
Show answer
Use admin views and usage statistics to find stale or duplicate content. Agree a governance model with owners: certified data sources, project structure by department, naming standards, and a sandbox project for drafts. Archive content not viewed in 90 days after notifying owners, lock project permissions, and set a monthly review. This reduces confusion and Server load.
23

How do set actions differ from filter actions?

Save to ▾
Show answer
A filter action removes data from target sheets based on a selection. A set action changes membership of a set, keeping all data available, so you can compare selected versus unselected, colour them, or build proportional brushing and drill-down within the same sheet. Set actions offer more flexible interactions, such as asymmetric drill down in a hierarchy, without losing context.
24

A rank changes when the user selects a filter value. The business wants overall rank. What do you do?

Save to ▾
Show answer
Normal filters remove rows before the rank is computed, so rank recalculates on the filtered set. Either replace the filter with a table calculation filter such as LOOKUP(MIN([Product]), 0), which hides rows after ranking, or compute rank with an LOD-based approach. Explain both behaviours to the user and confirm which rank they actually need.
25

How do you blend sales data with a targets file in Tableau?

Save to ▾
Show answer
Connect to both sources. Build the view with the primary source, for example Region and Month from sales. Switch to the targets source in the Data pane, check the link icon next to Region and Month so they are active linking fields, then drag Target onto the view. Tableau aggregates targets to those fields. Make sure the linking field names and values match exactly.
26

Tell me about the most impactful dashboard you have built.

Save to ▾
Show answer
Situation: the operations team tracked delivery delays in spreadsheets updated weekly. Task: give them daily visibility. Action: I built a dashboard on a scheduled extract with delay KPIs, a city map and a drill-down to late orders, and trained the team leads. Result: they spotted delays a day earlier, and late deliveries reduced by about 12 percent over two months.
27

How do you build a bullet chart for actual versus target?

Save to ▾
Show answer
Select Sales and Target with a dimension such as Region, then choose bullet graph from Show Me. Tableau puts Sales as bars and Target as a reference line with distribution bands. If the roles are reversed, right-click the axis and choose Swap Reference Line Fields. Add colour for achieved versus missed using a calculation comparing SUM(Sales) with SUM(Target).
28

Show only the latest 6 months while running totals start from the first month.

Save to ▾
Show answer
Keep all months in the view. Create: Last N Filter: LAST() < 6 Compute along month and put it on Filters set to True. Because table calc filters apply after the running sum, earlier months are hidden but still counted. A normal date filter would reset the running total.
29

What are site roles in Tableau Server or Cloud?

Save to ▾
Show answer
Site roles define the maximum capabilities a user can have. Creator users can connect to data, build in Desktop and Prep and publish. Explorer users can explore and web edit existing data sources, with Explorer (can publish) allowing publishing. Viewer users can view and interact with dashboards. Site Administrator roles manage users and content. Permissions on content further restrict what each user can do.
30

What is a virtual connection and data policy in Tableau?

Save to ▾
Show answer
A virtual connection is a shareable, centrally managed access point to database tables, with embedded credentials and optional extracts. A data policy attached to it applies row-level security at the table level using user functions and entitlement tables. Every workbook and data source using the connection inherits the security, so rules are defined once instead of in each data source. It requires Data Management licensing.
31

How would you set up row-level security using a user entitlement table?

Save to ▾
Show answer
Create an entitlement table with Username and Region columns, maintained by the business or IT. Relate or join it to the fact table on Region. Create a calculation USERNAME() = [Username] and add it as a data source filter set to True. Publish the data source with embedded credentials and restrict download permissions. Test with View As or user impersonation for each role.
32

Count customers by the number of orders they placed.

Save to ▾
Show answer
Orders per Customer: {FIXED [Customer ID] : COUNTD([Order ID])} Convert it to a dimension and discrete, place it on Columns, and put COUNTD([Customer ID]) on Rows. The chart shows how many customers placed 1, 2, 3 or more orders, a common customer frequency analysis.
33

You must ensure sales managers only see their own region on a shared dashboard. What approach do you take?

Save to ▾
Show answer
Implement row-level security rather than relying on filters users can change. Use a user mapping table with usernames and regions, relate it to the data, and create a data source filter USERNAME() = [Username]. Publish the data source with the filter so it cannot be removed. For large deployments, consider virtual connections with data policies. Test by impersonating users on Server.
34

Describe a time you mentored a junior analyst on Tableau.

Save to ▾
Show answer
Situation: a new team member struggled with LOD expressions and kept producing wrong totals. Task: help her become independent. Action: I set up weekly thirty-minute sessions, explained the order of operations with small examples, reviewed her workbooks with comments, and shared a checklist. Result: within six weeks she delivered a cohort dashboard on her own, and the checklist became part of team onboarding.
35

Describe how you work with data engineers on a BI project.

Save to ▾
Show answer
Situation: my dashboard needed customer data that was spread across three systems. Task: get a reliable, single table. Action: I wrote clear requirements with grain, fields and refresh needs, shared sample SQL, and reviewed their view together, testing counts against source systems. Result: they built a curated table, my dashboard became simpler and faster, and we reused the table for two other reports.
36

A workbook with many nested table calculations is slow in the browser. How do you approach it?

Save to ▾
Show answer
Table calcs run on the result set, so large numbers of marks make them slow. Reduce marks by aggregating to the needed level, filter data earlier with context or data source filters, replace some table calcs with LODs or database-side calculations, and avoid nested WINDOW functions over thousands of rows. Use a performance recording to confirm computing layouts and query time.
37

A CXO wants a dashboard that updates every 15 minutes during a sale event. How do you design it?

Save to ▾
Show answer
Assess whether the source supports frequent queries. Options are a live connection to an optimised warehouse table with pre-aggregated data, or frequent incremental extract refreshes if allowed. Keep the dashboard light with few marks, headline KPIs and a trend, and enable auto-refresh behaviour or ask users to refresh. Load test before the event and monitor during it.
38

How do calculations affect performance, and what are best practices?

Save to ▾
Show answer
Row-level calculations on large live sources run in the database for every query, so heavy string operations and nested IFs can be slow. Best practices are to use booleans and integers instead of strings, prefer CASE for fixed lists, move complex logic to the database or extract, materialise calculations in extracts, avoid unnecessary COUNTD, and keep LODs and table calculations simple.
39

Show each product's rank within its category.

Save to ▾
Show answer
Rank: RANK(SUM([Sales]), 'desc') Place Category and Product on Rows. In Edit Table Calculation choose Specific Dimensions, tick Product only so the rank restarts for each category. Add a filter on the rank calculation, set to at most 5, to show the top five products in every category.
40

Your percent of total changes when a user filters Category. The business wants it to stay fixed. What do you do?

Save to ▾
Show answer
If you used a quick table calculation, the total is computed on the filtered view, so it changes. Replace it with a FIXED LOD for the total, which ignores dimension filters, or use EXCLUDE for the filtered dimension. Make sure any filters that should affect the total are added to context. Test with and without filters and document the behaviour.

Frequently asked questions

What does a Senior BI Developer do?

A Senior BI Developer designs reusable data models and certified data sources, solves complex calculation and performance problems, reviews junior developers' work and sets dashboard standards. They work with architects and data engineers on warehouse design and with stakeholders on KPI definitions, and they often lead small teams delivering BI projects for business units or clients.

Which skills are tested in a Senior BI Developer interview?

Expect questions on Data source design, Advanced calculations, Performance optimisation, Code review, Stakeholder management. Most rounds also ask you to explain a project and solve one practical problem live.

How do I prepare for a Senior BI Developer interview?

Revise LOD Expressions, Table Calculations, Dashboards and Tableau Server first using the topic sheets, practise the questions on this page aloud, then do one full mock interview to practise timing.