AskDB
A crewing database that was already structured and already trusted, with questions about it that queued behind whoever could write SQL. AskDB takes the question as a sentence and answers it with rows, showing the query it ran.
- Product Designer (sole)
- 2025
- Maritime crewing · natural language to SQL
- In production, default path for routine questions
01Context
This one started in a conversation with a client. They had a crewing database they already trusted, and questions about it they could not get answers to without going through the person who writes SQL.
It is the mirror of the other product I was building at the time. Marine Form Automation takes unstructured documents, CVs, passports and certificates, and turns them into structured records you can search. AskDB starts where that ends: the data is already structured and the schema is known, and what is missing is a way to ask it anything.
02The problem
A crewing officer wants the third engineers who can join before March. That is one line of SQL and one person who can write it, and the person who can write it has a queue. So the question either waits or never gets asked, and a database that could have answered it sits there being correct and unread.
Every question in that queue was one a crewing officer had already decided was worth answering.
03How it works
You choose the table you are asking about, type the question as a sentence, and the system writes the SQL, runs it, and returns the rows. The query it ran sits on screen beside them.
Turning language into SQL is the model's job. Making the answer something an operator can act on and an auditor can check was mine, and that is where the design time went.
04What I decided, and why
You choose the table before you ask. A sentence only resolves if the system knows which schema it is resolving against, and availability means a different column in three different tables. Choosing first turns an open-ended guess into a narrow one, and it tells the operator what the answer will be about before they read it.
Rejected Searching every table and inferring which one was meant.
The SQL is printed, not hidden behind a disclosure. Operators do not read it and nothing in the layout suggests they should. Engineers and auditors do. It costs a few lines of screen, and it is the difference between a tool people trust and a tool people spot-check.
Rejected A view-SQL toggle, for a cleaner surface.
AskDB reads; it never writes. No updates, no deletes, no side effects of any kind. Drawing the boundary there removed a whole category of objection from every approval conversation, and none of the questions people were queueing for needed a write.
The answer says how much of itself it is. A table on its own leaves the operator wondering whether they got everything. So the result carries how long it took, how many rows of how many matched, and a way out to CSV, because the list is usually going on to somebody else.
05A question worth keeping
Questions are saved as questions, not as SQL. The history keeps the sentence the operator typed and the table it ran against, titled by what it was for. An officer hiring third engineers in Mumbai this month will be hiring them again next month, and the reusable thing is the request. Nobody recognises their own generated query a week later.
Rejected A saved-queries list holding the generated SQL.
06Outcome
AskDB is in production and is the default path for routine questions of the database. The manual queue keeps shrinking as coverage grows. I designed it end to end as the sole designer, working with the engineering team through to release.
- Default path for routine questions
- Every answer prints the SQL that produced it
- Read-only by design: no writes, ever


