Keyhole Software played a pivotal role in orchestrating a holistic modernization initiative for a client in the business finance software sector. The journey commenced with a comprehensive architectural assessment led by experienced consultants, laying out a strategic roadmap for the incremental migration from a legacy Ember.js front-end and Rails-based monolithic architecture to a more dynamic microservices architecture, coupled with a React front-end implementation.
Part 1- Strategic Assessment Engagement
A Keyhole Software Sr. Consultant performed a standalone, in-depth architectural assessment, conducted in collaboration with the client seeking to modernize a mission-critical monolithic application. This involved meticulous estimations and recommendations for high-priority project areas.
Several key Proof of Concept (PoC) initiatives were managed to validate the proposed architectural strategy. Noteworthy initiatives included experimenting with the integration of React into existing Ember.js projects, devising UI code organization strategies through a Turborepo monorepo setup, and implementing an Infrastructure as Code (IaC) solution using Terraform. The IaC solution validated architectural recommendations for the migrated AWS platform, covering essential components such as ECS cluster and services, VPC, API Gateway, S3 bucket, and CloudFront distribution.
The Assessment was met positively by the client, and the engagement concluded pending further project approval.
Part 2 – Modernization Engagement
Building upon the success of the architectural assessment, the client re-engaged with Keyhole Software once the project was greenlit. Specifically, the client sought assistance in the comprehensive modernization effort to uplift the existing monolith to a library of React SPAs housed in a new monorepo, to be built using Nx and Vite and hosted on Amazon S3.
A key aspect of this initiative was the development of a React Single Page Application (SPA) led by a senior Keyhole consultants, designed to maintain the existing functionality within a specific section of the monolith application. In this collaborative effort, the senior consultants actively engaged with fellow developers in the monorepo, participating in code reviews and contributing to shared infrastructure elements.
While the initial monorepo setup was handled by another developer, the senior consultant took the lead in updating Vite, Nx, and GitHub Action configurations, optimizing deployment processes for increased efficiency. Utilizing a range of technologies, with a primary focus on React (utilizing React Bootstrap and React Router), GraphQL (Apollo Client), SCSS for styling, Vite, and Nx, the consultant ensured the seamless integration of updates and enhancements to meet the modernization goals. Minor contributions were made with Ruby on Rails and Github Actions, aligning with the client’s diverse technology stack.
As part of the uplift process, the consultant referred to provided requirements while consulting the existing Ruby on Rails and Ember.js application, ensuring the preservation of essential capabilities. The application created as part of this initiative serves as a portal for employees to view and modify timesheets, expenses, and payroll demographic information. This SPA seamlessly integrates with the larger functionality of the client’s financial management software, which focuses on enhancing business finance processes. In addition to the primary responsibilities, the senior consultant provided support to another engineer working on a different SPA, managing the application process for new business accounts.
The senior consultant followed a collaborative approach, actively participating in daily stand-ups, receiving requirements from the product owner and UX designer, and engaging in QA testing. While the implementation work was primarily independent, the consultant collaborated with other engineers through code reviews and shared components.
The role also carried a significant documentation component, with the senior consultant diligently writing internal documentation detailing patterns and practices. This documentation facilitated the onboarding of new engineers and ensured a smooth handoff of the application to internal developers, aligning with Keyhole Software’s commitment to comprehensive and client-focused solutions in software development.
This project is ongoing.