Let's talk

Data & BI

Hire Power BI Developers

Power BI developers who build models that stay correct, not dashboards that need explaining every month.

Power BI earns its place inside organisations already on Microsoft 365, where the distribution problem is solved and the real work is modelling. The tool is generous enough to let anyone build a report, which is exactly why so many estates end up with a dozen versions of the same number and no agreement on which is right.

A measure is not a formula that is calculated once; it is re-evaluated in the filter context of every cell that shows it. Nearly every “the total is wrong” ticket in this tool comes from an author who has not internalised that sentence, and nearly every good hire can explain it without notes.

Why the total disagrees with the rows

The classic case: a margin percentage that is right on every row and wrong on the total, because the total re-evaluates the same division on aggregated values rather than adding up the rows. The fix is an iterator that computes per row and then aggregates, and knowing which of the two the business actually wants — they are different questions, and only one of them is a bug.

The second classic is a bidirectional relationship added to make one visual work, which introduces ambiguity into the model and changes numbers in reports nobody was looking at. Single-direction filtering with explicit measures is slower to write and does not do that.

Both belong in an interview, because both are the difference between a report builder and a modeller.

The model is the product; the report is a view of it

Star schema, every time: narrow fact tables, dimensions that own their descriptive attributes, and no snowflaking without a reason you can state. The engine compresses by column, so the thing that determines model size and speed is cardinality — a datetime column carrying seconds is the single most expensive column in most models, and splitting it into a date and a time of day usually shrinks the model dramatically for no loss.

Two other defaults worth turning off deliberately. Automatic date tables create a hidden calendar for every date column in the model, which is invisible bloat and an inconsistent basis for time intelligence; one explicit date dimension marked as such replaces all of them. And a model with no measures, where the report authors drag columns onto visuals, has pushed all the definitional decisions into the report layer, which is how an organisation ends up with a dozen revenues.

Refresh, and what incremental actually requires

Incremental refresh is not a switch. It needs range parameters, and it needs the source query to fold — if the transformation cannot be translated into a query the source executes, the service pulls everything and filters it locally, which is the exact opposite of the intended effect and is invisible unless somebody checks.

For genuinely large or genuinely live data the choice is between importing and querying directly, and the honest framing is a trade rather than a preference: import gives you speed and the full modelling language, direct query gives you freshness and a much narrower set of things you can do without hurting the source system.

Where Power BI is the wrong choice

Where the audience is outside the organisation’s tenant and the licensing model turns into a project of its own. Where the requirement is genuinely operational — a screen that must reflect the last thirty seconds and be embedded in the workflow — because that is an application feature, not a report. And where nobody owns the semantic layer, since the tool’s accessibility guarantees divergence when there is no one to say what a term means.

There is also a fair migration question. We have written tooling to translate reporting definitions from another vendor’s format into this one, and the useful lesson from it is where automation stops: data sources, fields and visual layouts convert reasonably; calculations do not. Expressions that depend on level of detail or on the position of a row in a result have equivalents here, but the equivalent depends on the model you have built, which means a person has to decide each one. Report migration is a modelling exercise wearing a conversion tool’s clothing.

What we interview for

Ignore the dashboard portfolio and look at the model. Ask how they would handle a many-to-many relationship, what they do when a measure is correct in a total but wrong in a breakdown, and how their refresh behaves on a fact table with a hundred million rows. Developers who understand filter context explain it plainly. Report builders change the subject to visuals.

Then the governance question, which is the one that predicts whether an estate stays sane: how do you stop three people publishing three versions of the same dataset, and what did you do the last time they already had.

Teams are built for companies in the United States and the Gulf — the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. The engineers are in Pune, which matters mostly for the clock. Dubai is ninety minutes behind us and Riyadh two and a half hours, so a Gulf team shares almost the whole working day. New York is nine and a half hours behind, so American engagements run on a written handover and one fixed overlap window rather than on a standing call — a real constraint, and better stated than discovered.

What these engineers do

  • Star schema semantic models with DAX measures that survive a change of filter context
  • Power Query and dataflows with incremental refresh on tables too large to reload
  • Row-level security, workspace governance and deployment pipelines across environments
  • Performance work with DAX Studio, Tabular Editor and VertiPaq analysis
  • Fabric and Direct Lake adopted where the workload warrants it, not by default

Delivered AI-first

AI assistance is used to draft DAX measures, Power Query transformations and the calculation groups behind time intelligence, and to document an inherited model that arrived with no documentation at all. Generated DAX is treated as a first draft and reconciled against a known-good figure before it reaches a report, because a measure that is wrong only under certain slicers is the single most damaging defect in this tool. Review discipline is unchanged. The measurable effect is throughput per engineer, not fewer reviews.

Tell us what the Power BI work is.

Roughly what it involves, the seniority you need, and when it has to start. We will say what it takes to staff it, or say honestly that we are not the right people for it.

A person reads every enquiry and replies within one working day.