How we built a $4M ARR fintech with a remote team

Discussion

I used to think remote teams break because people are in different time zones. After building a fintech product with a mostly remote team, I don’t think that anymore.

Remote teams break because ownership is unclear, decisions are scattered, engineers are hired before the product scope is clear, and everyone slowly turns into a meeting machine.

For context, we built a B2B fintech product. Not a consumer app with a pretty dashboard and some Stripe screens. The kind of product where mistakes are expensive, users ask uncomfortable questions, and “we’ll fix it later” is not a good engineering strategy. We had payments, reporting, internal risk checks, customer-facing workflows, admin operations, and enough edge cases to make simple features feel not-so-simple anymore.

When we were small, the founding team could carry a lot of the mess manually. A customer asked for a report, someone pulled data. A support question came in, a founder answered. A workflow broke, an engineer patched it late at night. That works until it doesn’t.

The first real shift happened when we stopped treating hiring as “we need more developers” and started treating it as “we need owners for specific parts of the system.”

That sounds obvious, but early teams mess this up all the time. They hire a generalist and expect them to own backend architecture, data pipelines, API quality, security hygiene, customer bugs, dashboards, and sometimes AI features too. Then everyone wonders why things move slowly.

We separated hiring by problem. Backend engineers for core systems. AI and ML engineers only where we had actual use cases, not because it looked good in a pitch deck. DevOps for reliability and deployment discipline. QA because fintech bugs are not cute. Product-minded engineers because a lot of our work lived between business logic and user trust.

The AI and ML part is where I think many founders get carried away. We did not hire AI people to “add AI.” We hired for narrow problems where automation or prediction actually helped. Things like document understanding, internal workflow assistance, anomaly detection, routing repetitive operational tasks, and making data easier for the team to use. If the use case could not be explained clearly, we did not hire for it.

For hiring, we used a mix of referrals, direct outreach, and platforms. Uplers was useful specifically when we wanted India-based engineering talent and did not want to spend weeks filtering random profiles. The value was not “cheap developers.” That is the wrong way to think about it. The value was getting pre-vetted profiles for roles like backend, AI/ML, DevOps, and full-stack, and then interviewing people against a clear role brief. We still did our own technical evaluation, but it reduced the sourcing load.

The biggest mistake I avoided after the first few hires was hiring before writing the job properly. A vague role attracts vague candidates. For every important hire, we wrote what the person would own in the first 30, 60, and 90 days. Not fluffy responsibilities. Actual systems, decisions, and outcomes.

For example, “own reporting” is vague. “Take ownership of reconciliation reports, reduce manual finance checks, improve dashboard load time, and document the reporting logic so support is not dependent on engineering” is much clearer. Good engineers respond better when the work is real.

The second shift was documentation. I don’t mean corporate documentation that nobody reads. I mean decision logs, product notes, API assumptions, support patterns, and why certain things were built a certain way.

Remote teams lose context faster than office teams. In an office, people overhear things. They catch small decisions. They ask quick follow-ups. Remote teams don’t get that by default, so we had to manufacture context without turning everything into meetings.

We used Notion for decision notes and operating docs, Linear for engineering work, Slack for day-to-day updates, and short Loom videos when writing would take too long. Nothing fancy. The point was not the tools. The point was making sure people did not need to ask the same question five times.

The third shift was changing how we used meetings. Early on, we had too many status meetings disguised as alignment. Everyone was talking, but not enough was moving.

We changed that by making most meetings decision-based. If there was no decision to make, we tried to move it async. Weekly planning stayed. Product and engineering reviews stayed. Customer issue reviews stayed. But random check-ins got cut aggressively.

Gather helped more than I expected for the human side of remote work. We used it as a virtual office, not as some metaverse gimmick. The main benefit was small conversations becoming small again. If someone was free, you could walk over and ask. If someone was focused, you left them alone. It reduced some of the Slack waiting and some of the “let’s schedule 30 minutes” nonsense.

This mattered more as the team grew. In a five-person team, everyone knows what is happening. In a 20-person remote team, people can quietly drift into silos. Product stops knowing what engineering is blocked on. Support keeps hearing the same customer issue. Engineering ships fixes without understanding why customers were angry in the first place.

That is where customer feedback became part of the operating system.

In fintech, customers do not just ask “how does this work?” They ask things like “why does this number not match,” “where did this transaction go,” “can I export this for my finance team,” or “who approved this workflow?” Those questions are product feedback, risk feedback, and support feedback all at once.

We used Chatway lightly for live chat and customer conversations because we wanted support questions close to the team, not buried in someone’s inbox. It was not the center of the company, but it helped us catch patterns. If multiple customers were asking the same thing, that usually meant the product was unclear, the docs were weak, or the workflow needed work.

One lesson I learned is that support should not become a wall between customers and product. Support should filter noise, but the product and engineering team still need to see the patterns. Especially in fintech, where confusion is often a sign of risk.

The fourth shift was trust. Remote teams do not work if managers secretly want office-style control. You cannot hire senior people and then make them ask permission for every decision. But you also cannot say “move fast” in a fintech product and let everyone ship whatever they want.

We solved that with ownership boundaries. Engineers had room to make decisions inside their area, but anything that affected security, compliance, financial logic, data accuracy, or customer trust had a higher review bar. That slowed some things down, but it saved us from expensive mistakes.

The fifth shift was cash discipline. Remote hiring can make you feel like you can scale headcount faster because you are not hiring only in one expensive city. That is dangerous. A remote team is still expensive if you hire without focus.

We stayed lean longer than felt comfortable. We tried to keep every hire tied to a bottleneck that was already costing us speed, reliability, revenue, or customer trust. If the pain was not real yet, we delayed the hire.

Looking back, I don’t think remote work was the reason we got to $4M ARR. The remote model only worked because we treated it like an operating system.

Clear ownership mattered more than location. Senior hiring mattered more than cheap hiring. Documentation mattered more than long meetings. Customer feedback mattered more than internal opinions. And the tools only helped because the process underneath them was already becoming clear.

If I were doing it again, I would still build remote. But I would not sell myself the fantasy that remote automatically means efficient.

Remote only works when people know what they own, why it matters, where decisions live, and how to get unstuck without waiting 18 hours for a reply.

Posted May 13, 2026, 6:23 PM UTC

30
Loading comments…