{
  "title": "Recent projects",
  "tabs": {
    "professional": "Professional projects",
    "personal": "Personal projects"
  },
  "additional_details": "Project details",
  "skills_used": "Technologies used",
  "project1": {
    "title": "Development environment setup",
    "company": "Media startup",
    "description": "Porting a development environment to Docker to standardize configurations",
    "task1": "Design of Dockerfiles and Docker Compose configurations",
    "task2": "Integration of various services and dependencies into isolated containers",
    "task3": "Integration of existing Git repositories into the new Docker environment"
  },
  "project2": {
    "title": "Payment API integration",
    "company": "Media startup",
    "description": "Adding a payment API to a multimedia platform to enable content monetization",
    "task1": "Design of a modular API to handle transactions and subscriptions",
    "task2": "Database architecture to add monetization to existing content"
  },
  "project3": {
    "title": "Basket reservation system automation",
    "company": "Local client project",
    "description": "Setting up a static website with Stripe payments, database and automated emailing",
    "task1": "Website creation in HTML/CSS/JS to present offers",
    "task2": "Order flow automation with emails and logistics management",
    "task3": "Secure connection between form, payments and logistics management",
    "detailedDescription": "Project designed for a vegetable basket company, with the goal of rapid deployment and minimal maintenance. I developed a lightweight but robust architecture around a static site, Stripe payment links, and Make scenarios to connect payments, logistics database and customer communication. Result: a smooth system, with no manual input, functional from day one.",
    "technos": "Stripe, Make, Google Sheets, HTML, JavaScript"
  },
  "project4": {
    "title": "Personal infrastructure",
    "company": "",
    "description": "Setting up a self-hosted infrastructure for various web services",
    "task1": "Deployment of a Gitea instance for Git repository hosting",
    "task2": "Deployment of an Infisical instance for secrets management"
  },
  "customs": {
    "docker": {
      "title": "LAMP Docker Development Environment",
      "subtitle": "Standardization and containerization of the development environment",
      "overview": {
        "title": "Overview",
        "description": "Setup of a complete Docker-based development environment to standardize development configurations across the team.",
        "problem": "The company used a LAMP stack in production, which made the dev setup highly dependent on each developer's machine. The goal was to create a reproducible and easy-to-deploy environment."
      },
      "architecture": {
        "title": "Technical Architecture",
        "services": {
          "title": "Docker Services",
          "php": "Web server with native PHP module compilation",
          "mysql": "Database with automatic initialization scripts",
          "phpmyadmin": "Database management interface"
        },
        "features": {
          "title": "Features",
          "dependencies": "Automatic installation and compilation of all PHP dependencies at build time",
          "repos": "Automatic source retrieval from company's Bitbucket",
          "devcontainer": "VSCode Dev Containers integration for better developer experience",
          "apache": "Editable Apache configuration (modules, virtualhost, etc.)",
          "vhosts": "Automatic VirtualHosts configuration for direct service access",
          "php_config": "Ability to switch PHP configuration based on environment (dev/prod)"
        },
        "devcontainer": {
          "title": "VSCode Integration",
          "description": "Use of VSCode Dev Containers to enable easier workspace management.",
          "debugging": "Integrated XDebug debugger functional with breakpoints",
          "composer": "Terminal access to container for Composer commands",
          "terminal": "Attach terminal directly in container via Remote Explorer"
        }
      },
      "challenges": {
        "title": "Technical Challenges",
        "modules": {
          "title": "Native PHP module compilation",
          "description": "Compilation from source of all necessary PHP modules for PHP 8.2, with complex system dependency management. Changing PHP version may require configuration file adjustments."
        },
        "standardization": {
          "title": "Multi-machine standardization",
          "description": "Creation of a completely reproducible environment independent of the developer's operating system (Windows, macOS, Linux), eliminating local configuration issues."
        },
        "automation": {
          "title": "Complete setup automation",
          "description": "Implementation of a one-command installation process (docker-compose up) including: image building, dependency installation, database initialization, VirtualHost configuration, and repository cloning."
        }
      },
      "stack": {
        "title": "Technology Stack",
        "core": {
          "title": "Core Stack"
        },
        "tools": {
          "title": "Tools"
        },
        "vscode": {
          "title": "VSCode Extensions"
        }
      },
      "results": {
        "title": "Results",
        "standardization": "Standardized development environment for the entire team",
        "onboarding": "New developer onboarding reduced to a few minutes",
        "debugging": "Simplified debugging with integrated and functional XDebug",
        "flexibility": "Flexible configuration (Apache, PHP, VirtualHosts) without touching code",
        "productivity": "Major productivity gain: no more \"works on my machine\" issues"
      },
      "tags": "Docker • Docker Compose • PHP 8.2 • Apache • MySQL • VSCode Dev Containers • XDebug • LAMP Stack"
    },
    "stripe": {
      "title": "Stripe Integration & Payment API Design",
      "subtitle": "Content monetization system for video platform",
      "overview": {
        "title": "Overview",
        "description": "Development of an integrated payment system for a premium video streaming platform. The goal was to enable the purchase or access to on-demand videos, with a flexible architecture to accommodate payment providers other than Stripe based on end-client needs."
      },
      "architecture": {
        "title": "Technical Architecture",
        "frontend": {
          "title": "Frontend",
          "tech": "Technologies",
          "features": "Features",
          "features_list": "Payment page redirect management, status retrieval, request optimization, and specific display design for paid content"
        },
        "backend": {
          "title": "Backend",
          "integration": "Stripe API integration: payment session creation, webhook listening (success, failure, refund)",
          "abstraction": "Design of an abstraction layer on top of Stripe to standardize payment operations (initiation, status, refund)",
          "extensibility": "Preparation for adding alternative payment methods without impacting client code",
          "logging": "Complete payment flow logging for audit and reconciliation"
        },
        "security": {
          "title": "Security & Robustness",
          "webhooks": "Use of secure webhooks with Stripe signature verification",
          "idempotence": "Idempotence of critical operations (avoid duplicates during retries)",
          "reconciliation": "Payment status storage and periodic reconciliation logic"
        }
      },
      "challenges": {
        "title": "Technical Challenges",
        "decoupling": {
          "title": "Decoupled payment API design",
          "description": "Architecture design enabling easy integration of payment providers other than Stripe without major code refactoring."
        },
        "errors": {
          "title": "Critical error handling",
          "description": "Implementation of robust mechanisms to handle abandoned payments, disconnected users, webhook retries, and other edge cases."
        }
      },
      "stack": {
        "title": "Technology Stack",
        "frontend": {
          "title": "Frontend"
        },
        "backend": {
          "title": "Backend"
        },
        "tools": {
          "title": "Tools",
          "abstraction": "Custom payment operation abstraction"
        }
      },
      "results": {
        "title": "Results",
        "operational": "Stripe payment operational quickly (with complete use case testing)",
        "extensible": "API ready for adding new payment methods without refactoring",
        "stable": "Stable payment logic tested in real conditions (with end users)"
      },
      "tags": "Stripe • PHP • MySQL • JavaScript • Webhooks • API Design • Payment Gateway"
    },
    "veggie": {
      "title": "Vegetable Basket Reservation System",
      "subtitle": "Automated subscription and reservation management platform with online payment",
      "overview": {
        "title": "Overview",
        "description": "Development of a complete reservation and subscription management system for weekly vegetable baskets. The project needed to be quick to deploy, reliable, and inexpensive to maintain, while ensuring payment traceability and smooth logistics.",
        "evolution": "The architecture initially relied on a low-code prototype (Make, Google Sheets) to validate use cases. It then evolved into a custom backend solution with webhook management, secure flow automation, and email integration."
      },
      "architecture": {
        "title": "Technical Architecture",
        "frontend": {
          "title": "Frontend",
          "hosting": "Hosting",
          "tech": "Technologies",
          "features": "Features",
          "features_list": "Product presentation, FAQ, external form, and Stripe payment buttons"
        },
        "backend": {
          "title": "Backend & Automation",
          "webhooks": "Secure Stripe webhooks: real-time payment event processing",
          "pipeline": "Backend pipeline: payment receipt → user data enrichment → database insertion → email triggering",
          "emailing": "Email integration (Brevo/MailerLite) with automatic cohort segmentation",
          "logistics": "Weekly logistics view generation for delivery team (PDF export or filtered table)"
        },
        "security": {
          "title": "Security & Resilience",
          "payment": "100% payment handled by Stripe (3D Secure, PCI compliance)",
          "access": "Restricted access to sensitive data, clear role separation (admin / field team)",
          "backup": "Automated backups and critical event logging"
        }
      },
      "challenges": {
        "title": "Technical Challenges",
        "iteration": {
          "title": "Rapid iteration towards reliability",
          "description": "Initial validation via Make and Google Sheets, gradually replaced by a more robust architecture capable of handling scale and edge cases (payment failures, duplicate submissions, etc.)"
        },
        "cohorts": {
          "title": "Seamless cohort management",
          "description": "System designed to automatically track subscription cycles (12 weeks), notify users, and generate delivery files one day in advance."
        }
      },
      "stack": {
        "title": "Technology Stack",
        "frontend": {
          "title": "Frontend"
        },
        "backend": {
          "title": "Backend"
        },
        "tools": {
          "title": "Tools"
        }
      },
      "results": {
        "title": "Results",
        "deployment": "Deployed in <10 days",
        "reliability": "0 events lost since launch",
        "scalability": "Extensible system (new plans, segmentation, custom tracking)",
        "maintenance": "Minimal maintenance for field team",
        "cost": "Controlled infrastructure cost (<€10/month excluding emails)"
      },
      "tags": "Stripe • Node.js • Webhooks • Automation • Make • Cloudflare Pages • Brevo"
    },
    "infrastructure": {
      "title": "Infrastructure as Code (IaC) & DevOps",
      "description": "Setting up an automated and scalable cloud infrastructure using modern tools.",
      "task1": "Automated deployment with Terraform and Ansible.",
      "task2": "Monitoring and alerts with Prometheus and Grafana.",
      "task3": "CI/CD with GitHub/Gitea Actions for smooth and reliable deployments.",
        "subtitle": "Design and deployment of a complete cloud infrastructure using Infrastructure as Code",
        "overview": {
          "title": "Overview",
          "description": "Design and deployment of a complete cloud infrastructure using Infrastructure as Code, hosting multiple web services on Hetzner Cloud servers. Everything is automatically provisioned via Terraform and configured with Ansible to ensure reproducibility and maintainability."
        },
        "architecture": {
          "title": "Technical Architecture",
          "provisioning": {
            "title": "Provisioning & Configuration",
            "terraform": "Automated provisioning of 2 Ubuntu servers on Hetzner Cloud (Germany, Finland)",
            "ansible": "System configuration, application deployment, and secrets management",
            "dns": "Automated DNS record management via API"
          },
          "services": {
            "title": "Deployed Services",
            "website": {
              "name": "Static website",
              "description": "Portfolio and presentation"
            },
            "gitea": {
              "name": "Gitea",
              "description": "Self-hosted Git platform with MySQL"
            },
            "infisical": {
              "name": "Infisical",
              "description": "Secrets manager with PostgreSQL + Redis"
            }
          },
          "security": {
            "title": "Security & Performance",
            "ssl": "Automated SSL/TLS via Let's Encrypt (Certbot)",
            "nginx": "Nginx reverse proxy with HTTPS-only configuration",
            "firewall": "UFW firewall + Fail2ban brute-force protection",
            "docker": "Docker Compose containerization for service isolation"
          }
        },
        "challenges": {
          "title": "Technical Challenges",
          "secrets": {
            "title": "Secrets Management",
            "description": "Implementation of an environment variable management system with validation scripts to prevent default values in production. Secrets are loaded from local files before deployment via Ansible."
          },
          "multiservice": {
            "title": "Multi-Service Architecture",
            "description": "Nginx configuration as a reverse proxy to intelligently route HTTPS traffic to multiple containerized applications on a single server, with separate SSL certificate management per subdomain."
          },
          "automation": {
            "title": "Complete Automation",
            "description": "Development of Bash scripts to automate the deployment workflow: variable validation, secrets loading, Ansible playbook execution with error handling."
          }
        },
        "stack": {
          "title": "Technology Stack",
          "infrastructure": {
            "title": "Infrastructure",
            "cloud": "Cloud Provider: Hetzner Cloud",
            "os": "OS: Ubuntu 24.04 LTS",
            "iac": "IaC: Terraform 1.10, Ansible 2.19",
            "containers": "Containerization: Docker, Docker Compose"
          },
          "applications": {
            "title": "Applications",
            "webserver": "Web Server: Nginx",
            "gitea": "Git Hosting: Gitea (MySQL 8)",
            "infisical": "Secret Management: Infisical (PostgreSQL 14, Redis 7)",
            "ssl": "SSL/TLS: Let's Encrypt, Certbot"
          },
          "security": {
            "title": "Security",
            "firewall": "Firewall: UFW",
            "ids": "IDS/IPS: Fail2ban",
            "smtp": "SMTP: Brevo (secure notifications)"
          }
        },
        "results": {
          "title": "Results",
          "automation": "Fully automated infrastructure: reproducible deployment with a single command",
          "availability": "High availability: containerized services with automatic restart",
          "security": "Enhanced security: mandatory HTTPS, firewall, brute-force protection",
          "maintainability": "Maintainability: versioned code, configuration as code, externalized secrets",
          "cost": "Optimized cost: ~€15/month for 3 production services"
        },
        "links": {
          "title": "Links",
          "website": "Website",
          "gitea": "Gitea Instance",
          "infisical": "Secrets Manager",
          "source": "Source Code on GitHub"
        }
    }
  }
}
