{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "meta": {
    "canonical": "https://smiro.dev/cv.json",
    "version": "2026-09-07",
    "lastModified": "2026-09-07",
    "language": "en",
    "alternateLanguages": {
      "fr": "https://smiro.dev/cv-fr"
    },
    "note": "Machine-readable source of truth for smiro.dev/cv and smiro.dev/cv-fr. Generates /cv.md and /llms.txt via `npm run cv:machine`; tests/cv-machine.test.ts fails if the two HTML CVs and this file disagree."
  },
  "basics": {
    "name": "Sergiy Mirochnyk",
    "label": "Senior Full-Stack Engineer & AI / LLM Engineer",
    "alternateLabels": [
      "Senior Full-Stack Engineer",
      "Full-Stack Developer",
      "AI Engineer",
      "LLM Engineer",
      "Software Engineer",
      "Ingénieur Full-Stack Senior",
      "Développeur Full-Stack",
      "Ingénieur IA"
    ],
    "image": "https://smiro.dev/assets/github-avatar.jpg",
    "email": "mirochnyk.sergiy@gmail.com",
    "phone": "+33 7 54 38 67 68",
    "url": "https://smiro.dev",
    "summary": "Senior full-stack engineer with 9 years of production web development (2017 to present), taking applications end to end: interface, API, database, deployment and monitoring. Core stack React, Next.js, TypeScript, Node.js and Python with PostgreSQL and SQL Server. Applied AI in production since 2023: multi-agent systems with executor/reviewer loops, RAG over company data, LLM fine-tuning on self-hosted GPU servers, and n8n automation — with tests, evaluations, monitoring and cost controls around them. Six years in IT systems and network security before that. Provisions, secures and operates what he ships: Linux VPS, Docker, Nginx, CI/CD and monitoring.",
    "location": {
      "city": "Dijon",
      "region": "Bourgogne-Franche-Comté",
      "countryCode": "FR"
    },
    "availability": {
      "workAuthorisation": "French citizen — full right to work in the EU/EEA and Switzerland, no visa or sponsorship required",
      "arrangement": [
        "remote",
        "hybrid",
        "on-site in Dijon"
      ],
      "timeZone": "Europe/Paris",
      "citizenship": "French"
    },
    "profiles": [
      {
        "network": "GitHub",
        "username": "SergeMiro",
        "url": "https://github.com/SergeMiro"
      },
      {
        "network": "LinkedIn",
        "username": "sergemiro",
        "url": "https://www.linkedin.com/in/sergemiro"
      },
      {
        "network": "Website",
        "username": "smiro.dev",
        "url": "https://smiro.dev"
      }
    ]
  },
  "work": [
    {
      "name": "FIMAINFO",
      "description": "Software development & cloud solutions",
      "position": "Full-Stack Developer & AI Engineer",
      "location": "Dijon, France",
      "startDate": "2023-09",
      "endDate": null,
      "summary": "Full-stack delivery and the company's applied-AI practice: multi-agent systems, RAG over internal knowledge, self-hosted LLMs, and back-office automation.",
      "highlights": [
        "Designed and shipped multi-agent AI systems for call-centre campaigns: an executor agent does the work, a reviewer agent scores it, and the loop repeats until the score reaches 90%. Cut back-office work by ~80% — about 30 hours a week per team covered.",
        "Built RAG search over internal business knowledge and exposed company data to agents through MCP-style tools and REST APIs, with per-role access control (RBAC).",
        "Delivered full-stack internal products end to end: responsive React / Tailwind interfaces, Node.js / Express APIs, SQL Server / T-SQL across four estates, Jest tests, CI/CD and production deployment.",
        "Fine-tuned open-weight LLMs and served them from in-house GPU servers behind REST APIs — data stays on company hardware and token spend drops; added routing between light and heavy models.",
        "Automated recurring back-office with n8n: email parsing, ticket routing, invoicing, compliance filings, notifications. Added monitoring, SLA alerting and anomaly detection.",
        "Introduced an AI-assisted development workflow with spec-driven prompts and reviewer gates before merge — shorter cycles without giving up code review, tests or OWASP checks."
      ],
      "keywords": [
        "multi-agent systems",
        "RAG",
        "OpenAI API",
        "Anthropic Claude API",
        "embeddings",
        "pgvector",
        "Qdrant",
        "MCP",
        "React",
        "Tailwind",
        "Node.js",
        "Express",
        "SQL Server",
        "T-SQL",
        "Jest",
        "CI/CD",
        "Unsloth",
        "LoRA",
        "QLoRA",
        "Llama",
        "Mistral",
        "GPU servers",
        "n8n",
        "Grafana",
        "Metabase",
        "Claude Code",
        "Cursor",
        "GitHub Copilot",
        "OWASP"
      ]
    },
    {
      "name": "Novileads Co.",
      "position": "Web Developer",
      "location": "Ukraine — remote",
      "startDate": "2022-08",
      "endDate": "2023-08",
      "highlights": [
        "Built responsive marketing sites and web applications from Figma mockups, and shared component libraries with the back-end developers and designers.",
        "Front-end performance and cross-device compatibility; technical SEO and Core Web Vitals checked on delivery."
      ],
      "keywords": [
        "HTML5",
        "CSS3",
        "JavaScript",
        "Figma",
        "technical SEO",
        "Core Web Vitals"
      ]
    },
    {
      "name": "French Foreign Legion",
      "description": "Képi Blanc magazine & other Legion sites",
      "position": "Web Developer",
      "location": "France",
      "startDate": "2017-05",
      "endDate": "2021-05",
      "highlights": [
        "Built and maintained site components for Képi Blanc magazine and other Legion sites; ran the content with the editorial team, plus technical SEO, social integrations and performance work."
      ],
      "keywords": [
        "HTML",
        "CSS",
        "JavaScript",
        "CMS",
        "technical SEO",
        "performance"
      ]
    },
    {
      "name": "French Foreign Legion",
      "description": "1st R.E.G. / 1st R.E.",
      "position": "IT Technician",
      "location": "France",
      "startDate": "2011-10",
      "endDate": "2017-05",
      "highlights": [
        "Installed, configured and maintained hardware and software fleets for operational units, with L1/L2 support for their users.",
        "Network security: firewall and antivirus administration, system hardening."
      ],
      "keywords": [
        "network security",
        "firewall",
        "antivirus",
        "system hardening",
        "L1/L2 support"
      ]
    }
  ],
  "projects": [
    {
      "name": "LLM Failover Proxy",
      "type": "open source · npm",
      "startDate": "2026",
      "url": "https://github.com/SergeMiro/LLM-Failover-Proxy",
      "description": "One OpenAI-compatible endpoint that switches model when a provider fails, rate-limits or slows down — without breaking a live stream. 12 commits and +1,638 lines merged upstream, published as v1.8.0.",
      "keywords": [
        "Node.js 22",
        "SSE",
        "OpenAI-compatible API",
        "provider adapters",
        "zero runtime dependencies"
      ],
      "sheet": true
    },
    {
      "name": "Extranet Fimainfo",
      "type": "work · internal platform",
      "startDate": "2026",
      "description": "One internal platform for telephony, campaigns, messaging, BI and an AI assistant: 5 services, ~60 screens, 4 SQL Server estates, ~786 commits over 17 months.",
      "keywords": [
        "Next.js 15.5",
        "React 19",
        "Zustand",
        "Express",
        "SQL Server",
        "FastAPI",
        "Qdrant",
        "RAG",
        "RBAC"
      ],
      "sheet": true
    },
    {
      "name": "ASCoFaçade",
      "type": "production · client",
      "startDate": "2026",
      "url": "https://ascofacade.fr",
      "description": "Public SEO site and 4 role portals behind one login — office, clients, sub-contractors, field crews — plus 3 AI jobs, none of them a chatbot.",
      "keywords": [
        "Next.js 16",
        "React 19",
        "Supabase",
        "Row-Level Security",
        "Server Actions",
        "Vercel",
        "Tailwind 4"
      ],
      "sheet": true
    },
    {
      "name": "SimplifyEU",
      "type": "AI back-office",
      "startDate": "2026",
      "url": "https://github.com/SergeMiro/SimplifyEU",
      "description": "Finds duplicate invoices, unused subscriptions and missed deadlines across 4 Python services.",
      "keywords": [
        "Next.js 16",
        "FastAPI",
        "Celery",
        "Redis",
        "Docker",
        "Traefik"
      ],
      "sheet": true
    },
    {
      "name": "Way2Buy Mini App",
      "type": "telegram · product",
      "startDate": "2026",
      "url": "https://github.com/SergeMiro/way2buy_telegram-app",
      "description": "Telegram Mini App for sales, cashback, discounts, margin tracking and AI reports.",
      "keywords": [
        "Node.js",
        "Express",
        "SQLite",
        "Telegram Mini Apps",
        "idempotent jobs",
        "81 tests"
      ],
      "sheet": true
    },
    {
      "name": "Earnings trading bot",
      "type": "research lab",
      "startDate": "2026",
      "url": "https://github.com/SergeMiro/Trading-bot",
      "description": "Personal multi-agent lab for earnings research, scoring and fixed risk rules. Not financial advice.",
      "keywords": [
        "Python 3.12",
        "SQLAlchemy 2",
        "APScheduler",
        "Docker",
        "multi-agent"
      ],
      "sheet": true
    },
    {
      "name": "smiro.dev",
      "type": "personal · site & AI avatar",
      "startDate": "2026",
      "url": "https://smiro.dev",
      "description": "This site: portfolio, CV, a live agent playground and an AI avatar that answers questions about the work from a generated knowledge base.",
      "keywords": [
        "Astro",
        "TypeScript",
        "Vercel",
        "RAG",
        "n8n",
        "Playwright",
        "Linux VPS"
      ],
      "sheet": false
    }
  ],
  "education": [
    {
      "institution": "OpenClassrooms",
      "area": "JavaScript / React Application Developer",
      "studyType": "RNCP Level 6 (Bachelor-equivalent)",
      "startDate": "2021-08",
      "endDate": "2022-08",
      "location": "France"
    },
    {
      "institution": "University (Ukraine)",
      "area": "Business Informatics — information systems & databases",
      "studyType": "4-year university degree",
      "location": "Ukraine",
      "startDate": "2007-09",
      "endDate": "2011-08"
    }
  ],
  "certificates": [
    {
      "name": "JavaScript / React Application Developer — RNCP Level 6 (Bachelor-equivalent)",
      "date": "2022-08",
      "issuer": "France Compétences — RNCP / OpenClassrooms"
    },
    {
      "name": "University Degree — Business Informatics (4-year)",
      "issuer": "University (Ukraine)",
      "date": "2011-08"
    },
    {
      "name": "Unsloth — open-source LLM fine-tuning (LoRA / QLoRA)",
      "issuer": "Self-directed"
    }
  ],
  "skills": [
    {
      "name": "AI & LLM Engineering",
      "level": "Core — shipped in production",
      "keywords": [
        "Multi-agent systems",
        "RAG",
        "Prompt engineering",
        "Executor / reviewer loops",
        "LLM fine-tuning",
        "LoRA",
        "QLoRA",
        "Unsloth",
        "Model routing & cost control",
        "Evaluations & guardrails",
        "OpenAI API",
        "Anthropic Claude API",
        "Self-hosted Llama",
        "Self-hosted Mistral",
        "Embeddings",
        "pgvector",
        "Qdrant",
        "n8n"
      ]
    },
    {
      "name": "AI-Assisted Development",
      "level": "Core — daily",
      "keywords": [
        "Claude Code",
        "MCP servers",
        "Spec-driven delivery",
        "Cursor",
        "GitHub Copilot",
        "Agent orchestration",
        "Reviewer gates before merge",
        "Runtime verification"
      ]
    },
    {
      "name": "Frontend",
      "level": "Core",
      "keywords": [
        "React",
        "Next.js",
        "TypeScript",
        "JavaScript",
        "Zustand",
        "Tailwind",
        "Astro",
        "HTML5",
        "CSS3"
      ]
    },
    {
      "name": "Backend & Data",
      "level": "Core",
      "keywords": [
        "Node.js",
        "Express",
        "Python",
        "FastAPI",
        "REST APIs",
        "Celery",
        "Redis",
        "PostgreSQL",
        "SQL Server",
        "T-SQL",
        "Supabase",
        "Row-Level Security",
        "Jest",
        "Git",
        "GitHub"
      ]
    },
    {
      "name": "DevOps · AI-Ops · Security",
      "level": "Core",
      "keywords": [
        "VPS provisioning & deploy",
        "Docker",
        "Traefik",
        "Linux",
        "Nginx",
        "CI/CD",
        "Self-hosted GPU servers",
        "Grafana",
        "Metabase",
        "OWASP",
        "Auth, RBAC & Row-Level Security",
        "Firewall & network security"
      ]
    },
    {
      "name": "Working knowledge",
      "level": "Used, not yet shipped professionally",
      "keywords": [
        "Redux",
        "LangChain",
        "LangGraph",
        "CrewAI",
        "PyTorch",
        "Hugging Face",
        "WebSockets"
      ]
    }
  ],
  "languages": [
    {
      "language": "French",
      "fluency": "C2 — professional"
    },
    {
      "language": "Ukrainian",
      "fluency": "Native"
    },
    {
      "language": "Russian",
      "fluency": "Native"
    },
    {
      "language": "English",
      "fluency": "B2 — technical"
    }
  ]
}
