# Software modernisation & maintenance

> Taking over and maintaining software you already run — framework, dependency and database upgrades done step by step, while the system stays in use.

Canonical: https://www.deusengineering.com/en/services/software-modernisation-maintenance · Language: en · Last updated: 2026-10-19

Review & continuity · [Services](https://www.deusengineering.com/en/services)

Modernisation is work on legacy software your business still runs on: taking it over, bringing its framework, runtime and database up to supported versions, and keeping it maintained afterwards. The system stays in use while the work goes on — each change ships on its own, small enough to review, test and release, and any planned downtime is agreed in advance.

It fits when replacing the system would cost more than repairing it: the workflow is right, but the code is outdated, nobody left knows it well, or every update feels risky. If the first question is whether the system is worth keeping at all, a technical audit comes first.

Outcome: The software you already rely on, safe to change again.

## Typical needs

- A business-critical application on versions nobody dares to upgrade
- Dependencies with known vulnerabilities, or a framework past its end of support
- The developer or agency who built it has moved on

## What you receive

- Tests and documentation around the parts that matter, before the upgrades begin
- Upgrades and migrations in small, tested releases — no big-bang rewrite
- Ongoing maintenance: dependency and security updates, fixes and improvements

## How the work runs.

1. Take over and reproduce: Access to the code, environments and deployment setup is handed over and documented. The application is then built and run from the repository alone, so nothing depends on one person’s machine.
2. Checks before changes: Automated checks go in before any upgrade: lint, type checks, a build and tests for the flows the business depends on. From then on, every change runs them.
3. Upgrade in small steps: Framework, runtime, dependency and database upgrades are ordered so that each release stays small. Migrations are versioned, and where a part is replaced, old and new run side by side until the switch is safe.
4. Keep it maintained: Dependencies are updated and security patches applied on an agreed schedule, alongside fixes and improvements. Every change is recorded, so the next engineer can pick up where the work left off.

## Technologies

- TypeScript
- React & Next.js
- Node.js
- PostgreSQL
- GitHub Actions

## In practice

Pametni Advokat is maintained in-house: every change runs lint, type checks, tests and a build; dependencies are updated weekly, and a high-severity vulnerable dependency fails CI.

[Pametni Advokat](https://www.deusengineering.com/en/work/pametni-advokat)

The engineer who does this work is the founder, Filip Volf — you work with him directly. [About](https://www.deusengineering.com/en/about#founder)

## About this service.

### How is modernisation different from technical audit & architecture consulting?

A technical audit ends with a written review — findings, priorities and trade-offs — for you to decide on. Modernisation is the work itself: the upgrades, migrations and maintenance. An audit is a good first step when you are unsure what is worth keeping; when the direction is already clear, the work can start without one.

### Do you rewrite the software from scratch?

Not as a whole. Working software holds years of business rules that a rewrite would have to rediscover. Instead, it is upgraded and replaced piece by piece while it stays in use; a part is rebuilt only when that costs less than repairing it.

### Can you take over software someone else built?

Yes — taking over is where this work starts. It fits best with TypeScript, React or Next.js front ends and Node.js or PostgreSQL behind them. The first step is getting the code, environments and deployments under control; scope and terms are agreed in writing before work begins.

## Related services

- [Technical audit & architecture consulting](https://www.deusengineering.com/en/services/technical-audit-consulting): A written review of a system you run or a decision ahead — architecture, data model, code, dependencies, security and operations — with findings in priority order.
- [Cloud infrastructure & integrations](https://www.deusengineering.com/en/services/cloud-infrastructure-integrations): Deployments, CI/CD, email, storage and third-party APIs wired together so releases are routine and integrations fail loudly, not silently.
- [Remote engineering partnership (B2B)](https://www.deusengineering.com/en/services/remote-engineering-partnership): Full-stack engineering capacity for your product under a B2B contract with a registered Serbian company — in your repositories and your working hours.

## Let’s talk about what you’re building.

Describe what you need built or fixed, how the work runs today and the constraints. You get clarifying questions or a first outline of the approach — by email, in English or Serbian.

Or write directly: contact@deusengineering.com · [Contact](https://www.deusengineering.com/en/contact)
