Migrating operational configuration between platforms is not simply a matter of copying records. Differences in data models, validation rules, relationships and platform-specific requirements mean that data must be understood, transformed and validated before it can be accepted by the target system.
I independently designed, developed, validated and executed a reusable migration solution to transfer approximately 5,000 production zones between two platforms with significantly different data models. The work combined SQL-based data extraction, relational mapping, transformation logic and production API submissions, including the handling of geographic data and car park boundary polygons.
What began as an investigation into a complex migration problem developed into a practical capability for processing large volumes of operational configuration. The migration logic subsequently provided a foundation for a separate synchronisation tool developed by Engineering, extending the value of the original work beyond the immediate migration requirement.
A growing migration programme exposed a significant scaling problem: recreating large configuration catalogues manually was increasingly impractical as volumes and delivery demands grew.
The challenge extended well beyond transferring individual records. The source and target platforms represented configuration differently, requiring the migration process to reconcile:
Differences in source and target data models and schemas
Relationships and dependencies between configuration entities
Mandatory fields and platform-specific validation rules
Enumerated values and incompatible representations
Inconsistent or incomplete operational data
Geographic information, including car park boundary polygons
Small inconsistencies could cause individual records or related entities to fail validation. Geographic data introduced additional complexity because boundaries needed to be transferred in a form the target platform could accept while preserving their intended meaning.
A viable solution therefore needed to combine data transformation, relationship handling, API integration and iterative validation into a repeatable process that could operate at production scale.
I approached the problem as a data transformation and systems integration exercise, designing the migration logic around the differences between the two platforms rather than relying on direct record copying.
My work included:
Analysing source data and target-platform schemas to identify structural differences and required transformations
Using SQL to extract and investigate operational configuration data
Mapping relationships between configuration entities to determine how records should be transformed and submitted
Implementing transformation rules to handle platform-specific requirements, incompatible values and data-quality edge cases
Integrating with the target platform's APIs to authenticate and submit transformed configuration
Handling geographic mapping data, including car park boundary polygons
Testing submissions against platform validation responses and refining the transformation logic iteratively
Documenting the resulting approach and technical findings to support reuse and subsequent engineering work
Rather than treating validation failures as isolated exceptions, I used them to identify gaps in the transformation rules and improve the handling of real-world data.
This iterative approach enabled the migration process to progress from exploratory testing to repeatable end-to-end execution, with the transformation logic encapsulating knowledge that would otherwise have remained in manual procedures.
The work delivered a reusable migration capability and demonstrated that large-scale configuration transfer could be achieved without recreating every record manually.
Key outcomes included:
Approximately 5,000 production zones migrated using the solution I designed and executed.
Around 2,000 zones processed in a single afternoon, helping clear a substantial operational backlog.
Automated extraction, transformation and API submission of operational configuration.
Preservation and transfer of relevant relationships and geographic data, including car park boundary polygons.
Reusable transformation logic that could be applied beyond a single migration exercise.
The broader significance of the work was the conversion of a complex, data-dependent operational task into a repeatable technical process. It demonstrated my ability to investigate unfamiliar systems, model their differences, develop and validate an integration solution, and deliver an outcome at meaningful operational scale.
SQL-based data extraction and investigation
Relational data modelling and schema analysis
Data transformation and mapping logic
REST API integration and production submissions
Geographic data handling and boundary polygons
Iterative testing and validation
Systems integration and platform migration
AI-assisted development with independent technical ownership
Technical documentation and knowledge transfer
Cross-functional engineering collaboration
Replicating complex operators within the configuration environment is often a slow, manual process involving repeated configuration, cross-checking, and significant risk of inconsistency.
To address this challenge, I designed and built an automated configuration replication framework as part of a wider AI-assisted automation platform. The solution replaces repeated manual configuration activities with a controlled, auditable workflow for cloning complex operators safely and consistently across environments.
The framework forms part of a growing automation ecosystem, establishing reusable approaches to configuration management, environment replication and migration support.
An operator within the configuration environment consists of dozens of interconnected records, relationships, rules, permissions and operational settings. Reproducing these structures requires more than copying individual records: relationships and dependencies must also be identified and preserved for the resulting configuration to function correctly.
Historically, replicating these structures required significant manual effort through administrative interfaces and ad hoc processes.
This created several challenges:
Slow delivery and repeated manual effort
Inconsistency between environments
Increased operational overhead and potential for human error
Difficulty maintaining configuration parity during testing and migration
Limited repeatability and traceability across replication activities
The underlying challenge was to reproduce complex configuration structures reliably while controlling changes, validating results and maintaining an auditable execution process.
I analysed the underlying relationships between configuration entities and developed an automated replication pipeline to reproduce complex operators in a controlled, repeatable manner.
The framework automates:
Configuration discovery and structured data extraction
Identification of dependencies between configuration entities
Replication sequencing to account for relationships and dependencies
Rules-based configuration transformation and replication
Automated validation to identify inconsistencies
Audit generation to support traceability and review
The execution workflow incorporates safeguards designed to make replication more controlled and recoverable:
Transactional execution with built-in rollback to protect against failed or incomplete replication
Optional post-creation purge script to remove a successfully cloned operator, if required
Dry-run capability to assess intended changes before execution
Automated validation checkpoints to identify discrepancies
Auditable execution logs to improve traceability
Version-controlled development and iterative refinement to support maintainability and controlled improvement
These controls help distinguish the framework from a basic data-copying script. The objective is not simply to reproduce configuration, but to make the process repeatable, verifiable and appropriately controlled.
By encoding configuration relationships and replication logic into reusable workflows, the framework reduces dependence on manual reconstruction and supports a more systematic approach to environment preparation and migration activities.
The framework established reusable technical patterns combining structured data handling, dependency-aware execution and validation. Its schema-mapping work directly informed the wider migration automation described in Case Study 1.
It also enabled operators to be cloned from production into staging and testing environments, allowing developers to test against representative configuration without compromising the live environment.
Key benefits include:
Reduced manual effort when replicating configuration
More consistent handling of related configuration entities
Improved control over execution through dry-run, transactional and rollback safeguards
Automated validation to identify discrepancies
Greater traceability through audit information
Reusable replication logic supporting wider configuration and migration activities
AI-assisted development and automation engineering
SQL and structured data processing
Data modelling and dependency analysis
Configuration discovery and replication
Rules-based data transformation
Workflow orchestration and execution control
Transaction management and rollback
Dry-run execution and automated validation
Auditability and traceability
Version control and iterative delivery
Complex pricing models can be difficult to implement reliably when multiple charging bands, time-dependent rules, non-uniform pricing increments and limitations in the underlying calculation engine interact.
I investigated and developed a solution for a complex parking-pricing model, including Lambeth's CO₂-based charging structure, which required multiple emissions-based pricing bands to behave consistently across different charging durations.
A key challenge was that the platform's native pricing calculations did not reliably preserve the required relationship between 15-minute and one-hour tariffs. I developed a dual-anchor calibration approach to reconcile both reference points, supported by custom calculation and automated validation tooling.
The work combined reverse engineering, mathematical modelling, configuration design and systematic testing to address a product limitation without requiring a dedicated engineering resource for the initial investigation and solution development.
Lambeth's charging model required multiple CO₂-based pricing bands, with prices behaving appropriately across different parking durations.
However, the platform's native calculation behaviour introduced a mathematical complication: four 15-minute charges did not necessarily equal the intended one-hour price.
This meant that calibrating against a single reference tariff was insufficient. An adjustment that aligned the 15-minute price could leave the one-hour tariff incorrect, or vice versa. Rounding behaviour and percentage adjustments added further complexity when assessing the resulting prices across longer durations.
The wider pricing challenge involved several interacting variables:
Multiple emissions-based pricing bands
Different charging durations and pricing reference points
Non-uniform pricing increments
Percentage adjustments and rounding behaviour
Limitations in the existing configuration model
Calculation behaviour that was not fully documented
Manual spreadsheet analysis and repeated trial-and-error adjustments were not a reliable way to investigate every combination. The solution needed to account for the platform's actual calculation behaviour and provide a repeatable means of testing the resulting configuration.
I approached the problem as a reverse-engineering and mathematical calibration exercise, investigating the relationship between configured tariffs, the platform's calculation behaviour and the expected pricing outputs.
My work included:
Analysing the pricing structure and identifying the relevant CO₂-based charging bands
Investigating discrepancies between configured prices and calculated outputs at different durations
Reconstructing the calculation behaviour needed to understand why the expected tariff relationships were not being preserved
Identifying the limitations of the existing configuration model and developing an interim approach to accommodate the required pricing structure
Building a custom calibration engine to calculate percentage adjustments against both the 15-minute and one-hour reference tariffs
Developing automated validation tooling to test pricing combinations and parking durations in batches
Using discrepancies identified during testing to investigate rounding effects and refine the solution
The dual-anchor calibration approach addressed the central problem: the configuration needed to account for both the 15-minute and one-hour tariffs rather than assuming that matching one would automatically produce the correct result at the other duration.
The calibration engine and validation tooling served complementary purposes. The calibration logic calculated the adjustments required to reconcile the reference prices, while automated testing provided a repeatable way to assess the resulting outputs across a wider range of scenarios.
This replaced a largely manual trial-and-error process with a structured technical workflow for investigating, calibrating and validating complex pricing behaviour.
The work established a practical approach to implementing and validating complex pricing behaviour within the constraints of the existing platform.
Key outcomes included:
A workable approach to configuring Lambeth's complex CO₂-based charging bands
A dual-anchor calibration method accounting for both 15-minute and one-hour reference tariffs
Custom calculation tooling to determine the required percentage adjustments
Automated batch validation across multiple pricing combinations and parking durations
A repeatable testing approach to support pricing verification and deployment readiness
Documented findings to inform future product requirements and potential enhancements
The validation tooling was valuable beyond the immediate configuration challenge. Rather than relying on isolated examples or repeated manual calculations, the approach made it possible to assess pricing behaviour systematically and investigate discrepancies across a broader range of scenarios.
The project demonstrates how I combined mathematical reasoning, reverse engineering and automation to work around a limitation in an existing product. Rather than treating the issue as a configuration problem alone, I investigated the underlying calculation behaviour, developed a targeted solution and built supporting tools to validate the results.
Reverse engineering and behavioural analysis
Mathematical modelling and pricing calculations
Algorithm design
Dual-anchor calibration and percentage adjustment calculations
Automated testing and validation
AI-assisted development with independent technical ownership
Problem decomposition and analytical reasoning
Technical requirements definition
Quality assurance and deployment risk reduction
Large-scale configuration programmes often depend on documentation assembled from multiple sources, with operational data needing to be interpreted, reconciled and transformed into structured outputs.
I developed an automated configuration-generation workflow that extracts operational configuration data and transforms it into structured, machine-readable outputs for downstream configuration and migration activities.
The solution combines data extraction, relationship mapping, rules-based transformation and diagnostic reporting. It incorporates operational knowledge into reusable logic, helping to produce consistent outputs while identifying cases that require further investigation or human review.
Generating machine-readable configuration outputs required information to be gathered and reconciled across multiple sources, with several layers of relationships and business rules influencing the final structure.
The source configuration involved:
Multiple data sources
Complex grouping structures
Overlapping tariff relationships
Conditional business rules
Dependencies between configuration entities
Naming conventions and evolving output requirements
Information not consistently captured in the existing configuration documentation
Producing the required outputs therefore involved more than extracting records. Configuration needed to be grouped correctly, duplicate information handled appropriately, relationships reconstructed and relevant business rules applied.
A further constraint was the existing configuration sheet, which does not capture all the information required to generate the complete machine-readable output. Some information must still be reviewed and entered manually before generation can be completed.
This creates an upstream process limitation: the automation can transform and validate the information available to it, but it cannot reliably supply missing information that was never captured.
I designed and developed an automated workflow to extract operational configuration data, apply transformation rules and generate structured outputs, with supporting diagnostics to identify situations requiring further attention.
The workflow incorporates:
Data extraction: retrieving relevant operational configuration from its source systems.
Relationship mapping: reconstructing the relationships between configuration entities needed for the target output.
Grouping and consolidation: organising related configuration and handling duplicate information where appropriate.
Rules-based transformation: applying business rules, naming conventions and structural requirements to the extracted data.
Machine-readable output generation: producing structured outputs for downstream configuration and migration activities.
Diagnostic reporting: identifying discrepancies and cases requiring human review.
A significant part of the work involved translating operational knowledge into explicit, reusable transformation rules. This enables known business rules and edge cases to be handled consistently, while diagnostic outputs identify discrepancies and cases requiring human review.
The existing source configuration template does not provide fields for every configuration variation required by the generation workflow. As a result, some information must still be added or amended manually before the complete output can be generated reliably. Further automation depends on extending the source template to accommodate these variations, alongside any further development of the generation workflow.
The workflow established a reusable approach to transforming operational configuration into structured, machine-readable outputs, reducing the need to assemble and reconcile all the information manually.
Key outcomes include:
Automated extraction and transformation of relevant configuration data
Repeatable application of grouping, relationship-mapping and business-rule logic
Generation of structured outputs for downstream configuration and migration workflows
Diagnostic reporting to identify discrepancies and cases requiring manual review
Improved consistency in how configuration information is transformed
Greater visibility of dependencies between source-data completeness and output reliability
The automation provides a foundation for further improvements to configuration generation and migration preparation. By making transformation rules explicit and repeatable, it reduces dependence on manual interpretation and supports more consistent handling of complex configuration structures.
By making transformation rules explicit and repeatable, the workflow reduces dependence on manual interpretation and provides a foundation for further improvements to configuration generation and migration preparation.
The work also identifies an opportunity to improve the upstream configuration process: a more comprehensive and extensible source template, capable of representing the full range of configuration variations, would reduce the remaining manual work and enable a more complete end-to-end workflow.
Data extraction and transformation
Relational mapping and dependency analysis
Rules-based automation
Structured and machine-readable output generation
Configuration modelling
Diagnostic reporting and exception handling
Data-quality analysis
AI-assisted development with independent technical ownership
Testing and validation
Process analysis and optimisation
Technical problem-solving