Management App to the Cloud

Overview

Management App to the Cloud

My role: Architecture to deployed system, run and maintain.

Challenge: Migrate the MS Access management app of a knowledge company to a modern cloud infrastructure

Solution: Built a scalable, performant backend on Quarkus with a stylish, convenient frontend in React, transitioning over 15 years worth of accumulated business processes, VBA code and data in 9 months (80K+ LOC)

Impact: Replaced the slow, crash-prone system with a highly reliable, fast cloud-native one with a modern, convenient UI allowing remote access

Technologies: Quarkus, Java 21, React, Postgres, AWS (ECS/ECR, ALB, CF, RDS, S3)

Business-Critical System

The best applications are the ones that are directly tailored to the needs of the organisation. Not all companies invest the time and energy to develop fully customised apps for their own operational needs, but those that do gain a considerable advantage: it's not them who need to adapt to the technology; it's technology that adapts to them.

My client has invested in their own application from the outset over 15 years ago and built a highly customised application in Microsoft Access. The app covered every aspect of the company's operations: projects, tasks, financials, billing, expenses, reporting, asset and computing system management - a very comprehensive set of capabilities.

Migration Strategy

The core challenge was not just rebuilding screens, but migrating the data safely and repeatedly. I built the target data architecture first and then moved feature-by-feature, replicating or improving the existing business processes while continuously migrating data into the new model.

By the time we were ready to go live, we had run the migration process hundreds of times as part of regular development and testing. This made cutover low risk: go-live was simply loading the final database snapshot into production and switching over (a planned big-bang cutover).

Legacy Platform Constraints

This application is part of their team. It does what the team needs and the team knows its limitations and workarounds. Because as the platform ages and the application grows, limitations do appear.

In particular, remote working makes an Access-based solution really cumbersome and significantly increases the operational complexity and costs.

That was the impetus for moving the application to the cloud, to a modern platform that can cope with the current needs and will be able to adapt to the evolving technology landscape.

System Design Accelerators

To keep delivery fast while maintaining consistency, I designed a small set of reusable system primitives:

  • UI: two core components covered the vast majority of the UI surface: an auto-paginated list and a record editor. Both are reusable and configurable per feature, resulting in a consistent user experience across the system. A new feature practically needs the list of fields, which then generate the complete paginated list and record editor UI. Both UI elements are supported by corresponding backend classes as well.
  • API: a standard set of endpoints for each feature, with a consistent call pattern and JSON structure. Adding a new feature is largely configuration: registering it in a descriptor table makes CRUD available automatically, including caching and UI integration.
  • Autocomplete: a shared mechanism for dropdowns and search suggestions that automatically loads and caches list items, usable consistently in list filters and record editors.

Reliability, Security and Performance

The app is the nervous system that connects the staff members helping them with daily tasks. It is used all the time from associates to the CEO. And carries the highly valuable project and task information about the operations of the company, so the target platform must be secure, reliable and fast.

The solution takes advantage of AWS services for storage, compute and security. It is built on Quarkus, the highly performant Java platform providing enterprise-level robustness and scalability.

The user experience has been elevated from the legacy Access UI to a modern, visually pleasing and easy-to-use React-based single page application integrated with the backend.

Integrations

The system integrates with:

  • Google Workspace: Drive and email integrations, plus authentication via OpenID Connect (OIDC).
  • Finance: Intuit QuickBooks integration.
  • AI: OpenAI and ClaudeAI integrations.

Run and Maintain

In addition to delivery, I ran and maintained the system in production: deployments, new features, monitoring and alerting, backups, and ongoing security updates.