Power BI Developer

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

200,000

HOURS PER WEEK

40

DATE UPDATED

Nov 22, 2025

JOB OVERVIEW

Senior Power BI Developer (Remote – Must Work Canadian Time Zone)

Contract / Full-Time

We are looking for an experienced Senior Power BI Developer to join our data & analytics team. The ideal candidate is highly skilled in Power BI development, administration, gateway management, modern data engineering practices, and has strong communication skills for engaging business stakeholders.

?

Key Responsibilities

Power BI Development & Modeling
• Build high-quality Power BI reports, dashboards, and paginated reports.
• Design and optimize semantic models following best practices:
• Star schema, proper relationships
• Measures over columns
• Incremental refresh
• Dataflows and Lakehouse integration
• Performance optimization (vertipaq, partitions, compression)
• Manage complex DAX calculations and optimized data modeling.

Gateway & Admin Expertise
• Administer and maintain on-premise data gateways:
• Troubleshooting refresh failures
• Monitoring logs and performance
• Gateway cluster configuration
• Credential setup, service accounts, ODBC/ODBC drivers
• Assist with Power BI tenant administration:
• Workspace governance
• Security groups (RLS/OLS)
• Usage monitoring and auditing
• Capacity and workspace management (Premium/Fabric)

Data Engineering & Integration
• Work with Azure Databricks, Delta tables, Lakehouse, and Spark pipelines.
• Integrate ADFS / SSO authentication flows where needed.
• Build scalable ETL/ELT processes and reusable data models.

?

Stakeholder Engagement
• Lead requirement-gathering sessions with business users.
• Translate business needs into technical specifications and data models.
• Provide UX/UI best-practice guidance for dashboard design.
• Conduct user training, adoption strategies, and documentation.
• Collaborate with cross-functional teams (Data Engineering, Infrastructure, Security, Product).

?

Required Skills & Experience
• 5+ years of Power BI development experience.
• Strong knowledge of gateway servers, admin tasks, and troubleshooting.
• Deep experience with Power BI Service, workspaces, security, and governance.
• Solid understanding of Azure Databricks, Delta Lake, Spark SQL.
• Experience with ADFS, SSO, Azure AD security concepts.
• Excellent understanding of semantic model best practices.
• Strong UI/UX design sense for professional dashboards.
• Comfortable working with stakeholders, gathering requirements, and leading demos.
• Must be willing to work Canadian (MT/CT/ET) time zone.

?

Preferred Qualifications
• Experience in Fabric (Lakehouse, Warehouse, Pipelines).
• Knowledge of Azure Data Factory, SQL Server, or Synapse.
• Experience in enterprise data governance.
• Strong understanding of data security and compliance.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0156
Total Execution Time  0.0176
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,506,016 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Power-BI-Developer-1519492
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0083 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0006   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1519492
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 879189
 LIMIT 1 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1519492
AND `misc`.`idIS NULL 
0.0013   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-18',ej.date_added) duration_daysDATEDIFF('2026-04-18',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-18',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1519492' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1519492 
0.0008   UPDATE employer_jobs SET hit_counts '***Nov-22-2025=124***Nov-23-2025=55***Nov-24-2025=59***Nov-25-2025=33***Nov-26-2025=33***Nov-27-2025=18***Nov-28-2025=12***Nov-29-2025=12***Nov-30-2025=10***Dec-01-2025=5***Dec-02-2025=5***Dec-03-2025=6***Dec-04-2025=11***Dec-05-2025=8***Dec-06-2025=4***Dec-08-2025=2***Dec-09-2025=3***Dec-10-2025=2***Dec-11-2025=5***Dec-12-2025=3***Dec-13-2025=3***Dec-14-2025=1***Dec-15-2025=6***Dec-16-2025=8***Dec-18-2025=2***Dec-19-2025=4***Dec-20-2025=5***Dec-21-2025=2***Dec-22-2025=18***Dec-23-2025=3***Dec-24-2025=8***Dec-25-2025=2***Dec-26-2025=3***Dec-27-2025=1***Dec-29-2025=1***Dec-30-2025=2***Dec-31-2025=2***Jan-02-2026=1***Jan-03-2026=1***Jan-04-2026=4***Jan-05-2026=7***Jan-06-2026=1***Jan-07-2026=6***Jan-08-2026=2***Jan-09-2026=4***Jan-11-2026=2***Jan-12-2026=1***Jan-13-2026=3***Jan-14-2026=3***Jan-15-2026=3***Jan-16-2026=5***Jan-17-2026=2***Jan-18-2026=3***Jan-19-2026=2***Jan-20-2026=4***Jan-21-2026=5***Jan-22-2026=4***Jan-23-2026=13***Jan-24-2026=2***Jan-25-2026=1***Jan-26-2026=10***Jan-27-2026=4***Jan-28-2026=5***Jan-29-2026=2***Jan-30-2026=1***Jan-31-2026=1***Feb-01-2026=1***Feb-02-2026=8***Feb-04-2026=2***Feb-05-2026=5***Feb-06-2026=1***Feb-07-2026=3***Feb-09-2026=2***Feb-10-2026=3***Feb-12-2026=3***Feb-13-2026=3***Feb-15-2026=2***Feb-16-2026=2***Feb-17-2026=3***Feb-18-2026=4***Feb-19-2026=3***Feb-20-2026=3***Feb-21-2026=2***Feb-22-2026=3***Feb-24-2026=9***Feb-27-2026=1***Feb-28-2026=1***Mar-01-2026=2***Mar-04-2026=3***Mar-07-2026=1***Mar-08-2026=1***Mar-09-2026=2***Mar-10-2026=7***Mar-11-2026=2***Mar-12-2026=4***Mar-14-2026=1***Mar-17-2026=2***Mar-20-2026=1***Mar-22-2026=1***Mar-26-2026=6***Mar-27-2026=3***Mar-28-2026=1***Mar-30-2026=1***Mar-31-2026=3***Apr-01-2026=2***Apr-03-2026=1***Apr-04-2026=3***Apr-05-2026=1***Apr-06-2026=2***Apr-08-2026=2***Apr-14-2026=1***Apr-18-2026=1' WHERE job_id'1519492'  
0.0009   UPDATE employer_jobs SET monthly_hits '***Nov-2025=356***Dec-2025=125***Jan-2026=102***Feb-2026=64***Mar-2026=41***Apr-2026=13' WHERE job_id'1519492'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1519492' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1519492 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '879189'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)