const marco = {
role: "Senior Full-Stack & AI Engineer",
experience: "6+ years, most of it as the sole engineer or tech lead",
focus: ["backend architecture", "applied generative AI", "developer tooling"],
stack: {
languages: ["TypeScript", "Go", "Dart", "Python", "SQL"],
backend: ["Node.js", "NestJS", "FastAPI", "gRPC / Connect-RPC", "Kafka", "DDD", "CQRS"],
frontend: ["React", "Next.js", "Vue", "Nuxt", "Astro", "Tailwind"],
mobile: ["React Native", "Expo", "Flutter"],
ai: ["LangGraph", "LangChain", "RAG", "Qdrant", "pgvector", "MCP"],
infra: ["Kubernetes", "Docker", "AWS", "GCP", "Postgres", "Redis"],
},
shipped: [
"a CRM backend rewritten TypeScript → Go in under two months, solo",
"a VoIP platform on Asterisk that cut telephony cost ~60%",
"a RAG platform indexing 246 government portals",
],
currentlyLearning: ["distributed systems in Go", "LLM evaluation"],
funFact: "I once inherited a React Native app declared impossible to update. It shipped a week later.",
};Languages
Backend & Architecture
Frontend & Mobile
AI & Data
Cloud & DevOps
Three projects, one thesis: AI agents can reason, but they still can't reliably reach the web. Anti-bot walls, messy HTML and untyped data break them. These close that gap, bottom to top.
| Project | What it does | |
|---|---|---|
| 🐹 | cloudscraper-go | Native Go client that fetches anti-bot–protected pages using real browser TLS/JA3·JA4 fingerprints (uTLS) — no Python, no headless browser. Concurrent crawler, Prometheus metrics, MCP server. Single static binary. |
| 📦 | cloudscraper.js | npm-published Node/TypeScript SDK over the same problem: reusable hot sessions, an MCP server + LangChain tool, and clean Markdown output for LLMs. |
| 🎯 | jobradar-ai | Agentic LangGraph pipeline that scrapes job boards, LLM-extracts a typed schema, indexes into Qdrant and ranks openings against a CV. mypy --strict, with an LLM evaluation harness wired into CI. |
Also worth a look
| Project | What it does | |
|---|---|---|
| ☎️ | frontdesk-ai | Bilingual (EN/FR-CA) AI voice receptionist for Canadian service SMBs — answers overflow calls, qualifies, books and notifies. Go realtime telephony plane (Telnyx/Asterisk, barge-in, degradation ladder) + Python LangGraph agent, event-sourced on NATS JetStream, React 19 + Expo apps, full OTel/Grafana observability. |
| 🌐 | maarkn.dev | My portfolio — Next.js 16, React 19, strict TypeScript, a RAG-powered assistant that answers questions about my work, and a three-theme design system. Self-hosted on Docker/Traefik/EC2. |
| 🩻 | radflow.ai | Radiology worklist & dictation cockpit — NestJS microservices over NATS JetStream. |
I'm looking for a senior full-stack, backend or AI engineering role with an international team.
- 🇨🇦 🇮🇪 🇩🇪 Relocation — actively pursuing permanent residence in Canada (Express Entry / PNP, NOC 21231) and open to employer-supported relocation to Ireland or Germany.
- 🌐 Remote, worldwide — available immediately as a B2B contractor through my own company, no visa or sponsorship required.
- 🗣️ Portuguese (native) · English (professional working proficiency)
📬 Best way to reach me: LinkedIn or the contact form at maarkn.dev.



