// Portfolio data — Eren Güler
const PORTFOLIO_DATA = {
  name: "Eren Güler",
  handle: "erengulerdev",
  role: "Fullstack Developer",
  headline: "Fullstack developer crafting scalable .NET systems",
  location: "Istanbul, Turkey",
  email: "hello@erenguler.dev",
  github: "https://github.com/erengulerdev",
  linkedin: "https://www.linkedin.com/in/erengulerdev",
  yearsExperience: 4,

  about: [
    {
      type: "p",
      content: "I'm a fullstack developer based in <hl>Istanbul</hl>, with 4 years of professional experience building production systems for fintech, logistics, and SaaS platforms. I work primarily in the <code>.NET</code> ecosystem — designing distributed services that stay simple under load."
    },
    {
      type: "p",
      content: "My day-to-day is split between architecting <hl>microservices with .NET Aspire</hl>, shipping Angular front-ends that don't get in the user's way, and tuning <code>SQL Server</code> queries until the slow ones aren't slow anymore. I care a lot about <hl>observability</hl>, background job reliability, and writing code that the next developer (often future-me) can actually read."
    },
    {
      type: "p",
      content: "Outside of work, I write about backend architecture, contribute to open source, and occasionally take on freelance projects where I can help teams ship faster."
    }
  ],

  stats: [
    { value: "4+", label: "years_shipping" },
    { value: "30+", label: "projects_delivered" },
    { value: "12+", label: "microservices_architected" },
    { value: "99.9%", label: "uptime_maintained" }
  ],

  stack: [
    {
      category: "Backend",
      icon: "server",
      skills: [
        { name: ".NET Core / .NET 8", level: 95 },
        { name: "ASP.NET Core Web API", level: 95 },
        { name: "Entity Framework Core", level: 90 },
        { name: "Hangfire", level: 90 },
        { name: ".NET Aspire", level: 85 }
      ]
    },
    {
      category: "Frontend",
      icon: "code",
      skills: [
        { name: "Angular 17+", level: 90 },
        { name: "TypeScript", level: 90 },
        { name: "RxJS", level: 85 },
        { name: "NgRx / Signals", level: 80 },
        { name: "HTML / CSS / SCSS", level: 88 }
      ]
    },
    {
      category: "Data",
      icon: "database",
      skills: [
        { name: "MSSQL Server", level: 92 },
        { name: "T-SQL & Query Tuning", level: 88 },
        { name: "Redis", level: 80 },
        { name: "PostgreSQL", level: 75 },
        { name: "Dapper", level: 82 }
      ]
    },
    {
      category: "Architecture",
      icon: "layers",
      skills: [
        { name: "Microservices", level: 88 },
        { name: "Event-Driven (RabbitMQ / Kafka)", level: 82 },
        { name: "DDD & Clean Architecture", level: 85 },
        { name: "CQRS / MediatR", level: 88 },
        { name: "REST & gRPC", level: 85 }
      ]
    },
    {
      category: "DevOps",
      icon: "box",
      skills: [
        { name: "Docker & Compose", level: 88 },
        { name: "Kubernetes (basics)", level: 70 },
        { name: "GitHub Actions / CI", level: 82 },
        { name: "Azure / AWS", level: 75 },
        { name: "Linux & Bash", level: 78 }
      ]
    },
    {
      category: "Tooling",
      icon: "git",
      skills: [
        { name: "Git / GitHub", level: 92 },
        { name: "JetBrains Rider", level: 90 },
        { name: "Visual Studio", level: 88 },
        { name: "Postman / Insomnia", level: 85 },
        { name: "Seq / Serilog", level: 85 }
      ]
    }
  ],

  marquee: [
    { name: ".NET", icon: "server" },
    { name: "Angular", icon: "code" },
    { name: "MSSQL", icon: "database" },
    { name: "Hangfire", icon: "zap" },
    { name: "Docker", icon: "box" },
    { name: "Aspire", icon: "sparkles" },
    { name: "Microservices", icon: "layers" },
    { name: "Redis", icon: "database" },
    { name: "TypeScript", icon: "code" },
    { name: "C#", icon: "terminal" }
  ],

  experience: [
    {
      period: "Oct 2024 — Present",
      role: "Software Development Specialist",
      company: "Koç Okulu",
      location: "Istanbul, Turkey · Hybrid",
      desc: "Designing and shipping internal platforms used across the school's academic and operational workflows. Leading backend architecture on .NET microservices, building Angular front-ends, and maintaining the data layer on MSSQL with Hangfire-powered background jobs.",
      tags: [".NET Core", "Angular", "MSSQL", "Hangfire", "Microservices", "Docker"]
    },
    {
      period: "Apr 2022 — Oct 2024",
      role: "Software Development Assistant Specialist",
      company: "Koç Okulu",
      location: "Istanbul, Turkey · Hybrid",
      desc: "Built and maintained fullstack features across the institution's software ecosystem. Contributed to API design, database modeling, and the modernization of legacy modules into cleaner service-oriented patterns.",
      tags: [".NET Core", "Angular", "MSSQL", "REST APIs", "Entity Framework"]
    }
  ],

  posts: [
    {
      title: "Designing Idempotent Hangfire Jobs at Scale",
      excerpt: "Why retries lie to you, and the patterns I use to make Hangfire jobs safe to run twice — or twenty times.",
      date: "Mar 2026",
      readTime: "8 min",
      category: "Backend",
      slug: "idempotent-hangfire"
    },
    {
      title: ".NET Aspire in Production: One Year In",
      excerpt: "What broke, what worked, and the dashboards I'd build again. A practical retrospective on Aspire-first microservices.",
      date: "Feb 2026",
      readTime: "12 min",
      category: "Architecture",
      slug: "aspire-one-year"
    },
    {
      title: "MSSQL Index Tuning for People Who Hate Query Plans",
      excerpt: "A field guide to making slow queries fast without becoming a DBA. Six patterns that cover 80% of cases.",
      date: "Jan 2026",
      readTime: "10 min",
      category: "Database",
      slug: "mssql-index-tuning"
    },
    {
      title: "Angular Signals vs. NgRx: When to Switch",
      excerpt: "Three years of NgRx, six months of Signals. Here's when each is the right call for a real Angular codebase.",
      date: "Dec 2025",
      readTime: "7 min",
      category: "Frontend",
      slug: "signals-vs-ngrx"
    },
    {
      title: "Docker Compose Patterns for .NET Microservices",
      excerpt: "From a single docker-compose.yml to a maintainable local dev environment your whole team can actually use.",
      date: "Nov 2025",
      readTime: "9 min",
      category: "DevOps",
      slug: "docker-compose-dotnet"
    },
    {
      title: "MediatR Without the Hand-Wringing",
      excerpt: "A pragmatic take on CQRS in .NET — when MediatR earns its keep, and the simpler patterns I reach for first.",
      date: "Oct 2025",
      readTime: "6 min",
      category: "Backend",
      slug: "mediatr-pragmatic"
    }
  ],

  navItems: []
};

window.PORTFOLIO_DATA = PORTFOLIO_DATA;
