GarrettDimon.com

Feb 21

What does it take?

The full stack for a web application can be rather overwhelming, but it’s not quite as bad as you might think. If you look at this list knowing only a small portion of the items, it can be incredibly intimidating. Really, though, it’s an incremental learning process. You learn a little something new every day, and before you know it, you’re having fascinating conversations with really smart people. (I’ve only listed the pieces involved in Sifter. Every app is different, but this is a good representation of the pieces of a web application.)

Design, Content, and User Experience

Front-end

Development

Servers

Modules & Components

You don’t necessarily need to be an expert on all of these topics, but the more you know, the easier it is to talk and enlist the help of those that are experts.

Improving Code Quality -

Adam provides a peek behind the curtain at one of the changes we’ve made to our process to improve the overall quality of Sifter underneath the hood. The more we quantify quality, the easier it is to constantly work to improve it.

Why we shut down Newsberry -

Whenever a business shuts down, it seems there are many that are quick to ask, “Why not sell it or open source it?” It’s never that easy, and this explanation from Wildbit does a great job explaining why selling is easier said than done as well as why open sourcing it isn’t always practical.

Feb 15

All I Ever Wanted

It used to be a job, a responsibility, and a livelihood. The moment we launched, shit got serious. I stopped dreaming and started responding. To customer feedback. Feature requests. Complaints. Cancellations. It stopped being a dream come true and started just being a job. Granted, it was still the most emotional connection that I had ever felt with a job, but it wasn’t what I envisioned.

I began to be less ambitious; more scared. I focused on what was safe, not so much easy, but safe. Time after time, I’d start a new code branch for something ambitious. I’d make great progress, but then I’d stop and think about the complaints that we’d get for changing. That’s all I saw was the complaints. I stopped having the ability to envision the happy people. Happy people don’t email you. The unhappy ones do. Do they ever.

During that time, I was collecting ideas and suggestions from customers and refining my thoughts quietly working late into the night designing. Really, I was hiding. I was hiding from making mediocre but important changes. Eventually I realized that if I think one of Sifter’s features sucks, our customers probably do to. If I think I can make it better, and I like it, chances are they will too. It seems so obvious after the fact, but it’s difficult to see in the moment.

The momentum from this has been something else. It’s fun again, and it’s because I quit being scared. Now, all I do is ship. Every day Sifter gets a little better and hopefully makes it a little easier for people to enjoy their work too. That’s all I ever wanted. Unfortunately, it took some time to realize it, let alone to have the guts to actually do it.

Feb 02

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.

Jan 25

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.

Dec 06

Automation, Self-service, and Administration

Just a random thought. As a solo founder, my time is our scarcest commodity. Making sure that I have free time and minimal interruptions has become one of my highest priorities, and it’s paying off. Some of the best investments I’ve made in Sifter are the things that keep me free to focus on the product. It seems obvious to me now, but the following guidelines have all evolved organically as Sifter has grown and become more demanding on my time.

  1. Automation is awesome. Nothing beats not having to do anything.
  2. If it can’t be automated, self-service is the next best thing. Letting customers handle things on their own is awesome. It’s faster for them, and it lets me focus on the product.
  3. Mobile administration is a life saver. You can’t always be at the computer, so helping people on the go is a must.
  4. Monitoring is the new co-founder. We use New Relic, Pingdom, and Monit to make sure that everything’s running smoothly. The sooner we know about problems, the faster we can respond.

For instance, I’ve built an iPhone-optimized administration tool that lets me quickly and easily look up accounts, renew trials, and do a handful of other tasks that I do every day. More importantly, I can do it all on the go. No sense in making someone wait until I’m at a computer if I can renew their trial in two clicks from my phone. For the times when I am at my desk, I have a handful of Alfred shortcuts and snippets that help me respond to support requests even faster.

Dec 01

Tenacity

Lately, I’ve been reading biographies and stories by athletes, business people, and politicians. The one attribute common to all of them is tenacity on a level that most of us can’t even imagine. The problem is that on the surface, we only see the success. We don’t see the work that went into achieving the success. We see the culmination rather than the 10 or even 20 years that went into getting there.

The hours they put in. The family events they missed. The vacations cut short. The travel. The times they were borderline bankrupt. The career-ending injuries that didn’t end their career. The nights they were homeless. The amount of bet-the-company decisions they made. The uncertainty they live through. The fear of letting down hundreds or thousands of employees. The mornings of waking up at 5am and practicing in freezing cold weather. The way they overcame abuse. The countless minimum wage jobs and years of working their way up. The countless hours spent honing their craft.

They did the things that most would consider crazy. They pushed themselves harder and farther without any guarantees. They stuck with it when they shouldn’t have. They just kept going. I’m not sure if that’s good or bad, but I do believe it’s the main reason for their success.

Oct 07

Tradeoffs -

A great example of how perceived “improvements” aren’t always that. Larger screens for mobile devices certainly have their benefits, but as with anything, there are tradeoffs.

Oct 04

“Great design helps because it makes life a little less complex. When you are having a rough day the last thing you want to worry about is how to use your computer. When you travel you want the signs giving you directions to be clearly marked and informative. When ordering from a menu at a restaurant you don’t want to be confused as to what is actually food and what is decoration.” — Drawar

Oct 03

Where I work on Sifter. You know, if you’re into this sort of thing. I’m using a GeekDesk these days and switching back and forth between sitting and standing depending on the type of work I’m doing and how I’m feeling that day.

Where I work on Sifter. You know, if you’re into this sort of thing. I’m using a GeekDesk these days and switching back and forth between sitting and standing depending on the type of work I’m doing and how I’m feeling that day.

Ironic that Carfax’s marketing implies dealerships are shady when Carfax isn’t exactly straightforward themselves. Check the location of the “please don’t spam me” checkbox. Of course, selecting it by default is bad, but this placement is just downright sneaky. Also worth noting, I unchecked it and they sent the spam anyways.

Ironic that Carfax’s marketing implies dealerships are shady when Carfax isn’t exactly straightforward themselves. Check the location of the “please don’t spam me” checkbox. Of course, selecting it by default is bad, but this placement is just downright sneaky. Also worth noting, I unchecked it and they sent the spam anyways.

Sep 26

Speaker Deck is Live -

Speaker Deck is brand new clutter-free way to share your slides from presentations. I suggest that you use it.

Sep 13

Thoughts on Business Models

After the recent presentation, I was surprised how many questions I heard about our choice of business model or application. There also seems to be no shortage of people debating between native mobile and web applications. For me, there are a variety of reasons that I chose a hosted web application and why I’d make the same choice today.

Why hosted and subscription-based?

  1. Income Consistency - With subscription-based software, the amount of fluctuation in income from month-to-month is minimal. As long as churn stays low, you’re almost never going to see your income disappear overnight. With a native app, if people stop buying, you stop seeing income.
  2. No Versioning - Everyone gets the same application and you never have to worry about someone seeing a bug on an older version of your software.
  3. No Middle Men - With a hosted application, there are no app store approvals or waiting periods. Nobody takes a cut of our profits, and there’s nobody preventing us from interacting directly with customers if they’re unhappy.
  4. Relationships - With a one-time purchase, someone can buy today, switch to a new application tomorrow, and you’d never even know. With subscription-based, we have an obligation to keep customers happy every day. We’re able to build better relationships with our customers. It’s less of a one-and-done situation, and more of a “How can we help you today?” situation.
  5. Technology Longevity & Reach - With a native application, you can only reach people that use the associated platform. A web application can reach anyone in the world. While today’s web applications can’t compete on every front with native apps, that gap is narrowing, and for what we do, there’s nothing that we need that’s only available in native apps.
  6. Experience - While this isn’t a huge deal, it doesn’t hurt that I’ve spent my entire career working with web technologies. I’m someone that believes in focusing on what you’re good at. I’d rather support an API and let others develop an iOS application than get into a space that we’re not deeply experienced in.
  7. Collaboration - While possible, it’s incredibly challenging to build a team-based collaboration application without having a web interface. Similarly, if everyone on the team had to buy a native application to participate, you can guess what would happen to participation rates.

Why a bug tracker?

  1. Longevity - Like time-tracking or project management, there are some spaces that won’t be disappearing anytime soon. While bug tracking is sure to evolve in the future, people simply aren’t going to stop developing software or having bugs any time soon.
  2. Passion - For some reason, over the years, I’ve become fascinated with tools for crafting and managing the software development process. There are so many facets, and the space is so young and changing rapidly, it’s an exciting time to be a software developer.

There are downsides to our choice as well. For instance, with a hosted web app, if Sifter goes down, all of our customers are affected. Similarly, we have full responsibility for managing data and performance. The upside is that with a few exceptions, all of this is completely under our control. I’d much rather have risks that we can control than be facing unknowns that we can’t control. i.e. The App Store. That’s not to say the App Store is bad, but given all of our other considerations, I’d rather avoid the associated challenges there.

Sep 09

Bootstrapping a Software Product -

The slides from a presentation that I gave at Refresh Dallas last night. It goes over the lessons learned through both the good and bad decisions that we feel we’ve made while bootstrapping Sifter.