# facility management
an inspection & maintenance web tool for the oil and gas industry
10times faster generation of data views
20+companies using the tool
Up to 10fewer queries to the database
problems to solve
When SafeEx approached us, the company was immensely successful in expanding its customer pool. Their top priority was to ensure that their tool keeps up with the company's business growth. The client’s system has been in operation for over a decade, during which time both technology and SafeEx’s objectives have evolved. While the current customers could enjoy all benefits of the digital management tool, the company decided to adopt a more far-sighted approach and put an even greater emphasis on future growth.
Once we got in touch with the client’s representatives, we focused on understanding SafeEx’s business needs and clarifying their expectations, which boiled down to taking the user experience to the next level and adopting a long-term perspective on the product’s growth. Our software development experts involved at that stage of the discovery process managed to dispel the client’s tech doubts and give straight answers to problematic questions. This, in turn, laid solid foundations for our further collaboration.
So far, the scope of work included:
- Refactor of major components
- Optimization of legacy code
- Migration from MySQL to PostgreSQL
- Designing strategy of migration to AWS
- Switch from Python 2 to 3, async processing of already existing processes
- Mobile App Push Synchronization API revamp with extensive usage of Redis cache to ensure stable processing and recovery in the event of connection failure
Our cooperation started with a product design workshop. At this pre-development stage, our team of both backend and mobile developers, product designers, a QA specialist, and a PM joined efforts with the client’s representatives, including SafeEx’s CTO, Development Manager, and a frontend dev. Together, we aimed to analyze the current solution structure, define the core functionalities and the value proposition of the product, as well as identify users’ needs. During the workshop, Merixstudio’s squad was proactive in suggesting improvements to the existing tool and discussing the software’s impact on the client’s business strategy for the future. In the end, we agreed to focus on performance enhancements and following the path of gradual modernization.
What’s unique about SafeEx’s tool is that its mobile component is meant to work in a highly challenging environment where the internet connection is poor, e.g., on oil rigs. To ensure that no data synchronization issues bother the tool’s users, we chose to cache the data with Redis. This way, Ex Inspectors can be sure there will be no lost connections and server errors, regardless of whether they chose to synchronize at sea or on land.
Our goal was also to enhance the user experience of SafeEx’s tool. We did that, among others, by speeding up the loading times, as well as minimizing the amount of data to be sent – thus shortening the time needed for exporting and importing them. Driven by the desire to bulletproof the system further and provide seamless UX to current and future customers, we’ve also engaged in refactoring the codebase.
During the development process, we adopted the team augmentation model. Although ours and SafeEx’s engineers worked hand in hand, Merixstudio’s developers didn’t refrain from suggesting alternative solutions once they spotted room for improvement. One example of our team’s proactivity was designing the change of infrastructure from on-premise servers to cloud and drafting the comprehensive plan of migration to AWS. Another one was implementing a microservice-based solution to increase the app’s stability.
When discussing collaboration with SafeEx, it’s also worth mentioning the overall flexibility. As the project progresses, the client’s priorities change – and so does the team composition on our part. Since the onset in May 2020, our team’s been powered by backend developers and DevOps engineers, the number of which fluctuates according to the current needs.
notifications for scheduled periodic tasks
Ex Inspectors follow schedules based on the repeated periodic tasks, whose status changes multiple times depending on various conditions and time. The tool provides automation for email notifications on all crucial steps and changes of Inspectors’ tasks.
hash-based file storage
Effective hashing of file content to ensure uniqueness of files loaded to the system and deduplication to improve storage efficiency in existing systems.
cache-based synchronization flow for offline mobile apps
Rebuilt synchronization functionality improves user experience and protects database integrity in case of poor Internet connection or unexpected failures within the process.
containerization of development and production environments with Docker
The unification of environments to provide smooth development and deployment process.