{
  "basics": {
    "name": "Carlos Gude Sánchez",
    "title": "Senior Backend Engineer & Software Architect",
    "focus": ["PHP", "Symfony", "Legacy Modernisation", "API Integrations", "DDD / Hexagonal"],
    "summary": "Senior Backend Engineer and Software Architect with 10+ years building and modernising PHP/Symfony systems, including high-volume distributed platforms. Specialised in migrating critical legacy systems with zero downtime, making change safe through tests and static analysis gated in CI, and designing integration layers for external APIs. Production experience in logistics, travel, public transport and retail SaaS; author of the open-source IntegrationEngine bundle.",
    "location": {
      "city": "Cambados",
      "region": "Pontevedra",
      "country": "Spain",
      "timezone": "CET"
    },
    "availability": "Open to fully remote roles",
    "contact": {
      "email": "carlos.sgude@gmail.com"
    },
    "profiles": [
      { "network": "GitHub", "username": "CarlosGude", "url": "https://github.com/CarlosGude" },
      { "network": "LinkedIn", "username": "carlos-gude", "url": "https://www.linkedin.com/in/carlos-gude/" }
    ],
    "cv": { "file": "Carlos_Gude_Sanchez_CV_EN.pdf", "language": "en", "sizeKb": 80 }
  },
  "highlights": [
    { "value": "100+", "label": "endpoints migrated with zero downtime", "context": "PrimeIT · PHP 7.4 / Symfony 4 → PHP 8.3 / Symfony 6" },
    { "value": "300K+", "label": "messages per minute", "context": "Auro · rider positioning under high concurrency" },
    { "value": "15+", "label": "external API integrations in production", "context": "10+ at Auro and 5+ at Quadrant TravelTech" },
    { "value": "−93%", "label": "level-9 PHPStan baseline", "context": "Datcisions · 3,339 → 239 errors" }
  ],
  "topics": {
    "integrations": "Integrations",
    "modernisation": "Modernisation",
    "quality": "Quality",
    "security": "Security",
    "realtime": "Messaging & real-time"
  },
  "experience": [
    {
      "company": "Datcisions",
      "role": "Senior Backend Engineer",
      "start": "2026-07",
      "end": "2026-09",
      "sector": "Retail SaaS",
      "context": "Stock and purchase-planning SaaS for fashion and retail brands. Fixed-term engagement focused on platform quality and modularisation.",
      "topics": ["quality", "modernisation", "integrations", "security"],
      "achievements": [
        "Raised PHPStan on the core platform from level 5 to 9 and cut the level-9 baseline from 3,339 to 239 errors (−93%).",
        "Recovered a test suite that no longer ran and grew it to 2,100+ passing tests.",
        "Modularised the monorepo into Symfony bundles: extracted IAM and access control from Security, split 127 migrations across modules and removed 53,000 lines of dead code in the process.",
        "Built the Holded cloud ERP connector from scratch and shipped it to production in 11 days, with PHPStan and PHP-CS-Fixer gated in CI.",
        "Found and fixed two IDOR vulnerabilities during a self-initiated security review."
      ]
    },
    {
      "company": "PrimeIT",
      "role": "Senior Backend Engineer",
      "start": "2025-04",
      "end": "2026-06",
      "sector": "IT consultancy",
      "context": "International IT consultancy.",
      "topics": ["modernisation", "security"],
      "achievements": [
        "Led the zero-downtime migration of a legacy system with 100+ endpoints from PHP 7.4 / Symfony 4 to PHP 8.3 / Symfony 6, using AI coding agents for mechanical refactors with every change gated by tests and static analysis.",
        "Rewrote authentication using Symfony’s native Security Component, eliminating vulnerabilities in the previous model."
      ]
    },
    {
      "company": "Quadrant TravelTech",
      "role": "Backend Engineer, Integrations",
      "start": "2023-05",
      "end": "2025-03",
      "sector": "Travel",
      "context": "Via Interacso from May 2023 to Jan 2024, then hired directly by Quadrant.",
      "topics": ["integrations"],
      "achievements": [
        "Designed and implemented 5+ travel integrations, including Booking.com, Iberia, Lleego and Hostalia.",
        "Built a multi-provider integration layer where new providers could be added without changing the core."
      ]
    },
    {
      "company": "Auro",
      "role": "Backend Engineer",
      "start": "2021-03",
      "end": "2023-03",
      "sector": "Logistics",
      "context": "Last-mile logistics platform.",
      "topics": ["integrations", "realtime"],
      "achievements": [
        "Developed and integrated 10+ external partner APIs for a last-mile logistics platform with real-time shipment tracking.",
        "Designed the event and messaging layer coordinating multiple carriers, handling 300,000+ messages per minute for rider positioning under high concurrency (RabbitMQ, SQS and Symfony Messenger, with idempotent consumers)."
      ]
    },
    {
      "company": "Jamenet",
      "role": "Backend Engineer, project-based",
      "start": "2020-06",
      "end": "2021-03",
      "sector": "Public transport",
      "context": "Metro Bilbao.",
      "topics": ["integrations", "realtime"],
      "achievements": [
        "Built the Drupal–Symfony–Vue integration for Metro Bilbao, a 24/7 system serving real passenger traffic.",
        "Implemented real-time bulk processing of route and timetable data."
      ]
    }
  ],
  "earlierExperience": [
    {
      "company": "Freelance",
      "role": "Real-time streaming platform",
      "start": "2020-01",
      "end": "2020-06",
      "sector": "Live streaming",
      "topics": ["realtime"],
      "summary": "Solo end-to-end build of a Twitch-style platform: live chat over WebSockets, WebRTC video streaming, payments with Stripe, PayPal and Redsys, a virtual economy and moderation."
    },
    {
      "company": "Syntelix",
      "role": "Backend Engineer",
      "start": "2019-05",
      "end": "2020-01",
      "sector": "Maritime telemetry",
      "topics": ["realtime"],
      "summary": "Real-time ingestion pipelines and ordered, lossless messaging for maritime telemetry."
    },
    {
      "company": "Card2Card",
      "role": "Full-stack Symfony Developer",
      "start": "2017-11",
      "end": "2019-05",
      "sector": "E-commerce SaaS",
      "topics": [],
      "summary": "Sole technical owner of a customisable SaaS e-commerce platform."
    },
    {
      "company": "Freelance",
      "role": "Web and PHP backend development",
      "start": "2012",
      "end": "2017",
      "sector": "Various clients",
      "topics": [],
      "summary": "10+ projects for local SMEs, agencies, e-commerce and hospitality/tourism clients."
    }
  ],
  "projects": [
    {
      "name": "IntegrationEngine",
      "type": "Open-source Symfony bundle",
      "role": "Author & maintainer",
      "license": "MIT",
      "requires": { "php": "8.2+", "symfony": "6.4 / 7 / 8" },
      "topics": ["integrations", "quality"],
      "summary": "A common structure for building and maintaining external API integrations in Symfony.",
      "motivation": "Every time I integrated an external API into Symfony, I ended up solving similar pieces again: authentication, HTTP requests, response mapping and error handling. And each integration tended to grow its own conventions. IntegrationEngine came out of that experience.",
      "model": [
        "Each operation against the external API is an Action.",
        "A Mapper turns the external response into a typed Response object.",
        "The bundle handles the shared flow: configuration, authentication and HTTP transport.",
        "Each integration keeps the provider-specific details where they belong."
      ],
      "flow": ["Action + Context", "IntegrationEngine", "External API", "Mapper", "Typed Response"],
      "goal": "A repeatable way of working — clear contracts and a consistent structure — based on problems I have met in production. Providers still differ; the bundle gives those differences a predictable place to live.",
      "links": [
        { "label": "Source on GitHub", "url": "https://github.com/CarlosGude/integrationEngine" },
        { "label": "Packagist", "url": "https://packagist.org/packages/carlosgude/integration-engine" },
        { "label": "integrationengine.dev", "url": "https://integrationengine.dev/" }
      ],
      "example": {
        "title": "Fetching a movie from TMDB",
        "origin": "Taken from the demo application",
        "source": "https://github.com/CarlosGude/integrationEngine-demo/tree/main/src/Integrations/Tmdb",
        "steps": [
          { "title": "Declare the operation", "description": "Method, path and mapper for the get_movie action.", "file": "src/Integrations/Tmdb/Tmdb.yaml", "snippet": "data/examples/tmdb/get-movie.yaml", "language": "yaml" },
          { "title": "Call it from the application", "description": "A small facade keeps the engine out of controllers and services.", "file": "src/Integrations/Tmdb/TmdbIntegration.php", "snippet": "data/examples/tmdb/TmdbIntegration.getMovie.php", "language": "php" },
          { "title": "TMDB answers with its own model", "description": "The test fixture the demo uses for this call: 25 fields, most of which the application does not need.", "file": "tests/Catalog/Infrastructure/Integrations/Tmdb/Fixtures/get-movie.json", "snippet": "data/examples/tmdb/get-movie.fixture.json", "language": "json" },
          { "title": "The Mapper keeps what the application uses", "description": "Provider field names stay here; the rest of the code only sees the typed response.", "file": "src/Integrations/Tmdb/Mappers/GetMovieMapper.php", "snippet": "data/examples/tmdb/GetMovieMapper.transform.php", "language": "php" },
          { "title": "Typed response", "description": "GetMovieResponse::toArray() for the fixture above.", "file": "GetMovieResponse", "snippet": "data/examples/tmdb/GetMovieResponse.toArray.json", "language": "json" }
        ]
      }
    },
    {
      "name": "IntegrationEngine Demo",
      "type": "Symfony application",
      "role": "Author",
      "license": "MIT",
      "requires": { "php": "8.4+", "symfony": "7.4" },
      "topics": ["integrations", "quality"],
      "summary": "Executable reference application that uses the bundle against real APIs, including concurrent requests with a measured 5–13× speedup over sequential calls.",
      "covers": [
        "REST · TMDB",
        "GraphQL · Countries",
        "CSV · Supplier",
        "Stripe form-encoded requests and signed webhooks"
      ],
      "notes": [
        "Concurrent sendMany() workloads with partial failure isolation; measured 5–13× speedup for 20 concurrent movie loads over sequential execution.",
        "Bounded contexts and gateways isolate integrations from business code.",
        "CI enforces tests, PHPStan max, PHP-CS-Fixer, Deptrac, production install / Docker validation and mutation testing."
      ],
      "links": [
        { "label": "Source on GitHub", "url": "https://github.com/CarlosGude/integrationEngine-demo" }
      ]
    }
  ],
  "skills": [
    { "group": "Architecture", "items": ["Hexagonal", "DDD", "Clean Architecture", "Event-Driven", "CQRS"] },
    { "group": "Backend", "items": ["PHP 8.x", "Symfony 6 / 7 / 8", "API Platform", "Doctrine", "REST", "Webhooks"] },
    { "group": "Quality", "items": ["TDD", "PHPUnit", "PHPStan", "Infection", "Deptrac", "PHP-CS-Fixer", "SonarQube"] },
    { "group": "Infrastructure", "items": ["RabbitMQ", "SQS", "Docker", "CI/CD with GitHub Actions", "Linux"] },
    { "group": "Databases", "items": ["MySQL", "PostgreSQL", "Redis"] },
    { "group": "AI-assisted development", "items": ["AI coding agents for refactors, test generation, migrations, code review and documentation, with every change gated by PHPStan max, Deptrac, mutation testing and human code review"] }
  ],
  "languages": [
    { "language": "Spanish", "level": "Native" },
    { "language": "English", "level": "Professional working proficiency" }
  ],
  "education": [
    { "title": "Higher Technician in Network Computer Systems Administration", "start": "2010", "end": "2012", "note": "EQF level 5" },
    { "title": "Self-taught", "summary": "PHP, Symfony and software architecture, learned independently.", "note": "Ongoing self-directed study in architecture, DDD and the PHP/Symfony ecosystem, applied in professional and open-source work." }
  ]
}
