Database engineering · EonTech
Data that stays fast and correct.
We design schemas, tune queries, scale workloads, and run migrations without drama — across PostgreSQL and relational systems, with the right NoSQL store where it genuinely fits. Measured, reversible, and yours.
- Senior engineers only
- Measured, not guessed
- GDPR · ISO 27001
- Measured
- Changes proven with before-and-after query plans
- Reversible
- Migrations ship with rollback paths and validation
- Your data
- Schemas, scripts, and infrastructure stay with you
Engineering practice
The discipline behind a database you can trust
Good database work is unglamorous and rigorous. We measure first, change carefully, and leave the system observable for the team that runs it.
- Model for the queries. Schemas designed around how data is actually read and written, not just how it is drawn.
- Index with intent. Indexes that match real query plans, reviewed against EXPLAIN, not guessed.
- Migrations that are safe. Online, reversible schema changes that ship without a maintenance window.
- Backups you have tested. Verified backups and rehearsed restores, because an untested backup is a hope.
- Observability built in. Slow-query logs, metrics, and alerting so regressions surface before users feel them.
- Least-privilege access. Scoped roles, encryption, and audit logging aligned to GDPR and ISO 27001.
What we do
Across the life of your data
-
Schema & data modelling
Normalised where integrity matters, denormalised where reads demand it. We model for correctness first, then for speed.
-
Performance tuning
Query analysis, indexing, and configuration work that turns slow, locking workloads into predictable ones — with the plans to prove it.
-
Scaling strategy
Read replicas, partitioning, connection pooling, and caching introduced only when the data justifies them, not preemptively.
-
Migrations
Version-to-version upgrades and engine moves executed with rollback paths, data validation, and zero-downtime techniques.
-
Relational depth
Deep PostgreSQL and relational expertise — constraints, transactions, and the guarantees that keep your data honest.
-
NoSQL where it fits
Document, key-value, and time-series stores chosen for the access pattern they suit, never as a default escape hatch.
The right store for the job
Relational by default, NoSQL by reason
A well-designed PostgreSQL database handles far more scale and complexity than most teams expect, and it gives you transactions, constraints, and ad-hoc querying that are costly to recreate elsewhere.
We reach for document, key-value, or time-series stores when the access pattern truly suits them — and we are honest when staying relational is the better, cheaper engineering decision.
See our data engineering workHow we work
Change a live database without fear
Production data leaves no room for guesswork. Every change is measured, reversible, and validated before it touches your users.
- 01
Profile before touching
We measure the real workload — slow queries, lock contention, growth — so changes target the actual bottleneck, not a suspected one.
- 02
Design the change
Schema, index, or topology changes are designed with a rollback path and validated against a copy of production-shaped data.
- 03
Migrate without downtime
Online migrations, backfills, and dual-write patterns where needed, so the change ships without a maintenance window or data loss.
- 04
Verify and hand over
We confirm the gains with measurements, leave observability in place, and document the model so your team owns it confidently.
Common questions
What teams ask about their database
-
Our database is slow — can you fix it?
Usually, yes. We profile the real workload first — slow-query logs, query plans, lock contention, and growth — then fix the actual bottleneck through indexing, query rewrites, schema changes, or configuration. We show the before-and-after measurements rather than promising a headline number we cannot back.
-
Should we move off PostgreSQL to NoSQL?
Often not. Relational databases handle far more scale than people assume, and they give you integrity and ad-hoc querying that are expensive to recreate. We move parts of a workload to a document, key-value, or time-series store only when the access pattern genuinely calls for it, and we are honest when staying relational is the better engineering choice.
-
Can you run a migration without downtime?
In most cases, yes. We use online schema changes, backfills, and dual-write or replica-based cut-overs with validation and rollback paths, so version upgrades and engine moves happen without a maintenance window. Where a brief window is unavoidable, we tell you up front and keep it minimal.
Make your database boring again
Tell us where it hurts — slow queries, a looming migration, or a scaling wall. We will profile it and scope a fix you can measure.