{
  "lang": "en",
  "name": "Pedro Henrique Quadro",
  "role": "End-to-end software and AI engineer",
  "summary": "I build apps, systems and SaaS, dashboards, AI agents, automation and integrations, from the database to the screen, with the system running in production.",
  "location": "Brazil, Brasília time (UTC-3). Remote work.",
  "languages": [
    "pt-BR",
    "en"
  ],
  "language_note": "Native Portuguese. English for meetings and documentation.",
  "approach": "I came from marketing and data analysis before I started programming. So I start from the business problem and write the code to solve it, never the other way around.",
  "sectors": [
    "Hospitality",
    "Insurance",
    "Gastronomy",
    "Marketing",
    "Events and entertainment"
  ],
  "numbers": [
    {
      "value": "30+",
      "label": "projects delivered"
    },
    {
      "value": "2-4",
      "label": "weeks to a pilot in production"
    },
    {
      "value": "5",
      "label": "sectors served"
    },
    {
      "value": "10",
      "label": "contributions merged in open source, across 3 organizations"
    },
    {
      "value": "18",
      "label": "open source contributions open for review"
    }
  ],
  "results": [
    {
      "value": "70%",
      "label": "less time analyzing leads",
      "context": "Custom CRM for a startup, measured over the first 60 days."
    },
    {
      "value": "4x",
      "label": "more meetings booked than the human SDR",
      "context": "AI qualification agent for high-value clients, in the same funnel."
    },
    {
      "value": "60%",
      "label": "lower cost per qualified lead",
      "context": "WhatsApp qualification agent for an insurance operation, compared with the previous operation."
    },
    {
      "value": "40%",
      "label": "more reservation conversions",
      "context": "AI service and reservations on WhatsApp for gastronomy, in the first quarter."
    }
  ],
  "proofs": [
    {
      "title": "Realtime fix: broadcast header fields encoded as UTF-8",
      "where": "supabase/supabase-js #2516",
      "url": "https://github.com/supabase/supabase-js/pull/2516",
      "date": "2026-07-13"
    },
    {
      "title": "Functions fix: response Content-Type matched case-insensitively",
      "where": "supabase/supabase-js #2515",
      "url": "https://github.com/supabase/supabase-js/pull/2515",
      "date": "2026-07-21"
    },
    {
      "title": "Docs: Apple Services ID order for web sign-in",
      "where": "supabase/supabase #47707",
      "url": "https://github.com/supabase/supabase/pull/47707",
      "date": "2026-07-16"
    },
    {
      "title": "Node.js client: BigInt values accepted in intColumn()",
      "where": "questdb/nodejs-questdb-client #63",
      "url": "https://github.com/questdb/nodejs-questdb-client/pull/63",
      "date": "2026-09-18"
    },
    {
      "title": "Docs: TTL on materialized views",
      "where": "questdb/documentation #482",
      "url": "https://github.com/questdb/documentation/pull/482",
      "date": "2026-08-03"
    },
    {
      "title": "Docs: the query.timeout key",
      "where": "questdb/documentation #483",
      "url": "https://github.com/questdb/documentation/pull/483",
      "date": "2026-08-04"
    },
    {
      "title": "Docs: Parquet and CSV download in the Result Grid",
      "where": "questdb/documentation #484",
      "url": "https://github.com/questdb/documentation/pull/484",
      "date": "2026-08-03"
    },
    {
      "title": "DigitalOcean plugin: snapshot tasks and volume CreateSnapshot",
      "where": "kestra-io/plugin-digitalocean #17",
      "url": "https://github.com/kestra-io/plugin-digitalocean/pull/17",
      "date": "2026-10-09"
    },
    {
      "title": "DigitalOcean plugin: balance, billing history and invoice tasks",
      "where": "kestra-io/plugin-digitalocean #18",
      "url": "https://github.com/kestra-io/plugin-digitalocean/pull/18",
      "date": "2026-10-09"
    },
    {
      "title": "Blueprint: CRM lead conversions through the Meta Conversions API",
      "where": "kestra-io/blueprints #549",
      "url": "https://github.com/kestra-io/blueprints/pull/549",
      "date": "2026-10-06"
    },
    {
      "title": "brain-template: persistent, versioned memory for working with AI",
      "where": "PedroHenrique0713/brain-template",
      "url": "https://github.com/PedroHenrique0713/brain-template",
      "date": null
    },
    {
      "title": "claude-dongle: Claude Code rate-limit monitor",
      "where": "PedroHenrique0713/claude-dongle",
      "url": "https://github.com/PedroHenrique0713/claude-dongle",
      "date": null
    }
  ],
  "trajectory": [
    {
      "period": "2020-2024",
      "text": "Marketing and paid media, self-employed."
    },
    {
      "period": "2024-2025",
      "text": "Data and BI at a relationship app operating in Portugal: dashboards, databases and forecasting models."
    },
    {
      "period": "2025-2026",
      "text": "Full-stack Developer at a startup in Rio de Janeiro, as the only developer: a multi-tenant CRM from the database to the screen."
    },
    {
      "period": "2026-",
      "text": "AI Engineer: AI agents, integrations and product engineering."
    }
  ],
  "stack": [
    {
      "label": "Front end",
      "items": [
        "TypeScript",
        "JavaScript",
        "React",
        "Next.js",
        "Vite",
        "Tailwind CSS",
        "Three.js",
        "GSAP",
        "Figma"
      ]
    },
    {
      "label": "Mobile and desktop",
      "items": [
        "Flutter",
        "Dart",
        "notificações push",
        "App Store",
        "Google Play",
        "extensões do Chrome",
        "PyQt6"
      ]
    },
    {
      "label": "Back end",
      "items": [
        "Node.js",
        "Express",
        "Python",
        "FastAPI",
        "Deno",
        "Edge Functions",
        "Java",
        "APIs REST",
        "webhooks"
      ]
    },
    {
      "label": "Databases",
      "items": [
        "PostgreSQL",
        "SQL",
        "Supabase",
        "MongoDB",
        "Redis",
        "pgvector",
        "QuestDB"
      ]
    },
    {
      "label": "Auth and security",
      "items": [
        "RLS",
        "JWT",
        "OAuth 2.0",
        "OpenID Connect",
        "rotação de refresh token",
        "lock de linha"
      ]
    },
    {
      "label": "AI",
      "items": [
        "Claude API",
        "OpenAI API",
        "Gemini API",
        "Vertex AI",
        "OpenRouter",
        "RAG",
        "embeddings",
        "function calling",
        "LangChain",
        "evals",
        "MCP",
        "Claude Code"
      ]
    },
    {
      "label": "Automation and integrations",
      "items": [
        "n8n",
        "Make",
        "WhatsApp Cloud API",
        "Evolution API",
        "Instagram API",
        "Meta Conversions API",
        "Meta Lead Ads",
        "Google Ads API",
        "Bitrix24",
        "RD Station",
        "Chatwoot",
        "HeyReach",
        "Apify",
        "Telegram Bot API",
        "Mercado Pago",
        "Resend"
      ]
    },
    {
      "label": "Infra and quality",
      "items": [
        "Docker",
        "Linux",
        "VPS",
        "Easypanel",
        "GitHub Actions",
        "CI/CD",
        "Playwright",
        "Git",
        "Turborepo"
      ]
    },
    {
      "label": "Data and growth",
      "items": [
        "painéis",
        "GA4",
        "Google Tag Manager",
        "Search Console API",
        "modelos de previsão",
        "teste A/B",
        "Meta Ads",
        "Google Ads"
      ]
    }
  ],
  "services": [
    {
      "id": "aplicativos",
      "name": "Apps for iPhone and Android",
      "url": "https://pedroquadro.com/en/services/apps"
    },
    {
      "id": "sistemas-e-saas",
      "name": "Custom systems, CRM and SaaS",
      "url": "https://pedroquadro.com/en/services/systems-and-saas"
    },
    {
      "id": "paineis-e-dados",
      "name": "Dashboards and data",
      "url": "https://pedroquadro.com/en/services/dashboards-and-data"
    },
    {
      "id": "automacao-e-integracoes",
      "name": "Automation and integrations",
      "url": "https://pedroquadro.com/en/services/automation-and-integrations"
    },
    {
      "id": "atendimento-whatsapp",
      "name": "AI customer support on WhatsApp",
      "url": "https://pedroquadro.com/en/services/ai-whatsapp-support"
    },
    {
      "id": "vendas-crm",
      "name": "Sales and CRM with AI",
      "url": "https://pedroquadro.com/en/services/ai-sales-crm"
    },
    {
      "id": "agentes-producao",
      "name": "AI agents in production",
      "url": "https://pedroquadro.com/en/services/production-ai-agents"
    },
    {
      "id": "automacao-advocacia",
      "name": "Automation and AI for law firms",
      "url": "https://pedroquadro.com/en/services/legal-automation"
    }
  ],
  "how_to_hire": [
    "Message me on WhatsApp and tell me, in a few lines, what takes your team time today.",
    "Diagnosis: one conversation to map the processes and define the success metric. No cost, no commitment.",
    "A written proposal with what is included, the timeline and the price, and a contract with the agreed terms.",
    "Pilot in production in 2 to 4 weeks, with the metric defined before we start.",
    "Scale: if it worked, I take it to the next processes."
  ],
  "availability": {
    "accepting": true,
    "note": "Availability and start date are agreed in the first conversation."
  },
  "contact": {
    "whatsapp": "https://wa.me/5531989206776",
    "email": "pluspedrohenrique@gmail.com",
    "linkedin": "https://www.linkedin.com/in/pedrohenriquequadro",
    "github": "https://github.com/PedroHenrique0713"
  },
  "pages": {
    "home": "https://pedroquadro.com/en",
    "facts": "https://pedroquadro.com/en/facts",
    "blog": "https://pedroquadro.com/en/blog"
  },
  "updated": "2026-10-10"
}
