Power BI Consultant

⭐ - Featured Role | Apply direct with Data Freelance Hub
This role is for a Power BI Consultant with a contract length of "unknown" and a pay rate of "unknown." Requires 5+ years of Power BI experience, strong SQL skills, and proficiency in data modeling and ETL processes. Location: "unknown."
🌎 - Country
United States
💱 - Currency
$ USD
💰 - Day rate
Unknown
Unknown
🗓️ - Date discovered
April 4, 2025
🕒 - Project duration
Unknown
🏝️ - Location type
Unknown
📄 - Contract type
Unknown
🔒 - Security clearance
Unknown
📍 - Location detailed
Houston, TX
🧠 - Skills detailed
#SQL (Structured Query Language) #Power Automate #Python #Data Engineering #"ETL (Extract #Transform #Load)" #Tableau #Data Integration #Datasets #Azure #Data Analysis #SQL Server #Databases #DAX #BI (Business Intelligence) #Computer Science #Azure SQL #Microsoft Power BI #Qlik #R #Data Modeling #Cloud #Dataflow #Data Pipeline #Security #Consul
Role description

We are seeking an experienced Power BI Developer to join our team. The ideal candidate will design, develop, and deploy business intelligence solutions using Microsoft Power BI. This role requires a strong understanding of data modeling, ETL processes, and the ability to translate complex data into user-friendly visual reports and dashboards.

Key Responsibilities

   • Design, develop, and maintain Power BI dashboards and reports based on business requirements.

   • Collaborate with stakeholders to gather requirements, understand business processes, and identify reporting needs.

   • Develop and optimize data models to support efficient and insightful reporting.

   • Integrate data from multiple sources, ensuring accuracy and consistency.

   • Create and maintain Power BI dataflows, datasets, and workspaces.

   • Implement row-level security and manage permissions within Power BI.

   • Provide performance tuning for Power BI reports and data models.

   • Work with data engineers and architects to improve data pipelines and ensure robust data availability.

   • Stay updated on Power BI best practices and emerging features.

   • Train and support users on Power BI report usage and self-service analytics.

Qualifications

Education

   • Bachelor’s degree in Computer Science, Information Systems, or a related field.

Experience

   • 5+ years of experience as a Power BI Developer or in a similar role.

Technical Skills

   • Proficiency in Power BI, including DAX (Data Analysis Expressions) and Power Query.

   • Strong knowledge of SQL and relational databases (e.g., SQL Server, Azure SQL).

   • Experience with data modeling, ETL processes, and data integration techniques.

   • Familiarity with data warehousing concepts and cloud platforms (Azure preferred).

Soft Skills

   • Excellent analytical and problem-solving abilities.

   • Strong communication skills to explain complex data and analyses to non-technical stakeholders.

Preferred Skills

   • Experience with Paginated Reports, Power Automate, and Power Apps.

   • Knowledge of Python or R for advanced analytics.

   • Familiarity with other BI tools such as Tableau, Qlik, or Cognos.

This role is ideal for a data professional passionate about leveraging Power BI to deliver impactful business insights and empower data-driven decision-making.

### Turned off script const MAX_VIEWS_PER_DAY = 5; // Function to get the current date in YYYY-MM-DD format function getCurrentDate() { return new Date().toISOString().split('T')[0]; } // Function to manage role description views (only for logged-in users) function manageRoleViews() { const today = getCurrentDate(); let viewData = JSON.parse(localStorage.getItem('roleViewData')) || {}; // Check if the data for today exists, if not, initialize it if (!viewData[today]) { viewData[today] = { count: 0 }; } // Update the count and check if the limit is reached if (viewData[today].count < MAX_VIEWS_PER_DAY) { viewData[today].count++; localStorage.setItem('roleViewData', JSON.stringify(viewData)); console.log(`✅ View count updated: ${viewData[today].count} of ${MAX_VIEWS_PER_DAY}`); return true; // Allow viewing } else { console.log("❌ View limit reached."); return false; // Limit reached } } // Function to display role descriptions and manage button visibility function displayRoleDescriptions() { const roleDescriptions = document.querySelectorAll('.role-description'); const applyButton = document.querySelector('.apply-button'); const upgradeMessage = document.querySelector('.upgrade-message'); const upgradeButton = document.querySelector('.upgrade-button'); let canView = manageRoleViews(); // Check if the user can view more descriptions roleDescriptions.forEach((desc) => { desc.style.display = canView ? 'block' : 'none'; }); if (canView) { applyButton.style.display = 'block'; upgradeMessage.style.display = 'none'; upgradeButton.style.display = 'none'; } else { applyButton.style.display = 'none'; upgradeMessage.style.display = 'block'; upgradeButton.style.display = 'block'; } } // Run only if the user is logged in document.addEventListener("DOMContentLoaded", function () { if (window.$memberstackDom) { window.$memberstackDom.getCurrentMember().then((member) => { if (member && member.data) { console.log("✅ User is logged in:", member.data.id); displayRoleDescriptions(); // Apply view limits } else { console.log("❌ User is NOT logged in - script will not run."); } }).catch((err) => console.error("⚠️ Error fetching Memberstack user:", err)); } else { console.log("⚠️ Memberstack DOM is not available. Script will not run."); } }); script document.addEventListener('DOMContentLoaded', function() { fetch('https://ipwho.is/') .then(response => response.json()) .then(data => { if (data.country && data.success) { const standardPriceElements = document.querySelectorAll('[ms-code-display-price]'); const lowerPriceElements = document.querySelectorAll('[ms-code-display-price-lower]'); let standardPrice = '$74.99'; // Default USD price let lowerPrice = '$19.99'; // Default lower-tier USD price const pricing = { 'United Kingdom': { standard: '£59.99', lower: '£16.99' }, 'Canada': { standard: 'C$109.99', lower: 'C$29.99' }, 'India': { standard: '₹5999', lower: '₹1399' }, 'Pakistan': { standard: 'Rs 18999', lower: 'Rs 4479' }, 'Australia': { standard: 'A$119.99', lower: 'A$29.99' }, 'South Africa': { standard: 'R1399.99', lower: 'R299.99' } }; const euroCountries = [ 'Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'Czechia', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland', 'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden' ]; if (pricing[data.country]) { standardPrice = pricing[data.country].standard; lowerPrice = pricing[data.country].lower; } else if (euroCountries.includes(data.country)) { standardPrice = '€69.99'; lowerPrice = '€19.99'; } standardPriceElements.forEach(element => { element.textContent = standardPrice; }); lowerPriceElements.forEach(element => { element.textContent = lowerPrice; }); } }) .catch(error => { console.error('Error fetching country:', error); }); });