Timezone Drift in a France-Only Cron Schedule
We run a nightly aggregation job for a France-only product. The schedule was a plain `0 2 * * *` in a container that had `TZ=Europe/Paris` set in the Dockerfile. It worked for months, then the March D
We run a nightly aggregation job for a France-only product. The schedule was a plain `0 2 * * *` in a container that had `TZ=Europe/Paris` set in the Dockerfile. It worked for months, then the March D
A weekly pg_dump of a 38 GB database on a French VPS (OVH, Debian 12, PostgreSQL 15.4) started failing every Sunday around 03:40. The dump itself was written to the local disk first, then shipped to o
A nightly job pulls a supplier CSV from a partner in Lyon and upserts it into Postgres 15 on a small OVH VPS. About 180k rows, 14 columns, one of them a French product label with embedded semicolons.
A few months ago I inherited a small Postgres 14 instance on a French VPS (OVH, 4 vCPU, 8 GB RAM) that powers an internal search over about 600k French documents — product notes, support tickets, a fe
A support ticket from a user in Lyon came in as "export shows wrong dates." The export was a CSV we generate from a Postgres view, consumed by a small internal tool. Version: Node 20.11, `date-fns` 3.
We shipped SMS verification to French users in March. Same code path as everywhere else: E.164 in the database, a small normalization step on input. About 4,000 signups a week from France at that poin
Our finance team in Lyon exports a monthly settlement CSV from an internal Django admin. Around 180k rows, 14 columns, semicolon-delimited because Excel on French Windows expects that. For about two y
Our release automation had a hard-coded freeze window: no deploys between 18 December and 4 January, and on any day flagged as a French public holiday. It lived in a single Python module, `deploy_wind
We run a small SaaS with a mostly French user base. Postgres 14.9 on a managed instance in Paris, Django 4.2 in front, connection through PgBouncer in session mode. Last spring a support ticket came i
We run a small storefront for French customers on a single VPS in Roubaix (OVH, Debian 12, nginx 1.24). Last month we added a country redirect: visitors from outside France should land on `/en/`, Fren
Building a checkout for French customers, we hit the same wall twice: the address form. Not the API, not the payment provider — the form and the data behind it. Our stack was a boring Django app on a
Two weeks ago our small API (single EU region, Postgres 14, Nginx 1.22 in front, ~40 req/s at peak) started returning 429s to users who insisted they had only refreshed once. The logs told a different
Last spring we moved a small internal tool (Rails 7.0, Postgres 14.9, Ruby 3.2.2) onto a single VPS in Roubaix, 4 vCPU / 8 GB, Debian 12. The database was about 6 GB, dominated by one table: `events`,
We run a small ingestion service on a French VPS (Debian 12, systemd 252, PostgreSQL 15). It pulls a partner feed every 15 minutes and writes roughly 40k rows/day; one nightly job rebuilds a rollup th
The service is a small Django app (Python 3.11, psycopg 3.1) on a two-node setup: app containers on OVH in Gravelines, Postgres 15 managed elsewhere. Two months ago we put PgBouncer 1.21 in front of P
We moved a small internal service from one Paris-region provider to another in March. Same city, same nominal latency, same Debian 12 image, Node 20.11, a single Postgres 15.6 instance with about 40 G
Our public API serves about 40k requests/day, mostly French users, and until last spring it ran out of a single `eu-west-3` (Paris) region. p50 looked fine at 180 ms from Paris, but p95 from Marseille
We ran a 3-node Postgres 14 cluster on OVH in Roubaix and Gravelines, streaming replication, maybe 400 GB of data and a write rate of roughly 1200 rows/s at peak. For ten months it was fine. Then in l
Our billing service runs in eu-west-3 (Paris) on a single 4 vCPU instance, Postgres 15 alongside it, roughly 40k webhook events a day from a payment provider. Nothing exotic. In March we saw a pattern
Our team of six sits in Paris and Lyon; the services run in eu-west-3. For two years the on-call schedule lived in a spreadsheet with a note that said "heures locales" and that was the whole timezone