Victor Huggo

Victor Huggo MedeirosFoz do Iguaçu, Brazil

AI Engineer & Full‑Stack Software Engineer

  • AI Engineer
  • Automation Engineer
  • Full-Stack Software Engineer

I build Python back ends and AI systems that run locally or in the cloud, with automated tests, CI/CD and security checks on every delivery. I also build websites and automation for local businesses.

Live inferencedigit_cnn · 26,698 params
The same network as the demo below, writing digits on its own: the links are the trained weights and the glow is each layer's real activation. Tap for another digit.
before I say “done”
  1. ruff check .lint
  2. ruff format --check .format
  3. mypy --stricttypes
  4. pytest --covtests + coverage
  5. bandit -r srccode security
  6. pip-auditknown vulnerabilities
  7. gitleaks detectsecrets
  8. independent reviewindependent review (second model)

Illustrative: the checks I run on every Python project.

Digit CNN 99.09% on the MNIST test set, with 26,698 parameters, running in your browser. Try it Mini-GPT 821,632 parameters, trained from scratch in 23 minutes on a laptop CPU. Generate text Local-first Your data stays on your machine. TraceHunter keeps traces on your machine; Echo-AI transcribes and summarizes with Whisper and Ollama, both local. See the work

Live demo · CNN

A real neural network, running right here

Draw a digit from 0 to 9. A convolutional network I trained in Python (26,698 parameters, 99.09% on the MNIST test set) runs in your browser, with no server.

26,698 paramsMNIST 99.09%in-browserneural-demo

input · 280×280

Draw here with the mouse or your finger

prediction

–

what the network sees (28×28)

softmax

    The signal flowing through the network

    conv → conv → dense → softmax

    Inside the network

    Each small square is what one filter of the network detected in your drawing.

    Layer 1 (8 filters)
    Layer 2 (16 filters)

    The 99.09% is on the standard MNIST test set. Mouse drawings usually score lower, because the stroke looks different. The model, the weights and the training code will be public.

    Case studies

    Selected work

    For each project: the problem, the decisions, and how I verified it works.

    TraceHunter

    Local-first observability for AI applications and AI CLIs

    Problem

    Understanding what LLM, RAG and agent apps actually do (calls, tokens, cost) without sending sensitive data to the cloud.

    Decisions

    • Everything local: storage on your machine, web UI and API.
    • Masking of sensitive data before it is stored.
    • Token and cost estimates, with an embedded, updatable price table.
    • A collector for AI CLIs that tolerates repeated, missing or malformed data.

    How I verified it

    • An independent review by a second model before publishing: it found process issues, all fixed.
    • CI with static analysis, CodeQL, secret scanning and Docker image scanning.
    • Protected branch, 2FA, Dependabot and a first public release (v0.1.0).

    Echo-AI

    100% local audio transcription with an AI assistant

    Problem

    Transcribing and summarizing audio without anything leaving the computer.

    Decisions

    • Whisper for transcription and Ollama for the assistant, both local.
    • Installers for Windows, macOS and Linux.

    How I verified it

    • Updated vulnerable libraries and shipped a new release (v1.0.1).
    • Dependabot and automatic checks on every change.

    YouTube Downloader

    Windows desktop app

    Problem

    Downloading video and audio from 1,000+ sites with a single installer that does not ask for administrator rights.

    Decisions

    • A packaged app, simple for non-technical users.

    How I verified it

    • An automated test suite (155 tests) and CI.

    Process

    How I work with AI

    AI writes fast. My job is to specify well, review what it delivers, and prove that it works.

    1. SpecifyRequirements, limits and acceptance criteria before asking for code.
    2. Generate in small stepsSmall changes, easy to read and to undo.
    3. ReviewI read the diff, ask why, and correct the AI when it is wrong.
    4. VerifyTypes, tests, scanners and an independent review by a second model.
    5. Ship with controlCI, protected branches and tagged releases.

    Real mistakes I caught

    • A pre-commit hook pointed to an old virtual environment, so commits failed silently. The “green CI” belonged to an older commit. I caught it by checking the commit hash on GitHub.
    • A test command swallowed the file path and ran the whole suite in 11 processes, freezing the machine. Now I check the scope before running.
    • Before publishing, an independent review found a personal e-mail in commit metadata and files outside Git.
    • An AI analysis of third-party code had 2 mistakes. A second review corrected them.

    For businesses

    Websites and automation for businesses

    I work with local businesses: fast websites that work well on phones, customer-service automation, and AI inside the business, local or in the cloud.

    See packages and prices

    Websites and landing pages

    • Plain HTML, CSS and JavaScript, without heavy dependencies.
    • Lightweight 3D scenes with Three.js (about 145 KB), with a photo fallback when the device cannot handle it.
    • Accessibility, reduced-motion support and a mobile-first approach.

    Automation and integrations

    • Building and integrating MCP servers.
    • Building and integrating REST APIs, including third-party systems.
    • WhatsApp customer-service and booking flows.
    • A local database (SQLite) and a read-only MCP server.
    • Local systems, with data kept only on the client's computer.

    Publishing and operations

    • Static hosting (Netlify, Cloudflare Pages), domain, DNS and HTTPS.
    • Google Search Console and structured data.
    • LGPD (Brazilian data protection law): only the data that is needed.

    AI inside the business

    • Local models inside the business (Ollama, Whisper): the client's data stays on their own machine.
    • Cloud models through APIs (LLMs), with cost, privacy and a fallback in mind.
    • Chatbots and assistants configured with the business's own information.
    • Choosing between local and cloud by privacy, cost and quality.

    Toolbox

    Stack and skills

    With an honest level for each.

    Core

    PythonDjangoFastAPIFlaskREST APIs (build and integrate)SQLPostgreSQLMySQLSQLite

    AI

    LLMsRAGFine-tuningMachine LearningWhisperOllamaMCP (build and integrate)Local modelsCloud models (APIs)

    Quality and security

    pytestmypy strictRuffBanditpip-auditgitleaksSemgrepCodeQLLGPD

    Infra and automation

    GitGitHub ActionsCI/CDDockerLinuxWindowsNetworkingPlaywrightWAHA

    Web

    JavaScriptThree.jsHTMXTailwindHTML/CSSNetlifyCloudflare Pages

    Computer vision

    YOLOOCROpenCVMediaPipe

    Growing

    Java (learning)PHP (basic)Flutter

    Live demo · Transformer

    A language model I trained from scratch

    A character-level GPT with 821,632 parameters, trained in 23 minutes on a laptop CPU on eleven public-domain works by Machado de Assis. It writes in the style of the author, but it does not understand what it writes. It runs in your browser, with no server.

    mini_gpt 821,632 paramsval loss 1.626in-browser
    
          
    0.80
    Press Generate. The 2 MB model is only downloaded now.code, weights and model card ↗

    Texts from 1880 to 1900, in the spelling of the time. The model invents words and loses the sense after a few lines; it can also reproduce outdated ideas from the texts. Low temperature: safer and more repetitive; high: more surprising and more nonsense.

    Live demo · Computer vision

    Computer vision: move your hand

    It tracks 21 points on each hand in real time and recognises gestures. It is the same logic as my Python project (MediaPipe and OpenCV), here running in your browser. The camera video never leaves your device.

    hand_tracker MediaPipe21 landmarks × 2 hands–

    gesture

    –

    extended fingers

      pinch (thumb + index)

      Press Start. The model (about 22 MB) is only downloaded now.MediaPipe (Apache-2.0) ↗

      Gestures: open hand, fist, thumbs up, peace, pointing, rock, three, four and OK. It works best with good light and the whole hand in view. No image is recorded or sent.

      Contact

      Let's talk

      WhatsApp, LinkedIn or GitHub: pick the channel you prefer.

      Try the neural network Packages and prices
      WhatsApp