Case study 02 · Brownfield Modernization / Enterprise Systems · 2017 – 2024
Enterprise Platform Modernization
Contributed to the development and modernization of an enterprise municipal software platform containing more than ten interconnected subsystems.
- Domain
- Municipal automation
- Role
- Senior developer & team lead
- Type
- Brownfield modernization
- Stack
- .NET · SQL Server · PostgreSQL
Challenge
A municipal platform of 10+ interconnected subsystems (workflows, WebGIS, reporting, digital files, signatures) needed a modern .NET stack.
Key decision
Migrate subsystem by subsystem instead of rewriting, keeping shared data and integrations stable while code changed.
Result
Five related subsystems moved from .NET Framework to .NET 7, alongside five complex subsystems developed within the platform.
From my work before founding ArtaPattern. Client names and confidential details are left out, and diagrams are conceptual.
Modernizing a platform that cannot stop
A municipal automation platform covering workflows, WebGIS, reporting, digital file management and digital signatures, made of more than ten interconnected subsystems. Development and modernization had to happen while the platform stayed in daily use.
Engineering context
Over seven years I led development and technical delivery on the platform, coordinating development, support and stakeholder requirements, and delivered related products including a municipal services portal and building-violation commission software.
Problem & constraints
- More than ten subsystems shared data and workflows, so changes in one could affect others.
- The platform was in daily use; modernization had to be incremental.
- Spatial data and reporting depended on SQL Server and PostgreSQL staying in sync.
Incremental, subsystem-by-subsystem migration
Five related subsystems were moved from .NET Framework to .NET 7 one at a time, keeping shared data and integrations working throughout. Database work focused on optimizing SQL Server stored procedures, triggers and spatial queries and maintaining synchronization with PostgreSQL.
Key engineering decisions
Migrate incrementally, not in one rewrite
Each subsystem moved separately while the rest of the platform kept running.
Keep shared data stable during migration
Database contracts and synchronization stayed in place while application code changed.
Optimize at the database where it matters
Stored procedures, triggers and spatial queries were tuned directly in SQL Server.
Implementation & delivery
- 01
Assess
Subsystem dependencies.
- 02
Migrate
One subsystem at a time.
- 03
Optimize
SQL Server and spatial queries.
- 04
Support
Stakeholders and operations.