Carry helps small business owners generate wealth by saving on taxes. Users invest through Carry and tax-advantaged accounts that help them save significant sums of money. While there are many other broker account companies, Carry specializes in tax strategies that result in savings, ultimately allowing users to invest more and see greater returns. We interviewed Alejandro Roman, Co-Founder of Carry, to see how Porter has helped Carry save time and money. Carry recently raised a Series A led by Accomplice VC.
ECS Fargate and a DevOps contractor
Alejandro initially considered PaaS products like Heroku and Vercel when he started Carry - they’re easy to use and allow developers to focus solely on shipping product rather than spending time on infrastructure management. However, Alejandro had been a founding engineer at his previous startup and witnessed their inevitable transition to AWS as they started running at scale. As a result, he wanted Carry to run on AWS from the start. As a VC-backed startup anticipating rapid growth (and with access to cloud credits), Carry wanted to avoid the limitations in flexibility and scalability of a hosted PaaS, like Heroku or Vercel.
Early days on AWS
As the technical co-founder of Carry, one of Alejandro’s responsibilities was DevOps - he wrote the first version of their IaC (Infrastructure as Code) using Terraform, and used AWS services he was familiar with, like ECS Fargate for Carry’s application workloads along with an RDS database. Their main codebase was entirely Typescript, using Next.js for the frontend and backend. For compliance reasons, they also had a separate Django server that ran all the sensitive information needing to be audited.
As the company grew, the team’s size increased, as did the architectural requirements for their product. What was once a simple infrastructural setup became messier, with the introduction of a VPN for security and remote access, SNS so multiple architectural components could be notified when an event occurred, and SQS for batched, asynchronous information processing.
Their infrastructure began to break as it became more complicated, and Alejandro was spread thin across engineering, development, product strategy, and infra work. So, he hired a part-time offshore DevOps engineer who was responsible for making their infrastructure more stable. While the situation improved, this engineer cost upwards of $5k per month.
Migrating to Porter
“AWS is like the IKEA of Software: it’s relatively cheap, but assembly is required. That assembly work comes in the form of DevOps engineering; Porter eliminates the need for an in-house DevOps engineer at a startup.” – Alejandro Roman, Co-Founder of Carry
Carry’s main use case for Porter was to obviate the need to hire a full-time DevOps engineer. They accomplished that, and more:
“As a tech company, infra will always be one of the most important things. You'll need a DevOps person on your team. In the best-case scenario, you can hire someone abroad to manage this for you part-time and your bill will be ~5k for labor and whatever the cloud bill is. The Porter team has solved this elegantly:
- They helped us migrate our entire infrastructure to be managed by Porter instead of having someone do it. This reduced our infra costs by about 8k a month since we can effectively manage it through their dashboard.
- They gave us great recommendations on what to improve. For example, changing from OpenVPN to Tailscale alone cut our bill by 1k a month.
- Our app is much faster, thanks to their infra configuration. We've gotten compliments on this from users already without being prompted.
- Their team is ready to help on the spot. We have never gone more than 5 minutes without some response to our questions.
Starting your company with Porter is a no-brainer.” – Alejandro Roman, Co-Founder of Carry
After migrating to Porter, Carry achieved the experience of a PaaS on their own AWS infrastructure and Porter takes care of all of the undifferentiated heavy lifting so they don’t need to hire a full-time DevOps engineer, including:
- CVE patches
- Zero downtime cluster version upgrades and ensuring the reliability of clusters
- Resource rightsizing
- Ensuring uptime and version upgrades of system, networking, and logging components
- Management of security groups and networking resources
- Building and maintaining complex monitoring and alerting systems
- Testing infrastructure for scale
- Ensuring infrastructure controls pass for SOC 2/HIPAA (in conjunction with a compliance management platform)
Carry hosts all of their applications (Next.js frontend and backend, and Python backend) on Porter, across three environments - staging, demo, and production. Carry also manages their RDS instances through Porter.
Infrastructure management that costs less as you scale
Porter spins up a Kubernetes (K8s) cluster for its users; Kubernetes is a container orchestrator that allows for granular scalability and optimizes cost-effectiveness. Carry’s DevOps contractor even recommended K8s but Alejandro viewed it as overkill due to the maintenance overhead.
Carry was originally set up on ECS Fargate, a serverless managed platform AWS offers. A key difference between ECS Fargate and EKS with EC2 is the marginal cost of compute. ECS Fargate charges $71 per month for every additional 2 vCPU and 4 GB of RAM, whereas EKS with EC2 only costs $30 per month for equivalent compute. EKS charges a fixed $72 per month per cluster, but at more than a couple instances the savings become significant for continuously running workloads. ECS Fargate essentially charges a margin for the layer of abstraction it provides, resulting in a stark increase in price compared to EKS with EC2, all for the same amount of resources.
It’s worth noting that with ECS Fargate, it's possible to run tasks that only exist while they're running, meaning a user with sparse utilization might still see substantial savings on Fargate, if they're not constantly utilizing the server.
However, Carry experienced high and consistent server utilization so if they had stayed on Fargate, their costs would have scaled linearly as they needed more resources to meet demand. While Porter also charges for the DevOps abstraction and automation provided, the platform also offers volume-based discounts as users scale, so costs increase logarithmically. The other difference between Fargate and EKS is ease of use, but with Porter, Kubernetes is an incidental implementation detail and is abstracted away from users. Therefore, users receive all of the benefits of K8s with none of the overhead - after migrating to Porter, Alejandro is all-in on Kubernetes.