Skip to content
Philosophy

Not prompt engineering. Systems architecture.

Five principles that define how I design autonomous systems. Each one is a result of real failures and iterations.

01

Consensus over trust

No single LLM makes decisions alone. Every critical decision goes through a panel of 4 independent providers with quorum ≥3/4. Different reasoning architectures (reasoning tokens, thinking blocks) compensate for each other's weaknesses.

02

Evaluation is built-in, not bolted on

Every pipeline stage passes through an evaluator. A judge system with 26 checkpoints and a 100-point scale. A critic with 5 criteria. A reviewer with retry cycles. Evaluation is not the final step — it's a component of every step.

03

Rejection is cheaper than rework

Kill gates stand before every expensive stage. If an idea doesn't pass the critic (< min_score), it won't reach code generation. Every rejection is recorded with kill_stage and kill_reason for funnel analytics.

04

Agents as components

Each agent is a service with a defined contract: inputs, outputs, prompt, model, max_tokens. Agents don't know about each other — the orchestrator manages the flow. This allows replacing, scaling, and testing each one independently.

05

Meta-level: agents for agents

Agent Manager monitors all parallel sessions. Buddy System automatically restores context when switching tasks. Thinking Amplifier forces a pause to analyze alternatives before making a decision.

Stack

Technologies

Tools are chosen for the task, not the other way around.

Orchestration

PythonasyncioFastAPIRedis Streams

LLM Providers

OpenAIAnthropicGoogle GenAIDeepSeek

Agent CLI

Claude Codeclaude --printMCP Protocol

Data

PostgreSQLSQLAlchemy 2.xRedis

Frontend

Next.jsReactTypeScriptTailwind CSS

Infrastructure

DockerNginxPM2SSH/paramiko
Conscious Choice

Why NOT LangGraph, CrewAI, Fine-tuning

Every 'gap' is a conscious architectural decision, not ignorance.

LangGraphCustom orchestrator with DAG + kill gates + multi-model consensus

LangGraph doesn't support 2-stage deliberation and kill gates at arbitrary points. A custom orchestrator gives full control over flow, retry logic, and observability.

CrewAI / AutoGenCustom framework: agent contracts, retry, observability

Frameworks abstract away what needs to be controlled: prompts, call order, error handling. Custom code is transparent, testable, and has no magic.

Fine-tuning (LoRA/QLoRA)Focus on systems engineering: orchestration > model training

Models are a commodity that updates every 3 months. Orchestration architecture is a sustainable moat. Investment in systems engineering yields greater returns.

DSPyManual optimization via A/B + critic loops

Automatic prompt optimization works well for simple tasks. Complex multi-agent pipelines need control over every step.

LangFuseOpenTelemetry + Jaeger + Grafana

Universal observability, not tied to LLM-specific tooling. The same metrics, traces, and dashboards work for all system components — not just LLMs.

“If an agent can make a mistake — it will. That's why every result goes through independent evaluation, not hope.”

Ready to discuss?

If you need an architect who builds autonomous AI systems — reach out.

Serbia-based · CET/CEST timezone · EU-aligned working hours · International contracts experience