Skip to content

Full-stack & AI engineer · Web, mobile and LLM agents

Open to full-time, contract and B2B work · Remote, hybrid or on-site

Essen, Germany (CET) · EU citizen, open to relocation

Luis Otavio

I build whole products end to end: the app, the API and the LLM agent behind them, from training software used by Siemens Energy to WhatsApp bots for fire brigades.

  • 10,000+users on Tapnote's web app, which I built as sole developer
  • 3rd placein Meta's WhatsApp challenge for the Amazon, leading a team of 7
  • 3+ yearsshipping production software, since Jan 2023
  • 8,900+messages handled by the 2 production AI agents I build and run, for 118 people
Curupira · one agent on WhatsApp and Telegram that files fire reports, reads the fire-risk forecast and answers from brigade documents.

01 / Experience

Where I haveworked.

Remote with teams in Germany, Poland, Italy, the US and Brazil, after starting on-site at Huawei.

  1. Jul 2026 – PresentBrazil · Remote

    Terra Krya

    AI Engineer (Freelance)
    • Build and run 2 production AI agents on WhatsApp and Telegram for volunteer fire brigades and Brazil-nut producers, used by 118 people in 15 groups (8,900+ messages).
    • Forked them from my open-source AI Agent Boilerplate; each bot runs 2,300+ tests, with Sentry monitoring and FleetView, a dashboard I built for the fleet's health and conversations.
    • Python
    • Pydantic AI
    • pgvector
    • TypeScript
  2. Feb 2026 – Jun 2026Poland · Remote

    Tapnote

    Full-stack Developer (Contract)
    • Sole developer of Tapnote's web app (10,000+ users), the web version of a Polish AI study app with 30,000+ subscribers.
    • Reached feature parity with the native app; built LLM and RAG tutoring on PostgreSQL / Supabase.
    • Next.js
    • TypeScript
    • Supabase
    • AWS
    • RAG
  3. Jul 2025 – Jan 2026Germany · Remote

    Akdo.ai

    Full-stack Developer
    • Architected, in a team of 5, an AI enterprise training platform used by Siemens Energy, Henkel and Essity; its LLM authoring tools helped produce 50+ courses.
    • Built multi-organization auth with Better Auth for 3+ client organizations, a peer review system, and ISO/IEC 27001 controls for the company's certification.
    • Next.js
    • Better Auth
    • AWS
    • LLMs
  4. Nov 2024 – Jul 2025Italy · Remote

    Underdogs

    Full-stack Developer & Automation Lead (Contract)
    • Ran the company's IT infrastructure single-handedly, Kubernetes included, and built its web platform and a custom CRM used by about 30 staff.
    • Automated 20+ workflows, saving an estimated 40+ hours a week; launched a GraphRAG knowledge-base chatbot handling 100+ daily queries.
    • Next.js
    • Kubernetes
    • LangChain
    • n8n
  • 2019 – 2023BS, Computer EngineeringSorocaba University of Engineering
  • 2024 – PresentBS, System DevelopmentPontifical Catholic University of Paraná

02 / Selected work

Things I haveshipped.

Featured work first, each broken down into the problem, what I built, the stack and the outcome. Everything else lives in the archive below.

01Tapnote, Poland2026Sole developer

Tapnote Web

Problem

Tapnote, a Polish AI study app with 30,000+ subscribers, lived on mobile. Students needed the same tutor on the web.

What I built

  • Built the web app on my own, frontend to backend, at feature parity with the native mobile app.
  • Built AI tutoring with LLMs and RAG on PostgreSQL / Supabase for homework help and personalized study assistance.
  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Node.js
  • AWS
  • PostgreSQL
  • Supabase
  • LLMs
  • RAG

Impact

10,000+

users on the web app, for a study app with 30,000+ subscribers

  • Students get the same tutor in the browser as on their phone
web.tapnote.app (sign-in required)

02Akdo.ai, Germany2025–26Full-stack developer, team of 5

Enterprise Training Platform

Problem

Enterprises such as Siemens Energy, Henkel and Essity needed a training platform where courses could be drafted automatically, with each organization's users and data strictly isolated.

What I built

  • Built LLM course generation and AI-assisted authoring tools, so a course starts as a draft instead of a blank page.
  • Owned multi-organization authentication and tenant isolation with Better Auth.
  • Designed and shipped a peer review system so training creators receive structured feedback and ratings.
  • Implemented ISO/IEC 27001 controls with Kertos, supporting the company's certification.
  • Next.js
  • TypeScript
  • AWS
  • Better Auth
  • LLMs

Impact

50+

enterprise courses produced with the LLM authoring tools

  • Tenant isolation for 3+ client organizations
  • Supported the company's ISO/IEC 27001 certification
akdo.ai

03Terra Krya, Brazil2026AI Engineer

Curupira & OCA IÊ

Problem

Volunteer fire brigades in central Brazil and Brazil-nut collectors in the north both coordinate in WhatsApp groups, far from the platforms where their data lives: Caminho do Fogo for fires, IE Sociobio for harvest prices. I build the AI agents; Terra Krya brings them to the communities.

What I built

  • Curupira: brigade members sign in from the chat, report alerts and fires with a location pin and photos (each write confirmed before it is saved), check the INPE fire-risk forecast and ask questions answered by RAG over 68 brigade documents, with citations.
  • OCA IÊ: producers log harvest prices just by talking and compare regions; a weekly regional recap goes to each group, rewritten or rescheduled by asking the bot.
  • Both forked from my open-source AI Agent Boilerplate: one Python agent with voice notes in and out, on WhatsApp (Curupira on Telegram too), 2,300+ pytest and Vitest tests and Sentry monitoring.
  • FleetView, a Next.js dashboard I built to watch the fleet's health, conversations and knowledge bases.
  • TypeScript
  • Fastify
  • Baileys
  • grammY
  • Python
  • FastAPI
  • Pydantic AI
  • Gemini
  • PostgreSQL
  • pgvector
  • Redis Streams
  • Docker
  • Next.js

Impact

118 users

and 8,900+ messages across 15 groups, on 2 production agents

  • Field reports reach the fire platform straight from the group chat
  • Harvest prices shared across regions every week, from the platform's own data
caminhodofogo.com.br

04My product, pre-launch2026Sole developer

TourLore

Problem

Travelers either book a fixed group tour or piece a day together from blogs and maps. TourLore is an AI tour guide and trip planner for iOS and Android: it writes a personal walking tour for any city, narrates each stop, works offline and answers photo questions mid-walk.

What I built

  • Expo / React Native app with Expo Router, NativeWind, MapLibre maps, audio narration and offline mode, in a Turborepo monorepo with EAS builds.
  • Backend: a Hono + tRPC API on Google Cloud Run, Zod contracts shared with the app, Drizzle on Neon PostgreSQL, Inngest background jobs, Sentry and GitHub Actions CI.
  • An LLM tour-planning agent on the Vercel AI SDK and Gemini on Vertex AI, with tool calling, quality-gated by LLM-as-judge evals in Langfuse.
  • The Next.js 16 landing site in 30 languages (next-intl), with a Resend waitlist.
  • React Native
  • Expo
  • MapLibre
  • Hono
  • tRPC
  • Zod
  • Drizzle
  • Neon
  • Inngest
  • Vercel AI SDK
  • Gemini
  • Langfuse
  • Cloud Run

Impact

30 languages

on the landing site and waitlist, ahead of launch

  • Tour quality gated by LLM-as-judge evals before changes ship
  • One Zod contract shared by the app and the API
tourlore.co

05Open source2026Author

agent-mesh

Problem

When a change spans repos, you either restart in each repo and explain everything again, or let one AI agent edit a repo whose rules, hooks and conventions it never loaded.

What I built

  • A Python CLI where a lead agent hands each repo's part of a change to a Claude Code or Antigravity agent working inside that repo, in its own git worktree, with that repo's rules loaded.
  • Plan, review, execute: tasks are sized, strong models plan, the lead reviews each plan before any edit, and the same conversation executes on a cheaper model, switching models when a quota runs out.
  • Every PR gets cross-agent reviews from Claude Code, Gemini (Antigravity) and GitHub Copilot, and every agent runs in a terminal pane you can watch and type into.
  • Python
  • Shell
  • Claude Code
  • Antigravity
  • GitHub Copilot
  • git worktrees
  • herdr

Impact

85+ PRs

merged from mesh workers across 9 repos

  • Expensive models plan, cheap models type
  • Used day to day across my repos, this portfolio included
Luisotee/agent-mesh

06Open source2025–26

AI Agent Boilerplate

Every new chat agent rebuilt the same base: tools, memory, document search, voice and the chat clients.

  • Pydantic AI agent on FastAPI with 22 tools, per-user memory and pgvector RAG (LlamaParse ingestion, Gemini embeddings, page-level citations).
  • Whisper speech-to-text and Gemini text-to-speech in 5 languages; WhatsApp and Telegram clients over Redis Streams.

2,400+ tests

pytest and Vitest; the base Curupira and OCA IÊ were forked from

Luisotee/ai-boilerplate
  • Python
  • FastAPI
  • Pydantic AI
  • pgvector
  • TypeScript
  • Redis Streams

07Open source, WAppAIOSS

WhatsApp Chatbot Assistant

Bring context-aware LLM answers into the chat app people already use every day.

  • Open-source WhatsApp assistant on LangChain and LangGraph: pick OpenAI, Anthropic, Google, Groq or OpenRouter, with web search, voice messages and group chats.
  • Lead developer across 150+ commits.

125+ ★

GitHub stars and 39+ forks, my most-starred repository

WAppAI/assistant
  • TypeScript
  • Node.js
  • LangChain
  • LangGraph
  • Prisma
  • Docker

08LangChain.js, open source2024

Google Routes Tool

LangChain.js agents had no native way to plan routes, so travel and logistics agents had to hand-roll Google Maps calls.

  • Contributed the Google Routes Tool to @langchain/community: agents can ask for routes, travel times and distances through Google's Routes API.
  • Shipped with integration tests, docs and an example, reviewed and merged by the LangChain maintainers.

565 lines

merged into @langchain/community, May 2024

langchain-ai/langchainjs#5329
  • TypeScript
  • LangChain.js
  • Google Routes API

09Awana Digital, USA2024

Meta WhatsApp Challenge

Make environmental data reachable through conversation instead of raw datasets.

  • Engineered autonomous AI agents with LangChain, Smolagents and Mem0 that power conversational interfaces for environmental data.
  • Led a 7-person team on Terra Krya's entry to Meta's Desafio WhatsApp pela Amazônia.

3rd place

R$ 100,000 in funding for Terra Krya

desafiopelaamazonia.com.br
  • LangChain
  • Smolagents
  • Mem0
  • Python

10Underdogs, Italy2024–25

Web Platform, CRM and Automation

Operations depended on third-party tools and hours of manual work every week.

  • Ran the company's IT infrastructure single-handedly, Kubernetes included, and built its web platform with Next.js, React and Tailwind CSS.
  • Replaced third-party tools with a custom CRM used by about 30 staff.
  • Automated 20+ business workflows with Zapier, n8n and Make, plus a company-wide LangChain and GraphRAG chatbot handling 100+ daily queries.

40+ h / week

of manual work saved (estimated) across 5 staff

  • Next.js
  • React
  • Tailwind CSS
  • Kubernetes
  • LangChain
  • Zapier
  • n8n
  • Make

03 / GitHub

In the open.

@Luisotee on GitHub
public repositories
47+
stars on WAppAI/assistant
125+
forks of WAppAI/assistant
39+
stars on earth-defenders-assistant
13+

Pinned languages

  • TypeScript 3
  • Python 3
  • A WhatsApp AI assistant on LangChain: pick an LLM provider, with web search, Google Routes and voice messages, plus Google Calendar on OpenAI models.
    TypeScript125+stars39+forks
  • Google Routes Tool, merged into LangChain.js.
    TypeScript
  • Claude Code and Antigravity agents planning and executing across repos: expensive models plan, cheap models type.
    Python
  • Extensible multi-client AI agent with RAG, STT and TTS, with WhatsApp support via Baileys.
    Python
  • This portfolio, built with Next.js, Tailwind CSS, shadcn/ui and Motion.
    TypeScript
  • A platform for audio-first AI assistants that can work offline, built on a plugin architecture.
    Python13+stars

04 / Contact

Have somethingto build?

LanguagesPortuguese (native) · English (C2) · Spanish (A2) · German (A1)