I build systems that reason over data and survive contact with production. Started in models, moved to infrastructure, ended up teaching machines to think — and I still reach for a parser before I reach for an LLM.
flowchart LR
DS["Data Science<br/>2018–2023"] -->|scale it| MLOps["MLOps<br/>2023–2025"]
MLOps -->|make it reason| AI["AI Engineering<br/>2025–2026"]
style DS fill:#1f6feb,stroke:#1f6feb,color:#fff
style MLOps fill:#8957e5,stroke:#8957e5,color:#fff
style AI fill:#3fb950,stroke:#3fb950,color:#fff
Data Science taught me rigor ... temporal splits, skew, the difference between a good metric and a lucky one. The model, it turned out, was 10% of the job; the pipeline was the rest. MLOps taught me to own that rest — the plumbing that feeds, monitors, and retrains a model long after training. AI Engineering taught me restraint: language models rewrote the rulebook, but an LLM is a tool, not a default so I stopped reaching for one when a deterministic path will do.
service:
name: nasserboan
role: Senior ML / AI Engineer
location: Brasília, Brazil 🇧🇷
github_since: 2015
ships_to_prod: true
capabilities:
- LLMs, agents & Retrieval-Augmented Generation
- Data lineage & metadata extraction
- MLOps — Kubernetes, ArgoCD, GitOps, experiment tracking
- End-to-end ML — feature engineering → serving
- Community — talks & teaching
stack:
languages: [Python, SQL, Bash]
ai_llm: [LangChain, CrewAI, Ollama, OpenAI, ChromaDB, docling, MCP]
ml: [LightGBM, PyTorch, TensorFlow, scikit-learn, Optuna]
serving: [FastAPI, MongoDB, uv, Docker]
orchestration: [Kubernetes, Minikube, ArgoCD, MLflow, Metaflow]
frontend: [React, Vite, Next.js]
contact:
linkedin: nsboan
party_trick: can bend his own ear # load-bearing personality traittalks_and_teaching:
- PyData Brasília — MLflow for experiment tracking
- Banco do Brasil — RAG systems in production
- Ministério da Infraestrutura — taught Python
also_running:
- a homelab that is somehow always on fire and always up$ uptime → deployed since 2015 · no critical incidents · ship it 🚀





