AbstractOps specializes in helping heads of people and heads of finance hire and operate compliantly across all 50 states. Their platform helps companies register in all 50 states in 5 minutes not 5 hours, centralize all their state account information, and stay proactive on their state notices. Our goal was to help the AbstractOps team get their initial product out to market, after which we successfully launched v2 and v3 of their product in the market over the course of a year.
Here we explore how we overcame barriers, integrated with the AbstractOps team, and enhanced their platform through open communication and creative solutions.
Our initial task was refactoring and implementing a new version of the AbstractOps platform, including thorough testing to ensure optimal performance. The challenge was not just technical but also collaborative: we needed to integrate with an existing team and learn about their existing architecture, which meant we had to learn the product quickly and adapt to their systems.
One of our first challenges was ensuring smooth communication with the AbstractOps team. Initially, it was difficult to adapt to an already cohesive team, which worked in a different time zone and had more visibility and understanding of their product.
In response, we made an effort to better understand their roadmap. We also tried to understand their user base and their needs, as this defined how the product should work. Joining some of their internal planning sessions helped us understand the next priorities and align on goals. We also used the time zone difference to our advantage by covering an almost 24-hour work cycle, in which they could pick up where we left off.
We also began holding retrospectives not just between ourselves, but also with them, alongside our regular meetings. The retros were used as a means to surface improvement opportunities and come up with solutions. More importantly, due to the nature of retros, anyone could raise issues and frustrations without assigning blame. This led to a productive discussion of possible solutions, and a better relationship moving forward.
One major feature that the Amplified team contributed to was the creation of a signup flow. This flow allowed new clients to join the product independently, without the need to reach out to the AO support team. This included a Stripe integration to process the subscription payments for their new customers, which also streamlined the process.
Meanwhile, alongside the AO dev team, the Amplified team continuously iterated on all things related to state compliance — be it new registration workflows, new ways to store and manage account information, or additional ways to centralize documents.
One technical challenge we faced was integrating our system with a third-party API that had limited documentation and frequent updates. To overcome this, we established direct communication channels with the API provider, conducted thorough testing, and developed robust error-handling mechanisms to adapt to changes seamlessly.
Amplifiers pride themselves on being curious and proactive in an effort to implement constant improvements. In several cases, we suggested features that could improve the overall user experience, helped eliminate certain logic inconsistencies, or challenged AbstractOps to implement new things that weren’t initially in scope.
For example, our team helped set up several DevOps processes, including testing practices. We proposed doing deployments in two phases, first onto a staging environment, which uses a cloned and anonymized version of the production database. Once quality was confirmed, we would deploy to the larger active user base. We also suggested changes such as using templates for review requests and task management, which streamlined the team’s workflow.
This back-and-forth process created a collaborative environment in which the user was always front and center and both teams had a say in the final product.
Eventually, our collaboration with the AbstractOps team extended beyond regular meetings and project delivery. We engaged in peer programming, held debugging sessions, and even adjusted our schedules to proactively support urgent needs. These helped their team feel that we were more than an outsourced team; we were truly a part of theirs. Even though AbstractOps ultimately made all the decisions surrounding their product and their software, they remain gracious partners who are always open to feedback and recommendations.
Through open communication, proactive problem-solving, and a focus on continuous improvement, we helped AbstractOps navigate its technical challenges, resulting in an even more robust and efficient platform. We achieved alignment with the client’s expectations, delivering solutions that closely matched their requirements. This included meeting project milestones, delivering on time, and maintaining quality standards to fulfill our client’s needs.
Our partnership with AbstractOps showcases our commitment to not just delivering technical solutions but also to becoming an integral part of our client’s team.