> ## Documentation Index
> Fetch the complete documentation index at: https://rajanand.org/llms.txt
> Use this file to discover all available pages before exploring further.

# About me

export const mySkills = [{
  category: 'Programming Languages & Frameworks',
  icon: 'code',
  iconType: 'duotone',
  skills: [{
    name: 'SQL',
    level: 5,
    iconUrl: '/assets/icons/azure-sql.svg',
    icon: 'database',
    iconType: 'duotone',
    description: ['Designing complex [queries](/sql) for reporting', 'Optimizing performance of database queries', 'Creating data views for BI reports'],
    lastUsed: 'This Week',
    experience: '10+ years'
  }, {
    name: 'T-SQL',
    level: 5,
    iconUrl: '/assets/icons/azure-sql-database.svg',
    icon: 'database-script',
    iconType: 'duotone',
    description: ['Developing stored procedures and functions and Managing database objects in SQL Server'],
    coursesTaken: ["SQL 101", "Advanced SQL Performance Tuning"],
    certificationsEarned: ["[MCSE](/certifications/microsoft): Data Management and Analytics", "MCSA: SQL 2016 Database Development"],
    lastUsed: 'This Week',
    experience: '10+ years'
  }, {
    name: 'Python',
    level: 3,
    iconUrl: '/assets/icons/python.svg',
    icon: 'python',
    iconType: 'brands',
    description: ['Writing scripts for data transformation', 'Automating data workflows', 'Developing data analysis tools'],
    lastUsed: 'This Week',
    experience: '3+ years'
  }, {
    name: 'Spark',
    level: 4,
    iconUrl: '/assets/icons/apache-spark.svg',
    icon: 'grip-fire',
    iconType: 'duotone',
    description: ['Processing large datasets using PySpark', 'Building distributed data applications'],
    lastUsed: 'This Week',
    experience: '3+ years'
  }, {
    name: 'pandas',
    level: 3,
    iconUrl: '/assets/icons/pandas.svg',
    icon: 'panda',
    iconType: 'duotone',
    description: ['Used pandas library for data cleaning and processing', 'Creating data frames for analysis', 'Integrating with other Python libraries'],
    lastUsed: 'This Week',
    experience: '1+ years'
  }, {
    name: 'NumPy',
    level: 3,
    iconUrl: '/assets/icons/numpy.svg',
    icon: 'cube',
    iconType: 'duotone',
    description: ['Used NumPy for numerical computations and data manipulation', 'Creating arrays and matrices for data analysis', 'Integrating with pandas for enhanced data processing'],
    lastUsed: 'This Week',
    experience: '<1y'
  }, {
    name: 'PowerShell',
    level: 2,
    iconUrl: '/assets/icons/powershell.svg',
    icon: 'dollar-sign',
    iconType: 'duotone',
    description: ['Automating system administration tasks', 'Writing scripts for data extraction and manipulation'],
    lastUsed: 'Feb 2025',
    experience: '1y'
  }, {
    name: 'Batch',
    level: 2,
    iconUrl: '/assets/icons/shell.png',
    icon: 'shell',
    iconType: 'duotone',
    description: ['Writing batch scripts for automation tasks', 'Managing system processes and file operations'],
    lastUsed: '2023',
    experience: '1y'
  }]
}, {
  category: 'Data Platforms & Cloud Ecosystems',
  icon: 'cloud',
  iconType: 'duotone',
  skills: [{
    name: 'Azure',
    level: 4,
    isActive: true,
    iconUrl: '/assets/icons/azure.svg',
    icon: 'azure',
    iconType: 'brands',
    description: ['Working with Data Engineering features in Azure', 'Building end-to-end data pipelines'],
    lastUsed: 'This Week'
  }, {
    name: 'GCP',
    level: 2,
    isActive: true,
    iconUrl: '/assets/icons/google-cloud.svg',
    icon: 'google',
    iconType: 'brands',
    description: ['Utilizing cloud services for data projects'],
    lastUsed: 'Jan 2025'
  }, {
    name: 'AWS',
    level: 1,
    isActive: true,
    iconUrl: '/assets/icons/aws.svg',
    icon: 'azure',
    iconType: 'brands',
    description: ['Knowledge of core AWS services for data processing'],
    lastUsed: 'Feb 2025'
  }, {
    name: 'Oracle Cloud',
    level: 2,
    iconUrl: '/assets/icons/oracle.svg',
    icon: 'database',
    iconType: 'duotone',
    description: ['Working with basic cloud infrastructure'],
    lastUsed: 'Mar 2025',
    experience: '6m'
  }, {
    name: 'Azure Synapse',
    level: 4,
    iconUrl: '/assets/icons/azure-synapse-analytics.svg',
    icon: 'box',
    iconType: 'duotone',
    description: ['Building analytics solutions', 'Integrating with various data sources'],
    lastUsed: 'This Week'
  }, {
    name: 'Fabric',
    level: 3,
    iconUrl: '/assets/icons/microsoft-fabric.svg',
    icon: 'microsoft',
    iconType: 'brands',
    description: ['Working with Data Engineering features in Fabric', 'Building end-to-end data pipelines'],
    certificationsEarned: ['[Microsoft](/certifications/microsoft) Certified: Fabric Data Engineer Associate', 'Microsoft Certified: Fabric Analytics Engineer Associate'],
    lastUsed: 'Apr 2025'
  }, {
    name: 'Databricks',
    level: 3,
    iconUrl: '/assets/icons/databricks.svg',
    icon: 'cloud',
    iconType: 'duotone',
    description: ['Developing PySpark notebooks for ETL', 'Managing data in the Lakehouse platform'],
    lastUsed: 'Apr 2025'
  }, {
    name: 'Snowflake',
    level: 1,
    iconUrl: '/assets/icons/snowflake.png',
    icon: 'snowflake',
    iconType: 'duotone',
    description: ['Designing data warehouse solutions', 'Optimizing queries for performance'],
    lastUsed: 'Jul 2025'
  }, {
    name: 'BigQuery',
    level: 2,
    iconUrl: '/assets/icons/google-bigquery.png',
    icon: 'box',
    iconType: 'duotone',
    description: ['Running large-scale queries', 'Designing data warehouses for analytics'],
    lastUsed: 'Feb 2025'
  }, {
    name: 'Redshift',
    level: 1,
    isActive: false,
    iconUrl: '/assets/icons/redshift.png',
    icon: 'redshift',
    iconType: 'duotone',
    description: [''],
    lastUsed: 'Feb 2021'
  }, {
    name: 'ClickHouse',
    level: 1,
    isActive: true,
    iconUrl: '/assets/icons/clickhouse.svg',
    icon: 'clickhouse',
    iconType: 'duotone',
    description: ['Exploring for analytical workloads'],
    lastUsed: 'Sep 2025'
  }]
}, {
  category: 'Databases & Data Storage',
  icon: 'database',
  iconType: 'duotone',
  skills: [{
    name: 'SQL Server',
    level: 5,
    iconUrl: '/assets/icons/sql-server.svg',
    icon: 'server',
    iconType: 'duotone',
    description: ['Managing databases for audit processes', 'Designing tables and relationships'],
    lastUsed: 'This Week'
  }, {
    name: 'Data Warehousing',
    level: 5,
    iconUrl: '/assets/icons/azure-sql-data-warehouse.svg',
    icon: 'warehouse',
    iconType: 'duotone',
    description: ['Designing and implementing data warehouses', 'Building star and snowflake schemas'],
    lastUsed: 'This Week'
  }, {
    name: 'Data lake',
    level: 4,
    icon: 'water',
    iconType: 'duotone',
    description: ['Managing raw data for analytics', 'Understanding data lake architecture'],
    lastUsed: 'This Month'
  }, {
    name: 'ADLS',
    level: 4,
    iconUrl: '/assets/icons/azure-data-lake-storage.svg',
    icon: 'water',
    iconType: 'duotone',
    description: ['Utilizing for large-scale data storage', 'Integrating with Azure services'],
    lastUsed: 'This Week'
  }, {
    name: 'Access',
    level: 3,
    iconUrl: '/assets/icons/microsoft-access.png',
    icon: 'table',
    iconType: 'duotone',
    description: ['Creating and managing simple databases', 'Developing VBA scripts for automation'],
    lastUsed: 'Jun 2025'
  }, {
    name: 'Dimensional Modelling',
    level: 4,
    icon: 'diagram-project',
    iconType: 'duotone',
    description: ['Designing star and snowflake schemas for BI', 'Creating fact and dimension tables'],
    lastUsed: 'Nov 2025'
  }, {
    name: 'Data Architecture',
    level: 4,
    icon: 'diagram-project',
    iconType: 'duotone',
    description: ['Designing and implementing data architectures', 'Creating data flow diagrams and documentation'],
    lastUsed: 'Jan 2026'
  }]
}, {
  category: 'Data Transformation & Orchestration',
  icon: 'arrows-spin',
  iconType: 'duotone',
  skills: [{
    name: 'ETL',
    level: 4,
    icon: 'arrow-right-arrow-left',
    iconType: 'duotone',
    description: ['Designing and implementing ETL pipelines', 'Working with various data sources and destinations'],
    lastUsed: 'Oct 2024'
  }, {
    name: 'ELT',
    level: 4,
    icon: 'arrow-right-arrow-left',
    iconType: 'duotone',
    description: ['Building modern data pipelines for cloud warehouses', 'Optimizing for performance and scalability'],
    lastUsed: 'This Month'
  }, {
    name: 'SSIS',
    level: 5,
    iconUrl: '/assets/icons/microsoft-sql-server.svg',
    icon: 'gears',
    iconType: 'duotone',
    description: ['Developing and deploying integration packages', 'Automating data movement tasks'],
    lastUsed: '2024'
  }, {
    name: 'Data Factory',
    level: 3,
    iconUrl: '/assets/icons/azure-data-factory.svg',
    icon: 'gears',
    iconType: 'duotone',
    description: ['Orchestrating data pipelines in the cloud', 'Connecting to various data sources'],
    lastUsed: 'Jul 2024'
  }, {
    name: 'Power Query',
    level: 3,
    icon: 'plug',
    iconType: 'duotone',
    description: ['Cleaning and transforming data in Power BI and Excel', 'Building reusable queries'],
    lastUsed: 'Dec 2023'
  }]
}, {
  category: 'Business Intelligence & Reporting',
  icon: 'chart-line',
  iconType: 'duotone',
  skills: [{
    name: 'Power BI',
    level: 3,
    iconUrl: '/assets/icons/microsoft-power-bi.svg',
    icon: 'chart-simple',
    iconType: 'duotone',
    description: ['Designing interactive dashboards', 'Creating data models and reports'],
    certificationsEarned: ['Microsoft Certified: Power BI Data Analyst Associate', 'MCSA: BI Reporting'],
    lastUsed: 'Apr 2024'
  }, {
    name: 'Tableau',
    level: 2,
    iconUrl: '/assets/icons/tableau.png',
    icon: 'chart-line',
    iconType: 'duotone',
    description: ['Building powerful data visualizations', 'Creating and publishing reports'],
    lastUsed: '2022'
  }, {
    name: 'MicroStrategy',
    level: 1,
    icon: 'bitcoin',
    iconType: 'duotone',
    description: ['Developing reports and dossiers', 'Connecting to data sources for analysis'],
    lastUsed: '2020'
  }, {
    name: 'SSRS',
    level: 3,
    icon: 'file-lines',
    iconType: 'duotone',
    description: ['Designing paginated reports', 'Managing report deployments'],
    certificationsEarned: ['MCSA: BI Reporting'],
    lastUsed: '2024'
  }, {
    name: 'Looker Studio',
    level: 1,
    isActive: false,
    icon: 'magnifying-glass-chart',
    iconType: 'duotone',
    description: ['Creating dashboards for data insights', 'Connecting to Google Cloud data sources'],
    lastUsed: '2018'
  }]
}, {
  category: 'Project Methodologies',
  icon: 'list-check',
  iconType: 'duotone',
  skills: [{
    name: 'Agile methodologies',
    level: 3,
    icon: 'list-check',
    iconType: 'duotone',
    description: ['Working in Agile environments', 'Participating in Scrum and Kanban processes'],
    lastUsed: 'This Week'
  }, {
    name: 'Waterfall',
    level: 2,
    isActive: false,
    icon: 'waterfall',
    iconType: 'duotone',
    description: ['Understanding the Waterfall project lifecycle'],
    lastUsed: '2024'
  }, {
    name: 'Scrum',
    level: 3,
    icon: 'list-check',
    iconType: 'duotone',
    description: ['Participating in sprints and stand-ups', 'Using Scrum to manage project tasks'],
    lastUsed: 'This Week'
  }, {
    name: 'Kanban',
    level: 2,
    icon: 'list-check',
    iconType: 'duotone',
    description: ['Using Kanban boards for continuous flow', 'Managing tasks and work in progress'],
    lastUsed: '2023'
  }]
}, {
  category: 'Tools & Utilities',
  icon: 'toolbox',
  iconType: 'duotone',
  skills: [{
    name: 'SSMS',
    level: 5,
    iconUrl: '/assets/icons/ssms.png',
    icon: 'server',
    iconType: 'duotone',
    description: ['Administering and managing SQL Server databases', 'Executing ad-hoc queries'],
    lastUsed: 'This Week'
  }, {
    name: 'Visual Studio Code',
    level: 5,
    iconUrl: '/assets/icons/visual-studio-code.svg',
    icon: 'code',
    iconType: 'duotone',
    description: ['Writing and debugging code', 'Integrating with Git for version control'],
    lastUsed: 'This Week'
  }, {
    name: 'Visual Studio',
    level: 4,
    iconUrl: '/assets/icons/visual-studio.svg',
    icon: 'code',
    iconType: 'duotone',
    description: ['Developing SSIS packages', 'Working with C# and .NET projects'],
    lastUsed: '2024'
  }, {
    name: 'Git',
    level: 4,
    iconUrl: '/assets/icons/git.svg',
    icon: 'git-alt',
    iconType: 'brands',
    description: ['Managing project code in GitHub', 'Collaborating on projects using branches'],
    lastUsed: 'This Month'
  }, {
    name: 'Excel',
    level: 4,
    iconUrl: '/assets/icons/microsoft-excel.png',
    icon: 'file-excel',
    iconType: 'brands',
    description: ['Analyzing data using formulas and pivot tables', 'Building reports and dashboards'],
    certificationsEarned: ['MCSA: BI Reporting'],
    lastUsed: 'This Week'
  }, {
    name: 'Markdown',
    level: 5,
    iconUrl: '/assets/icons/markdown.svg',
    icon: 'markdown',
    iconType: 'duotone',
    description: ['This entire website is powered by Markdown', 'Writing documentation and README files'],
    lastUsed: 'This Month'
  }]
}];

export const SkillsMatrix = ({skills}) => {
  console.log('SkillsMatrix received skills:', skills);
  if (!skills || !Array.isArray(skills) || skills.length === 0) {
    console.error('Skills data is missing or invalid');
    return <p className="text-red-500">Error: Skills data is missing or invalid.</p>;
  }
  const proficiencyLevels = {
    5: 'Expert',
    4: 'Advanced',
    3: 'Intermediate',
    2: 'Knowledgeable',
    1: 'Basic'
  };
  const [activeFilter, setActiveFilter] = useState(0);
  const [hoveredSkill, setHoveredSkill] = useState(null);
  const [selectedSkill, setSelectedSkill] = useState(null);
  const handleSkillClick = skill => {
    setSelectedSkill(skill);
    setHoveredSkill(null);
    console.log('Clicked skill:', skill.name);
  };
  const handleSkillHover = skill => {
    setHoveredSkill(skill);
    console.log('Hovered skill:', skill.name);
  };
  const handleMouseLeave = () => {
    setHoveredSkill(null);
    console.log('Mouse left, selected skill:', selectedSkill?.name);
  };
  const parseMarkdownLinks = text => {
    try {
      const linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
      let lastIndex = 0;
      const elements = [];
      let match;
      while ((match = linkRegex.exec(text)) !== null) {
        const [fullMatch, linkText, linkUrl] = match;
        const startIndex = match.index;
        if (startIndex > lastIndex) {
          elements.push(text.slice(lastIndex, startIndex));
        }
        elements.push(<a key={startIndex} href={linkUrl} className="text-primary font-bold underline">{linkText}</a>);
        lastIndex = startIndex + fullMatch.length;
      }
      if (lastIndex < text.length) {
        elements.push(text.slice(lastIndex));
      }
      return elements.length > 1 ? elements : text;
    } catch (error) {
      console.error('Error parsing Markdown links:', error);
      return text;
    }
  };
  const renderStars = level => {
    const stars = [];
    for (let i = 1; i <= level; i++) {
      stars.push(<span key={i} className="text-yellow-500 dark:text-yellow-400">⭐</span>);
    }
    return stars;
  };
  const filters = [{
    level: 0,
    label: 'All'
  }, ...Object.entries(proficiencyLevels).map(([level, label]) => ({
    level: parseInt(level),
    label
  })).sort((a, b) => b.level - a.level)];
  const displayedSkill = hoveredSkill || selectedSkill;
  return <div className="not-prose space-y-8">
      <div className="flex flex-wrap gap-3">
        {filters.map(filter => <button key={filter.level} onClick={() => {
    setActiveFilter(filter.level);
    setSelectedSkill(null);
    setHoveredSkill(null);
    console.log('Filter set to:', filter.label);
  }} className={`px-4 py-2 text-sm rounded-full font-medium transition-colors ${activeFilter === filter.level ? 'bg-black text-white dark:bg-white dark:text-black' : 'bg-gray-100 text-black hover:bg-gray-200 dark:bg-white/10 dark:text-white dark:hover:bg-white/20'}`}>
            {filter.label}
          </button>)}
      </div>

      <div className="grid grid-cols-1 lg:grid-cols-3 gap-8">
        <div className="lg:col-span-2">
          <div className="grid grid-cols-1 md:grid-cols-2 gap-8">
            {skills.map((skillCategory, index) => {
    if (!skillCategory || !skillCategory.skills) {
      console.warn(`Invalid skill category at index ${index}`);
      return null;
    }
    const filteredSkills = activeFilter === 0 ? skillCategory.skills.filter(skill => skill.isActive !== false) : skillCategory.skills.filter(skill => skill.isActive !== false && skill.level === activeFilter);
    if (filteredSkills.length === 0) {
      return null;
    }
    return <div key={skillCategory.category || index} className="p-6 bg-white dark:bg-white/5 border border-gray-200 dark:border-gray-700 rounded-2xl">
                  <div className="flex justify-between items-center mb-4">
                    <h3 className="text-lg font-semibold text-gray-900 dark:text-white">
                      {skillCategory.category || 'Unnamed Category'}
                    </h3>
                    {skillCategory.icon ? <Icon icon={skillCategory.icon} iconType={skillCategory.iconType || 'regular'} size={24} className="text-gray-900 dark:text-white" /> : <span className="text-gray-900 dark:text-white">❓</span>}
                  </div>
                  <div className="flex flex-wrap gap-2">
                    {filteredSkills.map(skill => <span key={skill.name} className={`px-3 py-1 text-sm font-medium rounded-full cursor-pointer transition-colors box-border flex items-center ${displayedSkill?.name === skill.name ? 'bg-primary text-white dark:text-white' : 'bg-gray-100 text-black hover:bg-gray-200 dark:bg-white/10 dark:text-white dark:hover:bg-white/20'}`} onClick={() => handleSkillClick(skill)} onMouseEnter={() => handleSkillHover(skill)} onMouseLeave={handleMouseLeave}>
                        {skill.iconUrl ? <img src={skill.iconUrl} alt={`${skill.name} icon`} className="w-5 h-5 object-contain mr-2 pointer-events-none" onError={e => {
      console.error(`Failed to load image in pill: ${skill.iconUrl}`);
      e.target.style.display = 'none';
    }} /> : skill.icon ? <span className="mr-2">
                            <Icon icon={skill.icon} iconType={skill.iconType || 'regular'} size={20} className="text-current" />
                          </span> : null}
                        {skill.name}
                      </span>)}
                  </div>
                </div>;
  })}
          </div>
        </div>
        <div className="lg:col-span-1">
          <div className="p-6 bg-white dark:bg-white/5 border border-gray-200 dark:border-gray-700 rounded-2xl flex flex-col">
            {displayedSkill ? <>
                <div className="flex items-center justify-between mb-4">
                  <h3 className="text-lg font-semibold text-gray-900 dark:text-white">
                    {displayedSkill.name}
                  </h3>
                  {displayedSkill.iconUrl ? <img src={displayedSkill.iconUrl} alt={`${displayedSkill.name} icon`} className="ml-2 w-12 h-12 object-contain" onError={e => {
    console.error(`Failed to load image: ${displayedSkill.iconUrl}`);
    e.target.style.display = 'none';
  }} /> : displayedSkill.icon ? <Icon icon={displayedSkill.icon} iconType={displayedSkill.iconType || 'regular'} size={48} className="ml-2 text-gray-900 dark:text-white" /> : <span className="ml-2 text-gray-900 dark:text-white">❓</span>}
                </div>
                {displayedSkill.description && Array.isArray(displayedSkill.description) ? <ul className="pl-5 text-sm text-gray-700 dark:text-gray-300 mb-4 flex-grow">
                    {displayedSkill.description.map((point, index) => <li key={index} className="flex items-start gap-2"><span className="text-green-500 dark:text-green-400">✅</span>{parseMarkdownLinks(point)}</li>)}
                  </ul> : <p className="text-sm text-gray-700 dark:text-gray-300 mb-4 flex-grow">No description available.</p>}
                {displayedSkill.coursesTaken && Array.isArray(displayedSkill.coursesTaken) && displayedSkill.coursesTaken.length > 0 && <ul className="pl-5 text-sm text-gray-700 dark:text-gray-300 mb-4 flex-grow">
                    {displayedSkill.coursesTaken.map((course, index) => <li key={index} className="flex items-start gap-2"><span className="text-blue-500 dark:text-blue-400">🎓</span>{parseMarkdownLinks(course)}</li>)}
                  </ul>}
                {displayedSkill.certificationsEarned && Array.isArray(displayedSkill.certificationsEarned) && displayedSkill.certificationsEarned.length > 0 && <ul className="pl-5 text-sm text-gray-700 dark:text-gray-300 mb-4 flex-grow">
                    {displayedSkill.certificationsEarned.map((cert, index) => <li key={index} className="flex items-start gap-2"><span className="text-yellow-500 dark:text-yellow-400">🏅</span>{parseMarkdownLinks(cert)}</li>)}
                  </ul>}
                <div className="mt-auto">
                  <div className="bg-gray-50 dark:bg-gray-800/20 border border-gray-200 dark:border-gray-700 rounded-md p-1">
                    <div className="flex items-center">
                      <div className="relative group flex items-center gap-2 flex-1 p-2 border-r border-gray-200 dark:border-gray-700">
                        <span className="text-gray-700 dark:text-gray-300">🕒</span>
                        <p className="text-sm text-gray-700 dark:text-gray-300">
                          {displayedSkill.lastUsed || 'Not specified'}
                        </p>
                        <span className="absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 hidden group-hover:block text-xs text-white bg-gray-800 dark:bg-gray-600 px-2 py-1 rounded whitespace-nowrap">
                          Last Used
                        </span>
                      </div>
                      <div className="relative group flex items-center gap-0.5 flex-1 p-2 border-r border-gray-200 dark:border-gray-700">
                        {displayedSkill.experience && <>
                            <span className="text-gray-700 dark:text-gray-300">💼</span>
                            <p className="text-sm text-gray-700 dark:text-gray-300">
                              {displayedSkill.experience}
                            </p>
                            <span className="absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 hidden group-hover:block text-xs text-white bg-gray-800 dark:bg-gray-600 px-2 py-1 rounded whitespace-nowrap">
                              Experience
                            </span>
                          </>}
                      </div>
                      <div className="flex items-center gap-2 flex-1 p-2">
                        {displayedSkill.level && <span className="relative group">
                            {renderStars(displayedSkill.level)}
                            <span className="absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 hidden group-hover:block text-xs text-white bg-gray-800 dark:bg-gray-600 px-2 py-1 rounded whitespace-nowrap">
                              {proficiencyLevels[displayedSkill.level]}
                            </span>
                          </span>}
                      </div>
                    </div>
                  </div>
                </div>
              </> : <p className="text-sm text-gray-500 dark:text-gray-400">
                Click a skill to see details.
              </p>}
          </div>
        </div>
      </div>
    </div>;
};

export const CertificationList = [{
  id: 'microsoft',
  label: 'Microsoft',
  items: [{
    id: 'microsoft-certified-solutions-expert-data-management-and-analytics',
    title: 'Microsoft Certified Solutions Expert: Data Management & Analytics',
    icon: 'https://mintlify-assets.b-cdn.net/tail-icon.svg',
    image: '/assets/certifications/microsoft-certified-solutions-expert-mcse-data-management-and-analytics-badge.png',
    href: '/certifications/microsoft#microsoft-certified-solutions-expert%3A-data-management-and-analytics',
    isActive: true,
    tags: ['Microsoft', 'Data', 'Analytics']
  }, {
    id: 'microsoft-certified-solutions-associate-database-development',
    title: 'Microsoft Certified Solutions Associate: Database Development',
    icon: 'https://mintlify-assets.b-cdn.net/smart-light.svg',
    image: '/assets/certifications/microsoft-certified-solutions-associate-mcsa-sql-2016-database-development-badge.png',
    href: '/certifications/microsoft#microsoft-certified-solutions-associate%3A-database-development',
    isActive: true,
    tags: ['Microsoft']
  }, {
    id: 'microsoft-certified-solutions-associate-bi-reporting',
    title: 'Microsoft Certified Solutions Associate: BI Reporting',
    icon: 'https://mintlify-assets.b-cdn.net/broom-light.svg',
    image: '/assets/certifications/microsoft-certified-solutions-associate-mcsa-business-intelligence-reporting-badge.png',
    href: '/certifications/microsoft#microsoft-certified-solutions-associate%3A-bi-reporting',
    isActive: true,
    tags: ['Microsoft']
  }, {
    id: 'microsoft-certified-azure-data-engineer-associate',
    title: 'Microsoft Certified: Azure Data Engineer Associate',
    icon: 'https://mintlify-assets.b-cdn.net/tail-icon.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/microsoft-certified-azure-data-engineer-associate-badge.png',
    href: '/certifications/microsoft#microsoft-certified%3A-azure-data-engineer-associate',
    isActive: true,
    tags: ['Microsoft']
  }, {
    id: 'microsoft-certified-fabric-data-engineer-associate',
    title: 'Microsoft Certified: Fabric Data Engineer Associate',
    icon: 'https://mintlify-assets.b-cdn.net/broom-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/microsoft-certified-fabric-data-engineer-associate-badge.png',
    href: '/certifications/microsoft#microsoft-certified%3A-fabric-data-engineer-associate',
    isActive: true,
    tags: ['Microsoft']
  }, {
    id: 'microsoft-certified-fabric-analytics-engineer-associate',
    title: 'Microsoft Certified: Fabric Analytics Engineer Associate',
    icon: 'https://mintlify-assets.b-cdn.net/smart-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/microsoft-certified-fabric-analytics-engineer-associate-badge.png',
    href: '/certifications/microsoft#microsoft-certified%3A-fabric-analytics-engineer-associate',
    isActive: true,
    tags: ['Microsoft']
  }, {
    id: 'microsoft-certified-power-bi-data-analyst-associate',
    title: 'Microsoft Certified: Power BI Analyst Associate',
    icon: 'https://mintlify-assets.b-cdn.net/tail-icon.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/microsoft-certified-power-bi-data-analyst-associate-badge.png',
    href: '/certifications/microsoft#microsoft-certified%3A-power-bi-data-analyst-associate',
    isActive: true,
    tags: ['Microsoft']
  }]
}, {
  id: 'databricks',
  label: 'Databricks',
  items: [{
    id: 'databricks-certified-data-engineer-associate',
    title: 'Databricks Certified Data Engineer Associate',
    desc: 'Designing and implementing data engineering solutions using Databricks',
    icon: 'https://mintlify-assets.b-cdn.net/neural-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/databricks-certified-data-engineer-associate-badge.png',
    href: '/certifications/databricks#databricks-certified-data-engineer-associate',
    isActive: true,
    tags: ['Databricks']
  }]
}, {
  id: 'snowflake',
  label: 'Snowflake',
  items: [{
    id: 'snowpro-associate-platform-certification',
    title: 'SnowPro Associate: Platform Certification',
    desc: 'Understanding Snowflake data platform and its features',
    icon: 'https://mintlify-assets.b-cdn.net/neural-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/snowflake-snowpro-associate-platform-certification-badge.png',
    href: '/certifications/snowflake#snowpro-associate:-platform-certification',
    isActive: true,
    tags: ['Snowflake']
  }]
}, {
  id: 'google',
  label: 'Google',
  items: [{
    id: 'google-cloud-certified-associate-cloud-engineer',
    title: 'Google Cloud Certified Associate Cloud Engineer',
    desc: 'Deploying applications, monitoring operations, and managing enterprise solutions on Google Cloud',
    icon: 'https://mintlify-assets.b-cdn.net/neural-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/google-cloud-associate-cloud-engineer-badge.png',
    href: '/certifications/google#google-cloud-certified-associate-cloud-engineer',
    isActive: true,
    tags: ['Google']
  }]
}, {
  id: 'tableau',
  label: 'Tableau',
  items: [{
    id: 'tableau-desktop-specialist',
    title: 'Tableau Desktop Specialist',
    desc: 'Able to connect to Tableau desktop and prepare, explore and analyze data, and share insights.',
    icon: 'https://mintlify-assets.b-cdn.net/neural-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/tableau-desktop-specialist-badge.png',
    href: '/certifications/tableau#tableau-desktop-specialist-certification',
    isActive: true,
    tags: ['Tableau']
  }]
}, {
  id: 'oracle',
  label: 'Oracle',
  items: [{
    id: 'oracle-autonomous-database-cloud-2019-certified-specialist',
    title: 'Oracle Autonomous Database Cloud 2019 Certified Specialist',
    desc: 'Specialized in Oracle Autonomous Database Cloud services',
    icon: 'https://mintlify-assets.b-cdn.net/tail-icon.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/oracle-autonomous-database-cloud-2019-specialist-badge.png',
    href: '/certifications/oracle',
    isActive: true,
    tags: ['Oracle']
  }, {
    id: 'oracle-cloud-infrastructure-2019-certified-architect-associate',
    title: 'Oracle Cloud Infrastructure 2019 Certified Architect Associate',
    desc: 'Architecting and managing Oracle Cloud Infrastructure solutions',
    icon: 'https://mintlify-assets.b-cdn.net/smart-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/oracle-cloud-infrastructure-2019-certified-architect-associate-badge.png',
    href: '/certifications/oracle#oracle-cloud-infrastructure-2019-certified-architect-associate',
    isActive: true,
    tags: ['Oracle']
  }, {
    id: 'oracle-cloud-infrastructure-2019-certified-cloud-operations-associate',
    title: 'Oracle Cloud Infrastructure 2019 Certified Cloud Operations Associate',
    desc: 'Managing and operating Oracle Cloud Infrastructure services',
    icon: 'https://mintlify-assets.b-cdn.net/broom-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/oracle-cloud-infrastructure-2019-cloud-operations-certified-associate-badge.png',
    href: '/certifications/oracle#oracle-cloud-infrastructure-2019-certified-cloud-operations-associate',
    isActive: true,
    tags: ['Oracle']
  }, {
    id: 'oracle-cloud-infrastructure-foundations-2021-certified-associate',
    title: 'Oracle Cloud Infrastructure Foundations 2021 Certified Associate',
    desc: 'Foundational knowledge of Oracle Cloud Infrastructure services',
    icon: 'https://mintlify-assets.b-cdn.net/neural-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/oracle-cloud-infrastructure-foundations-2021-associate-badge.png',
    href: '/certifications/oracle#oracle-cloud-infrastructure-foundations-2021-certified-associate',
    isActive: true,
    tags: ['Oracle']
  }, {
    id: 'oracle-cloud-infrastructure-foundations-2020-certified-associate',
    title: 'Oracle Cloud Infrastructure Foundations 2020 Certified Associate',
    desc: 'Foundational knowledge of Oracle Cloud Infrastructure services',
    icon: 'https://mintlify-assets.b-cdn.net/neural-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/oracle-cloud-infrastructure-foundations-2020-associate-badge.png',
    href: '/certifications/oracle#oracle-cloud-infrastructure-foundations-2020-certified-associate',
    isActive: true,
    tags: ['Oracle']
  }]
}, {
  id: 'github',
  label: 'Github',
  items: [{
    id: 'github-foundations-certification',
    title: 'GitHub Foundations Certification',
    desc: ' GitHub basics like repositories, commits, branching, markdowns, and project management.',
    icon: 'https://mintlify-assets.b-cdn.net/smart-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/github-foundations-badge.png',
    href: '/certifications/github#github-foundations-certification',
    isActive: true,
    tags: ['Github']
  }]
}, {
  id: 'microstrategy',
  label: 'MicroStrategy',
  items: [{
    id: 'microstrategy-certified-analyst',
    title: 'MicroStrategy Certified Analyst',
    icon: 'https://mintlify-assets.b-cdn.net/tail-icon.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/microstrategy-certified-analyst-badge.png',
    href: '/certifications/microstrategy#microstrategy-certified-analyst',
    isActive: false,
    tags: ['MicroStrategy']
  }, {
    id: 'microstrategy-certified-application-architect',
    title: 'MicroStrategy Certified Application Architect',
    icon: 'https://mintlify-assets.b-cdn.net/smart-light.svg',
    image: 'https://raw.githubusercontent.com/rajanand/rajanand-ilangovan/refs/heads/master/certifications/microstrategy-certified-application-architect-badge.png',
    href: '/certifications/microstrategy#microstrategy-certified-application-architect',
    isActive: false,
    tags: ['MicroStrategy']
  }]
}];

export const ProductTiles = ({categories: initialCategories, hideButtons = false, showInactive = false, filterByCategory = null}) => {
  if (!initialCategories || initialCategories.length === 0) {
    return null;
  }
  const activeAndFilteredCategories = initialCategories.map(category => ({
    ...category,
    items: category.items.filter(item => {
      const isActive = item.isActive === undefined ? true : item.isActive;
      return isActive || showInactive;
    })
  })).filter(category => category.items.length > 0);
  const categoriesToShow = filterByCategory ? activeAndFilteredCategories.filter(cat => cat.id === filterByCategory) : activeAndFilteredCategories;
  const [activeCategory, setActiveCategory] = useState(categoriesToShow[0]?.id || null);
  const [activeSubTab, setActiveSubTab] = useState(categoriesToShow[0]?.items[0]?.id ?? null);
  const currentCategory = categoriesToShow.find(cat => cat.id === activeCategory);
  const currentSub = currentCategory?.items.find(item => item.id === activeSubTab);
  if (categoriesToShow.length === 0) {
    return <p className="text-sm text-gray-500 dark:text-gray-400">
            No items available to display.
        </p>;
  }
  return <div className="not-prose space-y-6">
      {!hideButtons && !filterByCategory && <div className="flex flex-wrap gap-2">
          {categoriesToShow.map(cat => <button key={cat.id} onClick={() => {
    setActiveCategory(cat.id);
    setActiveSubTab(cat.items[0]?.id ?? null);
  }} className={`px-4 py-2 text-sm rounded-full font-medium transition-colors ${activeCategory === cat.id ? 'bg-[#0A0B0D] text-white dark:bg-white dark:text-[#0A0B0D] border-black' : 'bg-gray-100 dark:bg-white/10 text-black dark:text-white'}`}>
              {cat.label}
            </button>)}
        </div>}

      <div>
        {currentCategory?.items?.length ? <div className="flex flex-col lg:flex-row gap-6 bg-gray-100 dark:bg-[#141414] rounded-2xl">
            <div className="flex flex-col w-full lg:w-1/2 space-y-2 p-4">
              {currentCategory.items.map(item => <a key={item.id} href={item.href} onMouseOver={() => setActiveSubTab(item.id)} className={`flex items-start gap-1.5 text-left px-5 py-3 rounded-2xl transition-all ${activeSubTab === item.id ? 'bg-white dark:bg-white/5' : ''}`}>
                  <div className="text-xl mr-3 mt-1"><img src={item.icon} alt={item.title} className="w-8 h-8" /></div>
                  <div className="flex-1">
                    <h3 className="font-medium text-base text-black dark:text-white">
                      {item.title}
                    </h3>
                    <p className="text-sm text-gray-600 dark:text-gray-400">{item.desc}</p>
                  </div>
                  <div className={`flex items-center justify-center min-w-[24px] self-center ${activeSubTab === item.id ? 'opacity-100' : 'opacity-0'}`}>
                    <div className="hidden dark:block">
                      <Icon icon="chevron-right" size="14" color="#FFF" />
                    </div>
                    <div className="block dark:hidden">
                      <Icon icon="chevron-right" size="14" color="#0A0B0D" />
                    </div>
                  </div>
                </a>)}
            </div>
            <div className="group w-full h-fit lg:w-1/2 rounded-2xl flex items-center justify-center  overflow-hidden min-h-[320px] p-4">
              {currentSub?.image ? <>
                  <img src={currentSub.image.light} alt={currentSub.title} className="block dark:hidden w-[350px] h-[350px] object-contain rounded-xl" />
                  <img src={currentSub.image.dark} alt={currentSub.title} className="hidden dark:block w-[350px] h-[350px] object-contain rounded-xl" />
                </> : <p className="text-gray-400 dark:text-gray-500 p-8">No preview available</p>}
            </div>
          </div> : <p className="text-sm text-gray-500 dark:text-gray-400">
            No items available for this category.
          </p>}
      </div>
    </div>;
};

export const Title = ({children}) => {
  return <div className="text-gray-900 dark:text-gray-200 text-2xl tracking-tight">
      {children}
    </div>;
};

export const Container = ({children}) => {
  return <div className="max-w-8xl w-[90%] mx-auto px-4 lg:px-10 py-14">
      {children}
    </div>;
};

<Container>
  <div className="flex flex-col items-center justify-center py-16">
    <h1 className="text-4xl font-medium text-center text-gray-900 dark:text-zinc-50 tracking-tight">
      Rajanand Ilangovan
    </h1>

    <div className="mt-2 text-lg text-center text-gray-800 dark:text-zinc-200 bold">
      Data Architect
    </div>

    <div className="mt-4 max-w-2xl text-center text-gray-800 dark:text-gray-300">
      Hi, I'm Rajanand—a Data Architect from Bangalore, India with over 14 years of experience building and evolving data platforms.
    </div>

    <a href="/contact" className="mt-6 px-6 py-2 rounded-full bg-[#F54E00] text-white font-semibold hover:bg-blue-700 transition">
      Contact Me
    </a>
  </div>
</Container>

<Container>
  <Title>Technical Skills</Title>

  <br />

  <div className="mt-6">
    <SkillsMatrix skills={mySkills} />
  </div>
</Container>

<Container>
  <Title>Certifications</Title>

  <div className="mt-4 max-w-2xl text-left text-gray-300 dark:text-gray-300">
    These are some of the professional <a href="/certifications" className="dark:text-blue-400 font-bold">certifications</a> I have completed.
  </div>

  <br />

  <ProductTiles categories={CertificationList} showInactive={false} />

  <ul className="not-prose pb-[1px] h-1 min-w-full mt-3 overflow-auto" />
</Container>
