ENGINEERING CASE STUDIES / FOUNDER & APPLIED AI

From the user problem to the system behind it.

Two products I created. The implementation choices, data flows and operating constraints behind the experience.

Lume ↓   Cop.ia ↓

01 / AI-FIRST PRODUCT · MOBILE + BACKEND + RETRIEVAL

Lume: continuity across conversations.

The problem: a conversation loses value when users have to rebuild the context every time. I created Lume to carry useful context between sessions, connecting product design, a mobile interface and a memory-aware AI backend.

My role: product creator and founder, from the original idea through AI-assisted development, user validation and the SEBRAE SC acceleration programme.

01 · ApplicationFlutter / Dart · Riverpod · GoRouter
Onboarding, conversation, voice and profiles
02 · BackendFastAPI · async SQLAlchemy · model SDKs
Tool calls, streaming and session lifecycle
03 · Data & retrievalPostgreSQL / JSONB · Qdrant
Application records, factual memory and conversation search

What happens during a conversation

  1. The mobile app sends the interaction through the backend. Application records and session state are managed separately from the model response.
  2. The context layer combines available factual memory and session context within an explicit budget.
  3. A search_memory tool lets the model request relevant conversation history. Retrieval is scoped to the user; results are selected as context rather than treated as an unlimited transcript.
  4. The backend coordinates model calls and streams the response. Summarization and usage tracking support continuity and the cost of subsequent interactions.

Structured memory + semantic retrieval

PostgreSQL JSONB stores factual memory alongside application data. Qdrant supports searching prior conversations. Separating these responsibilities keeps an explicit distinction between stored facts and context selected by relevance.

Trade-off: retrieval adds flexibility, but requires relevance checks and context management. More retrieved text is not automatically a better answer.

Custom orchestration

Python services connect model SDKs, tool calls, streaming and summaries. This gives direct control over how conversation state and tool results enter the model context.

Trade-off: control also means owning failure handling, integration behavior and regression checks as model APIs evolve.

Containerized services

A Python 3.12 Docker image packages the API. Docker Compose defines the API, PostgreSQL and Qdrant, persistent database volumes and service health checks. Startup code coordinates database migrations and vector-collection initialization.

Design concern: startup order, persistent data and service readiness must be handled independently from the application image.

Tests and operating costs

The repository includes tests for authenticated session creation, invalid resource handling and text/voice usage-cost calculations. Voice interactions connect transcription and speech synthesis to the same product experience.

Evaluation focus: retrieval relevance, separation between users, latency, cost per interaction and behavior when a tool or model call fails.

Validation included 50+ users. The test examples above describe checks implemented in the repository; performance measurements are a separate evaluation task.

02 / QUANTITATIVE TECHNOLOGY · AUTOMATION + SUBSCRIPTION OPERATIONS

Cop.ia: domain expertise delivered as a product.

The problem: individual investors need an accessible way to use quantitative strategies without manually executing every trade. I created a subscription product around a portfolio of 16 automated strategies, with operations replicated to subscriber accounts through copy trading.

Research & analysisPython · regime analysis · historical data
Strategy executionMetaTrader 5 / MQL5 · automated portfolio
Subscriber deliveryCopy trading · brokerage accounts · subscription onboarding

Research is a separate responsibility

R&D includes four-state HMM regime analysis and instrument-specific XGBoost experiments using 39,165 historical trades and 16 features. Independent-data validation is used to assess practical usefulness.

Experimental scoring remains within R&D, with independent-data validation guiding further development.

Implementation meets operations

Python, JSON and MQL5 connect analytical workflows with MetaTrader; APScheduler supports scheduled processing. My work also includes acquisition, onboarding, subscriptions and the commercial decisions around delivery.

The product operates through XP and BTG, connecting the product with institutions from my earlier financial career.

The engineering questions behind automated execution

Signal generation, execution and replication are different stages. They need to be reasoned about separately when discussing delayed data, interrupted connections or differences between accounts. A research result alone does not establish live execution quality.

Architecture overview: quantitative research, automated execution and subscriber delivery.

WORKING METHOD

Understand. Build. Validate. Improve.

I use AI throughout development to accelerate exploration and implementation. Product ownership stays with me: framing the problem, choosing the approach, reviewing the implementation and deciding what needs to change based on feedback.

My experience connects Python services, RAG and agent workflows, relational and vector databases, mobile development and Docker-based packaging with user needs and business constraints.