How Data Lifter Helped a Global Energy Company Modernize Legacy Python 2x Faster
Client Overview
Operating across more than 70 countries, the client is a global energy and petrochemicals company with approximately 85,000 employees. Its business spans oil and gas exploration and production, natural gas and LNG, fuels and lubricants, chemicals, energy trading, and lower-carbon energy solutions. With a presence across multiple energy markets, the company serves around 1 billion people with energy every year and 29 million customers daily through its branded mobility network.
Untangling Legacy Python Before Platform Migration
The legacy environment presented challenges in converting Python workloads due to the complexity of the codebase. Limited visibility into business logic and dependencies made it difficult to preserve existing functionality during migration.
01
Scattered Business Logic
Business logic was spread across multiple Python files, which made it difficult to trace how different parts of the codebase worked together.
02
Undocumented Data Sources
Data sources lacked documentation, and key dependencies remained unclear during code analysis and conversion.
03
Tightly Coupled Dependencies
Shared functions and data flows connected multiple files. A change in one area could break logic elsewhere.
04
Platform Compatibility Gaps
Single-node Python did not align with PySpark, Databricks, or engineering standards, limiting scalability.
05
Manual Conversion and Validation
Manual rewriting was slow and error-prone, with no proof that converted logic matched the original.
06
Late Compliance Checks
SEMS (offshore Safety and Environmental Management Systems) compliance checks ran late in the process, putting non-compliant code at risk of reaching production.
We Built a Structured Path toPySpark Modernization
Using Data Lifter, Indium converted the interdependent legacy Python codebase to PySpark on Databricks. The process included dependency analysis, native conversion, output reconciliation, and CI/CD quality and compliance checks.
01
AST-Based Code Analysis
We parsed the legacy codebase using AST analysis and built a cross-file dependency graph. This established the conversion order and showed how changes could affect other parts of the code.
02
AI-Guided PySpark Conversion
Data Lifter's native conversion generated PySpark with code, dependencies, transformation rules, and engineering standards available as AI context.
03
Automated Output Reconciliation
Auto-generated tests compared legacy Python and PySpark outputs. Any mismatches were identified and remediated before developer review.
04
CI/CD Quality and Compliance Gates
SonarQube quality gates and SEMS compliance checks were integrated into the CI/CD pipeline. Issues could be identified before release.
05
Post-Conversion Code Understanding
After conversion, Genie was used to query code changes and understand the converted code.
The Impact of Modernizing Legacy Python
The codebase was re-engineered for PySpark, with shift-left practices embedding quality and compliance checks earlier in the development cycle.
80% Less Manual Conversion Effort
Automated code conversion reduced manual rewriting and developer effort.
2x Faster Modernization Cycles
A faster conversion process reduced the time required to re-engineer legacy Python code for PySpark.
60–70% Reduced Code Analysis Effort
Automated code analysis reduced the effort required to understand legacy Python applications and map code dependencies.
Verified Logic Across Converted Code
Parity testing confirmed that converted PySpark logic produced results consistent with the legacy application before release.
AI-Assisted Code Understanding with Genie
Genie enabled teams to query the converted code and understand the changes made during modernization.
Business Outcomes
Lower Modernization Costs
Reduced the cost of modernization and shortened the path to value from the Databricks platform.
Fewer Compliance Risks
Running compliance checks earlier reduced the risk of non-compliant code reaching production.
More Time for Engineering Work
Engineering time previously spent on manual rewriting was redirected to new development.
Retired Legacy Code Earlier
Enabled earlier retirement of legacy code, reducing the cost of ongoing maintenance.
A Repeatable Approach
Established an approach that can be reused for future modernization initiatives.
Digital Backbone
Charting a New Course for Legacy Systems
Modernization depends on making informed engineering decisions at every stage. Indium combines deep engineering expertise with platforms like Data Lifter to address the complexity behind legacy systems. By grounding modernization in system understanding, business logic, and technical validation, we help enterprises make changes with greater certainty. The goal is to make complex systems ready for what comes next.