Back-end language · in regular use
Python agency in Nice
The language of data processing and artificial intelligence, and the one behind our automations.
What we do with it
Python at our clients, concretely
Used on a sentiment-tracking tool for AI models, with LangChain and a document store. It is the language we pick as soon as a project touches data or AI.
The limits
When we recommend something else
On a classic web application with a back-office, Laravel delivers faster.
Our work
Projects we delivered with Python
Paradigm
Platform for a Nice business centre: registered address, digitised mail, messaging and assistant.
Python: Service that reads scanned mail automatically (OCR).
Read the Paradigm case studySilversun — prospection
B2B prospecting tool for renewable energy: geocoded projects and enriched prospects.
Python: Prospect enrichment from public company data.
Silversun — suivi de chantier
Solar project progress timeline for the end customer, fed by the CRM.
Python: Receives CRM events and builds the timeline.
LLM Monitor
SaaS that measures how visible brands are in AI answers.
Python: Pipelines that query the models and analyse their answers.
Read the LLM Monitor case studyOrdelya
Restaurant management platform: back office, tablets, kiosks, screens and website.
Python: Central API and real-time delivery to devices.
Method
How we bring Python into a project
Before writing any code, we collect real samples of your files, exports or documents, including the badly formed ones, because those are what decide how robust the process will be. The project is then structured as a proper Python package rather than a standalone script, with dependencies managed by uv or Poetry, configuration read from environment variables and the repository opened in your name.
Each process is split into distinct steps (reading, cleaning, calculation or model call, writing the output), so only the step that failed needs to be rerun. For AI work, calls to the model provider go through a single layer that logs each request and its cost; that layer is what lets you switch models without rewriting everything else. Ruff checks style, mypy checks types, and pytest replays the samples gathered at the start, extended with every anomaly met in production.
Depending on the need, the process runs on a schedule, is triggered when a file is dropped in, or is exposed through a FastAPI API when another application has to call it. We hand over a runbook: how to rerun a job, where to read the logs and how to add a test case when a new file format turns up.
For your business
What it changes in practice
For your staff, a Python process replaces repetitive handling: copying columns from one export to another, retyping details read from PDFs, assembling the same report every week. The time saved depends on the volume and frequency of those tasks; we estimate it with you before quoting, and we do not start the project if that gain cannot be assessed. Copying mistakes disappear as well, since the same rule is applied to every row.
For management, the logic is no longer locked inside a spreadsheet only one person understands or in macros on a single workstation: it is written down, version-controlled and readable by another developer. When a supplier changes its file format, the fix is made in one place and the tests immediately show what it affects. For AI use cases, a process split into steps lets you go back over a questionable result and see which step produced it.
Our reading of it
What we take away from Python
Python is our working language whenever there is data to handle, a file format to make sense of, or a task to automate. The reason is prosaic: for almost every need of that kind a mature library already exists, which spares us writing an in-house parser that would then have to be maintained.
To expose a piece of processing as an API we go through FastAPI, which validates incoming data and documents the routes from the code itself. Results usually land in PostgreSQL, typed strictly enough that clean data stays clean. It is also the language in which nearly all language-model work happens, with LangChain once a processing chain grows past a single call.
Decision guide
Should you choose Python?
Python or JavaScript for automating internal data processing?
We choose Python as soon as a project handles data: Excel or CSV files to consolidate, information to extract from documents, calls to AI models, generated reports. Libraries such as pandas for tabular data or LangChain for chaining steps around models have no equally complete counterpart in JavaScript. Node.js keeps the edge when the script sits inside a web application whose team already works in JavaScript and the data stays simple.
Should the whole application be written in Python, or just part of it?
Not necessarily the whole thing. For a conventional web application with a back-office, Laravel delivers faster, because Python needs more components assembled to produce the same admin screens. We then recommend two separate parts: the management application in the best-suited framework, and a Python service dedicated to data processing or AI that talks to it through an API. Each part evolves at its own pace and can be handled by different specialists.
Python or a no-code automation platform?
A no-code platform suits linking two or three services with simple logic and low volumes. Python becomes the better option when rules multiply, when the data is sensitive or when the platform's subscription rises with the number of operations. The script is then version-controlled, tested and hosted wherever you decide, with no per-run billing. The trade-off is that changing it requires a developer rather than a staff member trained on the tool.
Client questions
What clients ask us about Python
Do we keep control of our data if you use Python for AI?
The language does not decide where data goes; the architecture does. Python code can run on your own server or with a European host and send a model provider only the excerpts it needs. Where confidentiality requires it, an open model can run locally. For each process we document which data leaves your systems, which service receives it and under what contractual terms.
Could a Python script built for us stop working over time?
Yes, if nothing is pinned down. A script depends on a Python version, on libraries that change and sometimes on external services whose formats shift. We pin versions in a dependency file, ship the process in a container that behaves identically everywhere and add tests against representative datasets. An alert fires when a run fails, instead of someone noticing an empty report after the fact.
Is it easy to find Python developers to take over the project?
Python is among the most taught and most widely used languages, particularly in data and AI, which makes hiring or changing supplier straightforward. A smooth handover depends mostly on how readable the project is: we follow common style conventions, add type hints and provide installation instructions. An outside Python developer should be able to rerun a process without knowing the project's history.
Can you convert our Excel or VBA macros to Python?
Yes. We start by reading the macros and running the old workbook on real files to pick out the implicit rules it applies. The Python process then reproduces those results, and we compare the output of both versions on the same data before switching over. If a simple macro works well and rarely changes, we tell you so: rewriting it would give you nothing.
Will our staff be able to run the process without technical knowledge?
Yes, and the interface depends on how it is used. For an occasional job, a shared folder is enough: you drop the file in and the result appears alongside it or arrives by email. If parameters need choosing, we add a small internal web form. A recurring job simply runs on schedule. Error messages are written for the user, for instance naming the row and column of the file that needs correcting.
Going further
Python sits within our Software development
A technology does not make a project. The method around it decides the outcome: scoping, prototypes, short cycles, and a clean way out.
Neighbouring technologies
A Python project in mind?
The first conversation is free. We will tell you plainly whether this technology is the right one, and if not, which is.
Updated on