Projects

Flagship case study

FeaturedAgentic workflowsData scienceGenerative AI

Iadvice

Now your data talks to you directly

The goal was not only to generate SQL, but to make data access reliable, guided, and genuinely useful for business users who need answers without depending constantly on technical teams.

Overview

Context

Freelance project for Circoe, a logistics consulting company

Timeline

2024-2025

Stack

Django · Docker · LLMs · PostgreSQL · Python · RAG · React · SQL

Published

June 2025

Iadvice

My role

Lead ML/Backend Engineer and technical lead

I owned the architecture and delivery end to end: NLP pipeline, Django backend, infrastructure, deployment, and technical coordination across frontend and design.

Key responsibilities

  • Designed the NLP pipeline and the Text-to-SQL generation system
  • Owned backend architecture, application schema, and Django REST API
  • Supervised a frontend freelancer through technical framing and code reviews
  • Worked closely with the UI/UX designer to translate designs into usable features
  • Set up server infrastructure, Docker deployment, and the production environment

Proof points

SQL accuracy

around 95%

Processing time

6 to 30 seconds from question to enriched answer

Target users

managers and decision-makers with no SQL expertise

Team setup

  • ML/backend: me
  • Frontend: one supervised freelance developer
  • Design: collaboration with a UI/UX designer

The problem to solve

Circoe needed to let its clients access and analyze their data without relying constantly on technical teams. Business users needed to ask questions in natural language, get reliable answers, configure alerts, and build dashboards.

The real challenge was not only generating SQL. The workflow had to be reliable, understandable, and useful for non-technical users while preserving performance, security, and result quality.

How I structured the solution

I designed a full SaaS platform that turns natural language questions into usable SQL through a multi-step pipeline: schema filtering, question decomposition, incremental SQL generation, then answer formatting with visualization.

To reach a high reliability level, I used techniques inspired by top BIRD Text-to-SQL approaches, including advanced prompting, RAG with pgvector, and reuse of validated user queries when similar cases reappear.

The product goes beyond SQL generation itself: it also covers database connection, dashboards, automated alerts, and an experience guided enough to stay usable for business teams.

Screenshots

Challenges that shaped the project

Making SQL generation reliable

Problem

The system had to stay accurate across complex schemas, implicit business logic, and highly variable user phrasing.

Solution

I combined schema filtering, question decomposition, stepwise SQL generation, and a feedback loop based on validated queries to improve accuracy without sacrificing usability.

Making the product usable for non-technical users

Problem

A strong ML demo is not enough if users do not understand what is happening or cannot trust the result.

Solution

I helped shape a guided workflow with visualizations, dashboards, alerts, clear feedback, and close design collaboration so the tool would be convincing in real use.

Owning the project end to end

Problem

The project involved ML, backend, infrastructure, and cross-functional coordination to reach a coherent delivery.

Solution

I took ownership of the overall architecture, backend, deployment, and technical leadership, while giving the frontend clear interfaces and keeping the product aligned with real user needs.

Results and impact

  • Around 95% SQL generation accuracy within the project context
  • Roughly 6 to 30 seconds from user question to full answer with visualization
  • A self-service analytics experience for users without SQL expertise
  • Alerts and dashboards that reduce dependence on technical teams for routine business answers
  • A product base that Circoe can reuse with multiple clients

Visible proof

The public online demo is temporarily unavailable (maintenance).