Arvid Kahl is a self-taught developer who co-created Feedback Panda, a tool for online English teachers. Along with his partner, he grew the business to $55,000 a month before selling it. Arvid doesn't have a CS degree and he talks through how he learned to code and build such a wonderfully successful business.
I'm Arvid, a software engineer turned entrepreneur from Berlin, Germany. I co-founded an Education Technology SaaS called FeedbackPanda with my partner Danielle Simpson, which we bootstrapped to $55,000 MRR within two years and then sold to SureSwift Capital. In those two years, I learned how to bootstrap a business, how to take care of product development as well as customer service, and how to build a sellable company.
I've been involved in several startups before, some of them bootstrapped, some funded with grants, and one that was backed by Silicon Valley venture capital. While some of those businesses are still around, FeedbackPanda has been the most successful one for me: not only did it teach me a lot, selling it also lifted me into a very different state of economic security.
I've been interested in the computer since I was 12 years old. Ever since I got my first PC with an Intel 386 chip that could barely handle Windows 3.11, I was fascinated with machines that would do what I instructed them to do. I am mostly self-taught, after having taken a year or two of learning how to program Turbo Pascal in the 90s.
I've always built things. I recall needing a tool to allow me to find which CD I had burned a particular movie to as a kid, so I created a CD management system in Borland Delphi at the time. Over the years, I moved into building websites, mostly about things I found interesting, which then turned into a job at a web agency. There, I quickly taught myself PHP to be able to do the work. Ever since then, I've been curious about new languages and paradigms, trying to always at least try out something before I form an opinion about it.
Can you tell us about building the Feedback Panda to help your wife teach English more efficiently? What were the very first features?
It started with Danielle having to work from home due to a leg injury. She quickly found a job teaching English as a Second Language online to Chinese children, facilitated by Chinese Kid English companies. Quickly, Danielle taught for ten, often twelve hours a day. On top of all this teaching came an increasingly time-consuming part that she didn't enjoy too much: writing student feedback for the parents of her students.
She needed to write a few paragraphs of text about what she had taught, how they did, and what they could do to prepare for the next lesson. For every 25-minute lesson, she would need to spend a few minutes writing this report. After more than 20 lessons every day, this quickly added up to two hours of unpaid overtime. However, every teacher teaching for these companies was forced to write this feedback to get paid for their teaching.
We quickly learned that this was a problem for all Online English teachers. We also understood that if we found a way we could make this easier, we could build a business out of that. I built the first prototype of the application just for Danielle, but always with turning it into a SaaS in mind. From the beginning, we had understood that we had a clearly defined audience with a critical problem. We just needed to solve that problem, and we'd be in business.
The first version of the product was very basic. It allowed Danielle to manage her students, their lessons, a list of feedback templates, and create feedback reports from those templates. It was the bare minimum of what was needed to solve the problem she had. The product two years later doesn't look much different from that initial version. We've always tried to solve one problem really well and nothing else. Anything that would pull our product too far away from being the best product to create student feedback would not be considered as a feature.
A lot of programmers struggle with wanting to add more features even when they should focus on selling. How did you and your wife split the workload?
I was always prone to this false perfectionism until I understood that customers don't care about the product, they care about not having to deal with their original problems. If you reframe your perfectionism as wanting to give your customers the perfect peace of mind instead of giving them a perfect product, you won't resort to featuritis.
Danielle and I split everything that was not engineering between us pretty evenly. We didn't have to make many sales, as we had found a very convenient way of getting new customers: using the tribal nature of our audience. Our customers were hanging out in large teacher communities, and they would talk about their work and the tools that make their lives easier. As we focussed on making our customer's lives as easy as possible, they effectively marketed and sold the product for us. We could concentrate on supporting existing customers, making the product more usable, and fixing bugs. We still made sure never to build features that weren't absolutely essential.
I think Feedback Panda was doing $50k MRR before you sold? Did you ever hire other programmers to help you?
We never hired for any role in our company until after we sold it. From day one to the last day, it was just Danielle and me. We made sure to build a sellable business without actually wanting to sell it. It was a lifestyle business, or at least we intended it to be. I should have hired a second developer and a customer service agent around a year into running the company but thought we didn't need it. This kept me from working on a few things I would have instead done than helping out customers all day long.
Honestly, I was a bit afraid of hiring, having never hired anyone before. When you own a bootstrapped business, every minute of your day and every dollar in your bank account is precious. I was afraid I'd do something wrong, and that paralyzed me. Next time I build a business, I will hire much earlier.
Back when I started programming, I was too young to understand the financial implications. I just liked the idea of telling machines what to do. Later on, I quickly realized that the field I found myself in would not only allow me to build whatever I wanted, people would also pay a lot of money for me to do that.
I never envisioned building a business and then sell it for a life-changing amount of money, though. I expected to make some money, but not that much. A secure job whenever I needed it? Sure. Financial security at the stroke of a pen? Not so much.
For building a SaaS product, I learned to create as many abstractions as I possibly could around external services. Every database provider, every email service, or payment provider changes their APIs and integrations at some point. If you want to be flexible, you will need to be able to quickly swap things out. The less you have hardcoded things into your product, the more comfortable.
I would always make sure you can easily migrate your whole application and your database to another host. We ran into trouble with both, and it was tough to get these migrations done without long maintenance periods and a lot of anxious sweating.
Don't build things like authentication, payment, or invoicing yourself. We made our invoicing system in-house, and it resulted in so much work. Whenever possible, find a service and integrate it. Anything that touches money or secrets like passwords should be built by experts. And that likely won't be you.
Learn a popular programming language that has an equally popular framework with a lot of resources. Don't think that you'll have to learn the latest framework to be able to build something. Learn Ruby on Rails, Node.js/Express, or Python/Django. If you want to be a bit more adventurous, learn Elixir/Phoenix or Rust/Rocket. No matter what you pick, you will find it to work well enough. If you already know what services you will integrate into your tech stack, keep an eye out for which language they offer SDKs or libraries in.
But in general, once you learn how web programming works, you can quickly move from one language to another, from one framework to one more suited for your task. The point of learning how to code is not to write the perfect program immediately, it's to understand what it means to build systems that solve problems for people.
Did you ever have imposter syndrome, and if so, how have you dealt with it? You were making a lot of money for what I think was a one-person tech operation!
I have imposter syndrome right now! Even after having built a successful business and selling it, I still feel like I shouldn't be giving advice. I have found that the best way to deal with this kind of feeling is to look at the impact of your work. If your code helps even one single person somewhere have a slightly better day, it's all worth it.
If your business makes tens of thousands of dollars a month when before you had a meager salary, it's essential to step away from the monetary numbers and look at the people. Your customers pay you money because they looked at your product, looked at the price, and said to themselves: "this is worth more than the price." Easy as that. No one expects more from you than giving people something valuable and charging just a bit less than what it's worth.
I write about what I learned over the last decade in bootstrapping startups on The Bootstrapped Founder. On my blog, I offer a weekly newsletter with insights into my bootstrapping experience as well as what's going on in the bootstrapping world. Every week, I also release a podcast episode covering those topics.
I am also turning my guide Zero to Sold into a fully-fledged book that I will soon release. I've found that after coding for a decade, maybe it's time to become a writer for a change. And of course, I have no formal training. That, at least, is consistent.
All in all, I want to give back to the bootstrapping community. Before FeedbackPanda, I read a lot of blogs, listened to a lot of podcasts, and I am hoping to provide the content that I would have loved to consume myself a few years ago.