Building Habits with the Way of Life app

I recently heard about the Way of Life app from Tim Ferriss’s recent podcast discussion with Kevin Rose and want to share it with you all because I’ve found it really useful.

In a nutshell, the app lets you create a list of things you want to do or don’t do, asks you each day whether you did them, and displays a visualization showing how well you’ve done.

For example, here’s my current list:

  • Eating a Healthy Breakfast (good) – Usually scrambled eggs + guac.
  • Practicing Yoga (good) – I tried a bunch of stretching and yoga apps and ultimately settled on the extremely well done Yoga Studio.
  • Meditating (good) – I’ve been experimenting with this for a few weeks and am trying to stick with it long term. I use the Calm app though have heard Headspace app is great too.
  • Eating a Salad (good)
  • Drinking a Sugary Drink (bad) – Trying to continue December’s drink-well challenge
  • Eating Out (bad)
  • Exercising (good)

Here’s what it looks like in the app – green means I performed a good habit or avoided a bad habit:


The great thing about the app is that it only takes about 20 seconds to go through and fill out the report each day so I never find myself being too busy to fill it out. Also, if I haven’t gone in and updated it by 9pm each day, the app sends me a notification to remind me.

Knowing that I’ll have to report each day how I’ve done has definitely improved my habits and (surprise surprise) I feel healthier as a result.

If you’re struggling to build habits, I highly recommend checking it out.

Analytics Event Name Cardinality

As a follow-up to my post about analytics event naming conventions, I want to share a few thoughts about event name cardinality aka how many distinct event names to track in your analytics tools.

Consider four events that a user can perform: signing up for an account, publishing a post, publishing a page, and publishing an image.

How many analytics events should this be? We have a few options:


  1. Sign Up
  2. Publish Post
  3. Publish Page
  4. Publish Image


  1. Sign Up
  2. Publish Post with an Image property set to true or false depending on whether the post consists of only an image
  3. Publish Page


  1. Sign Up
  2. Publish with a Type property set to Post, or Page, or Image


  1. Perform Event with a Name property set to Sign Up or Publish with an additional Type property when the name is Publish set to Post, or Page, or Image

If you use a robust analytics tool like Mixpanel, Amplitude, KISSmetrics, or Tracks (Automattic’s internal analytics tool), you should in theory be able to perform any type of analysis using any of the options above.

For me, it comes down to what type of analysis you want to perform on the data, the types of properties on the event, and convenience.

Using the single event option will be a pain because you’ll constantly have to be specifying the Name property in the analytics tools to get the data you really want.

The decision between two, three, and four is close in this example. I think it comes down to whether you’re going to need a single Publish event in the types of analysis you’re performing. If knowing that the user published anything is important and each type publishing is conceptually similar, then having a single event might make sense. However, if your analysis is frequently going to focus on whether the user just published a post or just published a page or just published an image, having distinct Publish Post/Publish Page/Publish Image events is more convenient because you won’t constantly have to specify that you want the Publish event where the Type is Post. If publishing an image is similar to publishing a normal post, then maybe the three-event option is best.

At Automattic we went with three (Sign Up, Publish Post, Publish Page) and then added a feature to some of our tools (like our funnel builder) that let you specify a step can be one of several events (like publishing a post or publishing a page).

Hopefully this gives you a few things to think about next time you go to name new analytics events. If you can’t decide which route to go, feel free to reach out over email and I’d be happy brainstorm with you.

Building a Startup in 45 Minutes per day While Deployed to Iraq


You may one day find yourself in a position where you’re eager to work on a startup but limited by the amount of time you can put into it due to a day job, family or other obligations. In this post I would like to share with you all the story behind Lean Domain Search, a domain name generator that I built in about 45 minutes per day during a 5-month deployment to the Middle East. If you’re struggling to find time to put into your startup, I hope this convinces you that you can accomplish a lot over time by putting a small amount of work into it each day.


In the summer of 2011 I was a 26-year-old freshly pinned-on captain in the Air Force serving as a project manager at Hanscom Air Force Base in Massachusetts. I was 4 years into my 5-year service Academy commitment which meant that I had to serve one more year to pay back the Air Force for my education and training.

At the time I also had two moderately successful side projects that I had built on nights and weekends in the years prior: Preceden, a web based timeline maker, and Lean Designs, a drag and drop web design tool.

Everything was going smoothly until my Unit Deployment Manager called me into his office one day and informed me that I had been selected to go on a six month deployment in August.

This presented quite a predicament. As a solo founder, I didn’t have anyone I could turn my two projects over to maintain while I was away. I also had no idea what the internet situation would be like wherever I was headed, but more importantly I didn’t want to be distracted by these projects while I was out there.

I was contacted by the officer whose position I was going to take over when I arrived. He filled me in on some of the details and I eventually learned that there was limited internet access where I was going to live, but it was slow, had a firewall, and I’d probably be moving bases several weeks after I arrived anyway. I asked him if he could check to see if he had access to sites like Heroku (where my sites were hosted) and Github and he confirmed he did, but that still didn’t guarantee I’d have access to make changes to my sites, time to work them, or even internet access for the entire deployment.

I decided to keep the sites running, but to stop working on them several weeks prior to the deployment. That would provide time for any bugs to surface which would allow me to head out on the deployment knowing that the sites were in good shape. I also decided not to work on them at all during the deployment so that they wouldn’t distract me from my job.

A small deployment side project

During the pre-deployment training one of our instructors suggested we pick up a hobby or something else to work on during downtime. For example, some officers use downtime during their deployments to take online classes towards a master’s degree. I wasn’t interested in that, but decided that I would try to work on a small software project when I had time.

Back in 2009 I had another domain search tool called Domain Pigeon. I was just getting started with web development so I couldn’t figure out at the time how to do what I really wanted to do which was to allow users to enter a keyword and pair the keyword with lots of other terms to generate and quickly check the availability of quality domains. Instead, I built Domain Pigeon, a service that simply listed interesting available .com domains:


Domain Piegon, Lean Domain Search’s predecessor, in November 2010

I eventually shut Domain Pigeon down to focus on other projects, but the original idea stuck in the back of my head. By the time my deployment came around, I had a pretty good idea of how to implement it so I decided that would be what I would work on.

My daily schedule

I wound up getting assigned to lead a team that oversaw communications (network, radio, satellite, etc) for the aviation unit that supported special operations forces in Iraq.

We worked 12-hour days every day for the entire deployment including weekends. I need roughly 8-9 hours of sleep to function at full capacity which left me with about 3-4 hours at the end of each day (typically around 6am) to have a meal, exercise, shower, chat with my wife, hang out with my coworkers, unwind and maybe work on my side project. In practice, that usually was about 45 minutes per day. Sometimes more, but often not at all.

Fortunately, there were never any major issues with my other projects during the deployment. A few small bugs surfaced, but nothing that impacted many users. I still had access to my email so I could respond to support requests when I had time. And because I was working on the new domain name generator locally on my laptop, I could work on it without worrying that there would be issues in production.

Piggy-backing on the popular lean startup movement as well as the name for my existing Lean Designs tool, I decided to call the new domain name generator Lean Domain Search.

Due to the drawdown of US forces in Iraq at the end of 2011, I wound up coming home after 5 months instead of six – in January 2012 instead of February 2012 like originally planned. I had two weeks of R&R after I got back, the first of which I spent with my wife on vacation in Maine, the second of which I launched the first version of Lean Domain Search.


Lean Domain Search when it launched in January 2012

I continued working as a project manager at Hanscom Air Force Base until my commitment ended in September 2012. My wife and I then moved back to Florida to be closer to family and I decided to work on Lean Domain Search full time.


Remember I mentioned Domain Pigeon, my original domain name generator? When I launched it in early 2009, Matt Mullenweg, co-founder of WordPress and now CEO of Automattic, saw its launch on HackerNews and shot me an email saying he thought Domain Pigeon was neat and that if it didn’t become a full time job there were a lot of opportunities to work on domains at Automattic.

We chatted briefly on Skype, but I was a second lieutenant at the time and still had over three years left on my Air Force commitment so it didn’t go anywhere.

In early 2013 after I had been working on Lean Domain Search full time for several months, I remembered Matt’s old email about Domain Pigeon. I checked out Automattic and and decided to reach back out to Matt to see if there was still an opportunity. I found his original email and responded to it again, this time 4 years after he sent it. I reminded him who I was, explained that I was working on a new domain name generator, and that I saw an opportunity for it to be put to use on to help users find better domain names. He encouraged me to apply for a developer position which I did and in the end Automattic wound up hiring me and acquiring Lean Domain Search.


Lean Domain Search today

That period from August 2011 when I deployed to June 2013 when I started at Automattic was probably the most intense period of my life. I am extremely grateful that things worked out the way they did. In the end I wound up with a small acquisition, an amazing job at Automattic, a deployment that I’m really proud of, and experiences that will stay with me for the rest of my life.

If you’re considering working on a startup but can’t make the leap to do it full time for whatever reason, remember that even a few hours per week can have a huge impact in the long run.

Stick with it. Amazing things can happen.

Discussion: HackerNews/r/startups, /r/entrepreneur

Jan 2016 Fitness Challenge


My friend Tom Hanover just started a blog and his first post is about his ongoing success with a slow carb diet. To help him achieve his weight loss goals, he publicly committed to reaching a certain weight by the end of January and even offered to pay me $100 if he doesn’t.

As you might have gathered from my Drink Well December Challenge, I’m a big fan of public commitments especially when coupled with monetary incentives.

December’s challenge went really well by the way. With the exception of the occasional sweet tea and beer, I managed to avoid sugary drinks for all of December and I felt great because of it. One thing I could have done better though is with the self-imposed penalty for failing. I offered $20 to anyone who liked the post or commented, but the logistics of actually paying out to those 12 people – some of whom are strangers – would be a pain. Which brings me to January’s challenge…

I’m about 193 pounds at 20% body fat at the moment. I’d like to get down to 15% body fat this year. To move towards that goal, I’m going to start by trying to drop 5 pounds in January.

Tom, if I’m not at 188 pounds or less on February 1st, you’ll have $300 coming your way.

PS: If anyone else would like to commit to a goal by the end of January, I would be more than happy to be named the recipient of your cash if you don’t succeed :).