Being a Solo Founder of a 24x7 Hosted Web Application

There was a probably an easier way. Fortunately, it feels like we’re over the hump. Regardless, being a solo founder probably isn’t for everyone. I imagine it’s something like being a single parent. It’s not impossible, but it’s no cake walk. There’s really no such thing as “days off”. Some days are thrilling, and others are gut-wrenching. In the end, it’s worth it. Not easy. But worth it.

I should qualify what I’m calling being a “solo” founder. In the most technical sense of the word, I’m not a solo founder. I’ve had a fair amount of help. I’ve never had to really deal with our taxes, legal, or insurance matters. I’m involved with them but not responsible. Keith Jacobs, my business partner, handles most of that. However, for about four years now, I’ve been the only person in the trenches every day. Holidays. Weekends. It’s all a blur now, but if something went wrong or someone needed help, I was the one handling it. Even vacations weren’t really vacations.

Ironically, these days vacations are actually more stressful than being at home. Being out of town and away from the computer, I’m constantly aware of whether my devices are charged and how far I am from a reliable internet connection. I always keep a close eye on whether I have cell phone service. These things dominated my thoughts when I was out of town. I had stopped enjoying my time away because I was always worrying. That’s changed these days because even the worst days weren’t all that bad, and now I know that I can handle it.

Scheming & Jumping

The journey is likely the most interesting part. So lets start from the beginning. I had been scheming of ways to build Sifter since 2003. I was always sketching and wireframing ideas in my free time. From time to time, Keith and I would sit down with a spreadsheet and make up numbers about whether we could pull it off. However, with a consulting company of 20 to support, we never had the guts to try and make the transition happen. It wasn’t until 2008 until it became realistic, albeit under completely different circumstances.

Around the end of 2007, I had decided to just go ahead and build my little issue tracker for fun. I started tossing out some ideas on my blog, and before I knew it, some friends were encouraging me to try and build a business out of it all. Keith put up enough money to cover the cost of incorporating and few of other inevitable startup expenses, and I quit my job.

I had just recently paid off all of my credit cards. So, with about three months worth of financial cushion from my personal savings and impending freelance work, I could spend my extra time creating Sifter. It took eleven months working part-time on Sifter to design build and launch. I worked more than a few weekends, skipped out on some nice weather days at the lake and eventually finished development. During that time, I continued sharing my progress on our blog, and we built a modest following. By the time the launch rolled around, around 1,000 people had expressed an interest in Sifter.

We launched in December of 2008. By the end of the first month, we were bringing in $1,000 monthly and covering all of our expenses with just enough left over each month to put aside money for a rainy day. Now at this point, I wasn’t getting paid, but I was entirely responsible for a business that was expected to be open and available 24 hours a day and 7 days a week. Managing that and still working part-time to pay my bills is where things became hectic.

Balancing it All

The time period between launching and supporting me full-time was without a doubt the most challenging and exhausting experience of my life. Managing the application on top of a full or even part-time job isn’t impossible, but it’s not easy. Fortunately, there’s something exciting about working towards something that you care deeply about. It stopped feeling like work, and it just become a really long journey where every day was completely unpredictable.

It was during this time that I constantly questioned whether I was doing the right thing. I regularly turned to close friends about whether I had it in me or whether we should hire someone else to handle all of the day-to-day stuff while I got a normal job again. I explored all sorts of possible options looking for the approach that would yield the best results for our customers while ensuring that I didn’t go crazy.

The really challenging part was the constant struggle to maintain a healthy balance between work and life. In a past life, I completely neglected that balance, and it didn’t work. It makes things really easy in the short-term, but I’ve never found it to work well long-term. This time around, I made a simple promise to myself. I wasn’t going to let the business get in the way of living, and I definitely stayed true to that.

During an eighteen month period before Sifter was supporting me full-time, I moved, got engaged, planned a wedding and a honeymoon, got married, went on the honeymoon, got a puppy, bought a house, and then moved again into the new house. That’s in addition to launching and supporting Sifter while having a full-time job during half that time and a part-time job during the other half. Not too long after all that, my wife and were expecting our first child.

At every step of the way, there was a nagging feeling that I couldn’t take any of those steps until Sifter could support me full-time, but that would have meant putting everything on hold for at least a year, maybe two. Looking back now, that would have been the real mistake.

Lauren, my wife, has become a co-founder of sorts. She’s the one that has to put up with me checking email and responding to support requests in the middle of the night. When I’m driving, she regularly reads support emails to me and then types as I dictate the response to her. I give her a hard time about supporting me at times, but she’s played a significant role in enabling me to create Sifter.

She deals with the financial, emotional, and physical ups and downs of me pouring myself into something with no guarantee of success. She’s essentially going based on a promise that it won’t be this way forever. As someone who barely uses, and doesn’t really understand technology, she has placed a lot of faith in my promises despite how long of a journey it’s been.

Problems Don’t Wait for a Convenient Time

As if balancing everything day-to-day wasn’t enough, there’s always the occasional fire to put out as well. One afternoon, I discovered that someone was using our credit card processing to validate stolen credit card numbers. The individual was able to run a over a hundred card numbers before we were able to get some controls in place. With transaction fees, that came out to a couple of hundred dollars out of our pocket. Not much in the grand scheme of things, but the distraction of dealing with the fraud took its toll on my development time.

The next couple of weeks were a cat and mouse game where we locked it down a little more every few days as needed. We didn’t want to go all out and adversely affect legitimate customers, so we tightend it gradually. It wasn’t directly affecting our customers, so we didn’t want to let it get to the point where it would. It was just an ongoing distraction. One night during all of this, I was a groomsman in a friend’s wedding. The ceremony had just ended and the reception was about to start when the notifications started arriving. Ten more attempts by the fraudster.

It really wasn’t a big deal, but I let it ruin my night. At this point, I realized I’d have to go all out to lock it down, and I spent the rest of the night thinking through all of our options. Physically, I was still present, but mentally, I had completely checked out. That became a turning point for me. I recognized that things could and would go wrong at inconvenient times, but it was never anything that couldn’t be handled. These days, I generally do a better job of stepping back and deciding whether I need to respond immediately or if it can wait. If it can wait, I do my best to not let it bother me in the meantime. That’s easier said than done, though.

At first, being perpetually on call was stressful. I could have to drop everything and work at any moment, but I could also work anywhere, at any time, and any way that I desired. If I work a twelve hour day one day, I can pack it in early on the next. Once I learned to embrace the chaos, things changed dramatically. It was amazing.

These days, I wake up in the middle of night to answer support emails from customers around the world, and it’s actually kind of fun. Everyone tells me that it’s not necessary or healthy, but I’ve found that it works. Whether I work at 2am or 2pm, it really doesn’t matter. Learning to just go with the flow and adapt has literally changed everything. Now every day is an adventure, and it works. The only hard part is finding longer uninterrupted blocks of time for design and development.

The Full-time Milestone

After a tumultuous year of balancing outside work with Sifter, I finally decided that the only strategy that would save my sanity would be going full-time. That brought with it worries about health insurance combined with the fact that I’d need to take a 20% pay cut to make it work. Based on more recent offers, it turns out that it’s about a 40% paycut. The biggest lesson here was that learning to live below your means is a key enabler to starting a business.

This was the first time that money and financials became a concern. Had I been younger with fewer responsibilities, I probably wouldn’t have been thought twice about the risk. However our health insurance was dependent on my full-time employment and our mortgage wasn’t going anywhere. Combining a pay cut with paying for insurance and health care out of pocket makes for a pretty scary decision. It wasn’t made any easier by our thoughts of having our first child in the next year or so.

Once I was full-time, the next few months turned into one huge game of playing catchup. I had hoped that going full-time would be a dream come true, but all it meant was that I no longer had any distractions to take my mind off of just how much work I had to do. By early 2010, Sifter was in good shape, and we were wildly optimistic about the improvements that we had queued up. Then something completely took the wind out of my sails.

The Lowest Point

We had already begun talking about taking upgrading our infrastructure, and we were exploring the idea of moving hosts and improving our backups while simultaneously working on some significant improvements to the application. With the hopes of buying ourselves some time in order to delay the upgrades and tie up some loose ends, I decided to just upgrade up our virtual machine. I chose poorly.

The next morning when I was reviewing our performance, the increase hadn’t had much of an effect, and we made the decision to revert back to the original. At the time, all I was thinking about was the amount of downtime that it would cost us. A quick revert would just be a reboot, and we’d be down for less than a minute. Letting it ride and resizing downard later would mean 20-30 minutes of downtime. I chose the latter in order to minimize downtime. Within seconds of that decision, I realized it was a bad idea.

By reverting, we immediately lost all data that had been created on the new virtual machine overnight. It was about 11 hours worth. Fortunately, we were able to recover about 3 hours worth from our backups, but the remaining 8 hours of lost data during peak business hours for Europe still meant that some of our customers were seriously affected. I’ve never felt a sinking feeling like that before. My initial over-reaction was that our customers would leave in droves, and Sifter wouldn’t survive. Fortunately, that was far from the case.

We immediately went into recovery mode and were incredibly transparent about the mistake, the consequences, and our plans. We issued a month of credit to every affected customer and lost a fair amount of revenue as a result. I wasn’t concerned with the lost revenue, though. I was disappointed with myself. We have hundreds of customers and thousands of users that entrust their work to us, and I let them down. Over the next couple of days, I really learned just how wonderful and understanding customers can be. To the best of my knowledge, nobody cancelled as a direct result of the data loss, and most were very supportive.

Since then, we’ve dramatically improved our infrastructure. We have a dramatically improved backup system in place along with a much more scalable architecture. It was a painful lesson, but it’s a lesson that won’t be forgotten. More importantly, the result of the experience was that I’ve never been more excited or wanted to work harder for our customers. In the moment, it feels terrible, but we made it through. It’s true you know. What doesn’t kill you only makes you stronger.

These Days

Things have been much less dramatic in the last year. I’ve now been full-time for about two years, and we’re in a much better place both in terms of infrastructure and new development. I’d like to see us move a bit faster, but I also like growing at a stable rate. Fortunately, most of the behind-the-scenes work is done for a while. We can safely and quickly scale if we need to, we’re profitable, and we have some great improvements in the works.

If I had to, I’d definitely do it all over again, but if I could make one decision differently, we would have brought an additional developer on board as a founder from the beginning. Running a web app alone isn’t the best way to do things, but even under some of the most trying circumstances, it’s doable. Looking back at the last three years of working Sifter, I can honestly say that I’ve never been happier. It was a long road, but once I learned to enjoy the trip, it became much more enjoyable.

Slowing Down

Since day one, I’ve always felt like I was behind. I was moving too slow. I could never catch up. Our customers wanted, even needed, improvements. I rushed and hurried and worried. I bounced around from this enhancement to that. I got away from exploring ideas and just built the first solution that came to mind. It got the job done, but deep down, I was usually disappointed with the results.

I thought that was how it worked. Everything needed to be done yesterday. I didn’t necessarily work absurd hours, but I didn’t slow down and really take my time to find a great solution. I just raced to get it out the door so I could get to the next thing on the list. I couldn’t keep up with the ideas and requests that thousands of users inevitably generate. Even today, I still struggle with this. I want to make it easier for them to work, so I worry and hurry.

As it turns out, learning to let go and take my time has been a powerful lesson. Improvements are no longer a race where I start out two laps behind. They’re a journey where I’m exploring to find the best solution; not the quickest. I’m measuring success in days or weeks instead of hours. Writing code is fun again. That fun is inevitably translating into a better Sifter for our customers. That was the whole point in the first place, right?

Exhausted and Anxious

A few weeks ago, we released a significant update to Sifter. (Rails 3, Ruby 1.9, and a bevy of associated gems and other components in case you’re curious about such things.) Since then, there have only been a few fleeting moments of peace and quiet. My Pavlovian response to the email alerts has gotten a bit out of hand.

The first couple of weeks after the release I felt physically ill due to the extended hours and the pressure I was placing on myself. You see, it’s simply not possible for anyone to be harder on me than I am. That’s both good and bad. Maybe more bad than good. Anyhow, it was a little bumpy. From obscure encoding bugs to even more obscure performance bugs, (you know, the kind that only show up in production) it’s been a wild ride.

More often than not, going to bed only crossed my mind when I recognized that being at the keyboard would likely do more harm than good. Of course, most nights, going to bed didn’t equate to getting sleep. There were just enough emails to prevent any deep restful sleep. There were rarely any that required immediate attention, but I wasn’t taking chances.

I’ve never worked so hard or been more physically exhausted by work in my life, but do you know what the crazy part is? Despite that exhaustion, I’ve never been more excited or anxious to get to work. The boring part is done. Now it’s just about delighting our customers with long overdue improvements. I know I need to catch up on sleep, but now I don’t care. I don’t want a break. I just want to ship things and make people happy. Nonetheless, I’m going to take a break tomorrow. Or maybe the next day. We’ll see.

Ready

We spent the last 6 months doing hard work that isn’t fun or directly visible to customers. It just had to be done. It sucked. Building this foundation has been the hardest, most involved work with which I’ve ever been involved, and nothing has ever pushed me so far outside of my comfort zone. Conveniently enough, my daughter is 6 months old as well. Put the two together, and well, you can probably guess what kind of a ride it has been. Thankfully, it looks like the most challenging days are behind us, and we’re ready get back to making a product rather than managing a business.

Team We have awesome people on retainer to help with necessary but distracting things like bookkeeping, accounting, legal, system administration, and more. We also have enough profit to bring in some additional help from time to time so we can work with great people on fun stuff.

Technology We have the technical infrastructure in place to serve more requests than ever with our fastest response times ever, and we’ve just barely dipped our toes into performance tuning. We can also quickly and easily scale that infrastructure as we grow. Our other internal processes are running more smoothly than ever. We’ve refactored and improved significant amounts of code so that we’re running the latest and greatest with the most flexibility to adapt going forward.

Knowledge We have three years of interacting with real people using Sifter and offering great feedback and insight to how they use it. Those conversations have helped us create a crystal clear vision for where to take Sifter from here. We’ve also been able to observe how people really use Sifter. We have a clear understanding of which features see the most use and which features we could probably live without. I can’t put into words how excited I am to do something with all of this accumulated knowledge.

With Sifter, all I ever wanted was to build something that made people happy and have fun doing it. In some ways we’ve succeeded, but it’s been significantly more challenging than I ever anticipated. In four years, all we’ve really managed to do is build a business that can afford to let me turn Sifter into the product I always envisioned. This is just my way of drawing a line in the sand to say this is the week that we turned the corner. Check back in with me at the end of the year to see if we pulled it off.

My Biggest Mistake

When I set out to build Sifter, I had a singular vision. Make a bug and issue tracker that non-technical team members would actively use. However, once it was out in the wild, things weren’t so clear. I failed to stay focused. I let myself get distracted by finances, logistics, uptime and support.

I got bogged down watching our bottom-line even though we’ve always been comfortably profitable. I worried about preventing fraud even though the only instance we ever encountered only cost us $200. I constantly worried that Sifter could go down at any moment even though we’ve had 99.96% uptime since launch. (That’s about 9 hours in almost 3 years.) Don’t get me wrong, we’re working to do better, but at 99.96% there’s more important work for us to do. I also let myself become too focused on support. I desperately wanted people to like Sifter. If they didn’t like it, I wanted them to understand, and ideally, appreciate the vision. All of these little things were distracting me from the work that really mattered.

Once Sifter was live, I went from creating an application to running a business, and it didn’t take long before that business was running me. Between fear, worrying, and the feeling that I had to justify our every move to our customers, I stopped having the guts to try and do anything special with Sifter. I was so obsessed with ensuring that we didn’t fail, I forgot to spend time making sure that we succeed.

It took the biggest deadline of my life for me to see what I’ve been doing wrong. In about 4 weeks, if all goes well, my wife and I will have our first child. I’m not even close to finishing the amount of work that I had hoped to by then, and until recently, it was killing me. However, it has helped provide a renewed focus, and the next 4 weeks will see some of the deepest improvements to Sifter since we launched because they set us up to minimize the distractions of running Sifter.

By the time our daughter arrives and I hopefully get a little bit of time off to spend with family, Sifter will be in a new hosting environment with improved performance, higher availability, more modularity, and even better backups. That means fewer logistical distractions and more time to focus on improving the application itself. We’ll be able to grow faster and with less effort. On top of that, we’ll add one of our top three feature requests with the other two to follow not long after.

I’ve always known better, but I simply couldn’t see it. Building a business is scary. Starting a family while building a business is even scarier. However, letting fear and worry drive decision making is no way to accomplish anything meaningful. I just wish I had recognized it sooner.

Betting on Design

I’ve designed and created software and web sites for a lot of different companies over the years. All of those companies have been focused on features or just getting something out the door. They were more concerned about next week’s trade show than next year’s vision. They would rather have one paying customer today than one passionate customer tomorrow. I always understood their reasoning, but I never shared it.

After investing 100’s of hours in designing the future vision for Sifter, I’ve finally had the opportunity to put my money where my mouth is. Instead of chasing the all-powerful feature checklist, we’ve made a pretty big bet that improving the overall experience of using Sifter is a better decision than adding as many features as we can. That’s not to say that it’s right for every piece of software—only that we feel it’s right for us.

Spending such an incredible amount of time on design isn’t easy when the occasional customer cancels and tells you that they’re doing so because of your lack of features. However, staying true to this vision feels like the most important decision that I make every day. It’s frustrating at times because this is a massive exercise in delayed gratification. I just have to remember that we’re thinking about 5 years from now not 5 months from now.

Naturally, we’ve got a long journey ahead of us, and there won’t be a single moment where we unleash a 2.0. Instead, we’re going to finish laying out the vision and then steadily evolve towards it. To some degree we’ve already started the evolution. We’ll still be adding features as we go, but we’ll always put design and user experience first. We’re not going to add a feature simply to have it on our checklist. When we add something, there’s going to be a good reason for it, and we’ll be designing it carefully. That is, we spend about 3-5 times as much time thinking and designing than we do building. We don’t want to placate customers today—we want to give them a reason to love Sifter tomorrow.

Work/Life Balance

Sometime around 2002, I attempted to start my own business, not as part of the grand plan, but rather as a fallback for lack of options. It didn’t do so hot. I was living at home and the highlight of each week was meeting up with friends at a bar on spinner night where you would spin to find out the price of your beers. (Anywhere from free to $1.) I digress.

That business lasted a couple of years, and if I had to guess, my effective hourly rate was about $1-2 an hour. I was under the impression that 60-80 hour weeks were the way to do it. I thought that If the company wasn’t succeeding, it was simply because I wasn’t working hard enough. Inevitably, I would get burnt out and be wildly unproductive for weeks at a time.

Eventually I realized that I needed to move on. Despite being a complete failure in and of itself, that experience contributed enormously to my ability to launch Sifter. More importantly, as I look back on that time these days, the importance of having a healthy work/life balance was the most important lesson of them all. That’s not to say that it’s important for everyone, but it’s very important for me.

Fast forward 6 years. I launched a hosted web application that’s available 24 hours a day and 7 days a week. I’m essentially always on call. I got a dog, got engaged and subsequently married, bought a house, and did a handful of other things that made absolutely zero sense from the standpoint of managing a young business.

Celebrating with Mack

There’s no doubt that those decisions made Sifter more difficult. Much more difficult. Raising a puppy. (You don’t realize how often they go to the bathroom until you’re trying to concentrate on writing code and you have to stop regularly and carry them down three flights of stairs.) Planning a wedding. Going on a honeymoon. Buying a house and committing to a mortgage.

Dancing at our Wedding Reception

We all have our priorities, and different things are important to different people. Nothing wrong with that. This time around, when I set out to build a business, I promised myself not to let it get in the way of living my life. It hasn’t been easy, but for me, it’s clearly been the right decision. From where I’m standing, Sifter wouldn’t be what it is if I wasn’t actively making sure to have a little bit of a life on the side.

Finding time for all of these things required a lot of time and effort. It’s been worth it, though. Had I put those things off to focus on the business, I can assure you that the depth of my regret would not be quantifiable. So, next time you read an article with the media glorifying somebody starting a company and working 168 hours per week, don’t assume that’s the only way or even the best way. It’s just one way. It’s just as possible to have your startup and friends and family too.