Power BI Developer
Experience: 5–6 years | Location: Dhahran/Khobar, KSA — onsite only | Duration: 3 months (extension possible) | Availability: Immediate
Role Overview
Deliver the reporting and visualization layer of the MRO Inventory Optimization platform — building performant, governed Power BI models and dashboards for operational users and executives, sourced from BigQuery and the project's data services.
Must-Have — technical depth expected
- Power BI: End-to-end report development, visual selection and design, drill-through, bookmarks, tooltips, performance tuning (reducing visual/query load).
- DAX: Measures vs calculated columns, CALCULATE and filter context, time-intelligence functions, iterators (SUMX/AVERAGEX), variables, debugging context transition.
- Power Query (M): Data shaping, merges/appends, parameterization, query folding awareness, handling incremental refresh sources.
- Data modeling: Star schema design, fact/dimension modeling, relationship cardinality and filter direction, avoiding many-to-many pitfalls, optimizing model size (column cardinality, aggregations).
- SQL / BigQuery: Writing and tuning source queries, DirectQuery vs Import trade-offs, working with partitioned warehouse tables.
- Row-Level Security (RLS): Static and dynamic RLS, role definitions, USERPRINCIPALNAME-based filtering, testing security roles.
Good-to-Have
Paginated reports (Report Builder), Power BI Service administration (workspaces, gateways, refresh schedules, deployment pipelines), data governance (sensitivity labels, lineage, certified datasets), Python/R visuals or scripting, Azure DevOps for version control and deployment.
Scope of Work
- Build KPI dashboards for inventory metrics (stock levels, turnover, carrying cost, stockout risk, slow-moving/obsolete inventory).
- Develop inventory analytics views with drill-down by plant, material group, and criticality.
- Create executive dashboards with high-level summaries and trend analysis.
- Design the underlying semantic model, implement RLS for multi-plant/role access, and optimize refresh performance.