I work on the modernization of existing applications. Many companies use software every day that does its job correctly but has become hard to evolve: technologies that are no longer supported, dependencies that have not been updated in years, original authors who are no longer available. A complete rewrite is expensive and risky; in most cases it is better to modernize the application incrementally, without interrupting its use.
Areas of work
- Incremental frontend migrations: from Blade and jQuery to Inertia and React, from traditional Redux to Redux Toolkit. Existing and new code coexist, and each migrated feature can be released on its own.
- Technology stack upgrades: bringing PHP, Node.js, Laravel, React, and Next.js, and their dependencies, up to supported versions.
- Typed contracts between backend and frontend: introducing DTOs and an OpenAPI specification from which the frontend types are derived, so that the data structure stays aligned between the two sides.
- Recovery of inherited projects: analysis of code developed by other vendors, reconstruction of the documentation, securing the project, and resuming development.
- Reproducible development and deployment environments with Docker, for projects that currently exist only on the production server.
Method
Every migration comes with a document, updated as the work progresses, that describes the parts already migrated, the patterns adopted, and the issues still open. Each migrated feature is compared with the original both visually and at the code level, because many relevant behaviors are not documented.
In large migrations, which require consistency across hundreds of features, I also use artificial intelligence tools, following the method described on the page on AI-assisted development.