a cloud-based solution for controlling, analyzing, and sharing financial data
<30minutes to onboard users
80%less work to close the month
30%fewer audit and data integrity issues
40%fewer frontend calls to backend
problems to solve
When we crossed paths, the platform was on the market since February 2021 and has allowed Facta to build a solid client base. The company’s goal was twofold: to cater to its current users’ needs and to scale up by increasing the customer base. Thus, Facta’s priority was to find a tech partner who’d help them both take care of the product’s maintenance and introduce new cutting-edge features.
Our scope of work included:
UI audit and subsequent improvement of user experience
Code quality audit and refactoring
Ongoing software maintenance
Introducing new product features
As Facta wanted to assemble a team of experienced and knowledgeable software development experts who’d join forces with their in-house professionals, we decided to work in a team augmentation model. Merixstudio’s project team included UX and UI designers, developers, and a Scrum Master. Since understanding the client’s domain and keeping up to date with their expectations was a priority for us, we held regular meetings with Facta’s team and followed best practices of Scrum.
To improve the usability of the platform, we kicked off the design work with a UI audit. This allowed us to identify the legacy element of the design and come up with the solutions to make the interface more coherent. For example, we created an all-encompassing style guide and ensured consistency of component design across interfaces of Facta’s features. As we engaged with the client’s team to dig deeper into the domain and its design implications, we began to build the prototype of the Fixed Assets module in Figma. The detailed high-fidelity prototype with multiple views helped the client visualize the revamped interface, facilitated developer handoff, and served gathering user feedback.
On the backend side, our task was to improve code quality and ensure the solutions employed meet current business goals. Facta decided to stick to its guns (Golang, AWS, PostgreSQL) but also to polish them up. Working hand in hand with the client’s Head of Engineering, we rewrote the server-side code, paying special attention to its clarity and maintainability.
The frontend work began with the examination of the code’s current state and the identification of areas for improvement. To spot rendering-related issues, we used React.Profiler, whereas DevTools helped us diagnose errors in console and recurring calls to backend. Although not yet dangerous, these vulnerabilities could harm user experience and hamper the client’s growth in the long run.
Bearing in mind the fact that the platform was already in use, our devs undertook to refactor the code while keeping the app fully available to the users. Using Linter and TypeScript, we increased the code’s cohesion, which translated into fewer bugs and improved UX. To better manage the app’s state, which is crucial in the case of a financial platform handling comprehensive data, we implemented Redux with Redux Toolkit. Last but not least, we eliminated unnecessary repetitions, created reusable components, and improved efficiency of rendering data-loaded tables with styled-components. Simultaneously, we built a new codebase for the Fixed Assets module in such a way to allow the client to implement it in the remaining features in the future.
The joint maintenance efforts and new feature development allowed Facta to grow steadily. With user experience improving and fewer bugs appearing, the platform kept receiving positive reviews from its current customers and joined the ranks of applications recommended by QuickBooks Online. Enriching the platform with new features, on the other hand, attracted the attention of new clients, including big names in the bookkeeping industry.
speeding up management of fixed assets and allowing bulk editing for the depreciation conditions
exporting TSV and CSV data to clipboard
freeing bookkeepers from the need to handle data rows individually
creating subledgers (including scheduler)
addressing subledger accounts and dealing with pre-paid/accrued expenses