A car that moves sideways.

Forget normal parallel parking, I want a car that can crabwalk like this Hyundai concept!


Whenever I make scrambled eggs, I think of people I’ve lost.

I grew up poor. So poor, in fact that at one point during my childhood we ended up having to move in with my mom’s mom: Mary Noel LaGrange. That ended up workng out great for me, because I got to spend a lot of time with my grandmother.

She loved to feed me and watch me eat. Looking back through old photos, I was such a fat baby! A lot of it was her doing.

What I remember most, though, are the quiet mornings that we spent in the kitchen, when she’d make me eggs and cheese.

4 eggs. Cast iron pot. Butter. 2 slices of American cheese.

The pot she used was well seasoned, and I remember that she’d somehow get the eggs and cheese to brown in such a way that they became one delicious entity.

I was by her bedside when she passed away. I was still too young to learn how to cook, so she didn’t get to teach me how to make them.

A few years later Cheryl, the older neighbor girl who lived next door came over and taught me how to make scrambled eggs. She also passed away way too soon, in a horrific car accident.

I have made at least 8,000 scrambled eggs in my life, but I have never been able to replicate my grandmother’s eggs. There’s just something about them that I have yet to figure out.

Every time I make scrambled eggs, I think of my grandmother and Cheryl, and every now and then I throw in some American cheese and try to make those eggs.

One day I’ll get them right.


How to resolve Apple HomeKit issues between the Chamberlain MyQ Home Bridge with a UniFi router

If you have a UniFi setup with a Chamberlain MyQ Home Bridge, sometimes it can be flaky under HomeKit. Specifically, the issue that I was seeing was that the garage door opener could be seen and controlled by the MyQ app, but in the iOS home app, both the MyQ Home Bridge and the garage door opener showed the dreaded “No Response” message. It turns out that the issue is that HomeKit WiFi devices tend to use the 2.4GHz band, but your computers and other devices are probably on the 5GHz band. The UniFi router/WiFi access points will silently create 2 networks with the same SSID… one that’s 2.4GHz and one that’s 5GHz.

Normally that’s not a problem, but due to the way that HomeKit discovers devices, it becomes a quite annoying issue. Basically, HomeKit/Bonjour devices advertise themselves using something called Multicast DNS. In some cases, the UniFi software won’t send the Multicast traffic between the 2 networks, so your HomeKit bridge can’t find the MyQ Home Bridge.

The way that I fixed it was to open the UniFi Controller interface and turn on the setting named “Enable multicast enhancement (IGMPv3)”. I found it under Settings > Wireless Networks. I clicked Edit on my wireless network, and then I clicked Advanced Options to reveal the setting. Once I applied that setting, my Home Bridge showed up immediately.


Don’t ride in the bus. Drive your own car.


I’ve been entrepreneurial since I was young. I started my own business when I was 15, and although I’ve had more than a few years of working for someone else, my goal has always been to work for myself. Over the years, that feeling got stronger and stronger. I was tired of being asked for my opinion about something, taking the time to give a well-reasoned answer and having my advice be completely ignored. I was tired of working on things that never shipped. I was tired of working on things that had no reason other than “because I said so”. I’ve always done my best work when I can see the reason behind the work that I’m doing. Around February of 2013, the startup that I was working for ran out of money and after panicing for a few months, I realized that I’d built up enough of my own business over the years that I didn’t have to find another job. I figured out that if I just focused on growing the apps that I was already working on, I’d be fine.

It’s been a great ride so far. My business has grown and is continuing to grow. By December of last year, I was making as much revenue in 5 days as I did in the entire month of April.

I’ve been doing a lot of thinking recently about why I prefer running my own business. I’ve come to the conclusion that I feel that running your own business is like driving your own car, while working for someone else is like taking the bus.

When you ride in the bus: You can make suggestions to the bus driver, but they don’t have to take them (and they probably won’t). If the bus gets in a wreck, you (and everyone else in the bus) might see it coming, but the only one who can decide to avoid the accident is the person behind the wheel. The bus driver can also decide to kick you off of the bus at any time, for any reason. Conversely, if the bus is consistently the best bus on the road and never gets in any wrecks, it might get upgraded over time, or traded out for a new bus. Everyone in the bus benefits from things like heated seats, free meals, video screens, free wifi, etc (health insurance, stock options, bonuses). You can focus on just the job that you’re getting paid to do. As long as you’re getting that job done within the organization, you’ll probably get paid.

If you drive your own car: You have to be alert all of the time, because your business depends on you being able to see issues coming, and avoiding them. You’re responsible for all of the decisions, so your failure or success depends on you. However, you can take your foot off of the gas at any time. You can take a shortcut, or a more scenic route.  You can buy a sports car if you want (which may accelerate your success or failure, depending on how you drive), you can drive a reliable, dependable car, and you can even drive a minivan if you want (doesn’t go as fast as the rest, but it holds your whole family!), depending on what’s most important to you. Your mistakes and successes are your own.

In my experience, it feels pretty good to be the one driving the car, instead of riding the bus with everyone else. It’s great not to be tied to the same destiny as everyone else, with no real control over how things end up. It’s not the best choice for everyone (some people prefer the illusion of security that employment brings), but it’s definitely the best choice for me.

Maybe you shouldn’t be riding in the bus either.


Say No More Often.

Earlier in my career, I found it very hard to say no to anyone who asked me to do anything for them. I was just happy that people were using what I built, and I wanted to do whatever it took to keep them using my products. If a customer asked for a feature, I’d most likely trip over myself to add it.

Lately, I’ve been saying no more often, both to existing customers who ask for things that are outside of the direction that I have in mind for my products, and to potential new customers who ask for me to do things that I’m not comfortable with (recently a potential new customer asked me to sign an NDA for them to start a trial of my SaaS app, and I said no).

I think that the root cause of my inability to say no in the past was that I didn’t really have a defined audience or direction for my products. It’s pretty hard to be able to say no to things if you don’t know who you want as a customer. So I took some time to define my ideal customers. Since I know who they are now, I also know who doesn’t fit into that group, and it’s easy to tell them no when they ask for things outside of that. I’ve also found it easier to say no once I realized that even if I did what they wanted me to do or added the feature that they wanted me to add, it wouldn’t be something that I would really care about, so the app would suffer overall from lack of focus, and they’d probably leave eventually anyway because I wouldn’t be fully invested in making that feature better over time, leaving me with a feature that literally no one wants.

So, take some time and figure out who your ideal customers are, and what your longer-term vision for your product is. It doesn’t even need to be super long-term, just your vision for the next couple of months is fine. Taking time out from the daily grind of writing code or marketing your app to define who you want for your app to serve will pay off dividends for years to come, and your app (and your life) will be much better because of it.


The stages of being an entrepreneurial developer

Learn to code. Write a lot of code for fun.

Figure out that people will pay for you to write code, start writing code as a job.

Figure out that you want to be in control of your own destiny, and start writing code to solve problems that you see. Make no money.

Figure out that you actually need to solve problems that people see as problems and are willing to pay for solutions for.

Figure out that even though you’re solving real problems that people are willing to pay for solutions for, no one knows about them.

Figure out that you can write the most technically brilliant code ever, but if no one knows about the value of your code, it’s worthless because you can’t feed yourself with brilliant code.

Figure out how to tell people about your products, and how to present them in a way that people will pick up on and buy.

Start selling products successfully.

Spend more time thinking about writing code than writing code.

After thinking about writing code a lot, write less code.

Write smarter code.

Blog more.

Write better marketing copy.

Teach others.

Keep learning.


Consider the source.

People are always giving us advice, both in our personal and professional lives. It’s unavoidable, unless you’re a hermit. But a lot of advice that you get isn’t actually going to help you. Many people mean well, but they are giving you information based on their own experiences, which will never exactly match yours.

Always consider the source. Is there an ulterior motive behind the advice? Is the advice something that won’t really work for you, given your situation and your goals, even though it legitimately worked for someone else?

If a surgeon who specializes in gastric bypass surgery tells you that low carb diets don’t work and that you’ll gain all of the weight back (and more) after you stop the diet, they’re most likely just trying to get more business. If someone tells you that content marketing is the best way to gain an audience online and they’re selling you content marketing courses…. they might be right, but they might be trying to sell you something. If your parents tell you that you should have a baby soon, is it because they actually believe that you should, or do they just want a grand-child to play with? 🙂 If people keep telling you that you should buy a house, is it because you actually should, or is it because they own a house and are jealous that you aren’t tied down to one place like they are?

Unless you have several data points from different sources that are all saying the same thing or reaching the same conclusions, take all advice with a grain of salt. A lot of advice out there is actually helpful and shared by people who care. Your job is to be aware of why people say the things that they say, and to take the information that best applies to your situate, which only you can decide.

Start with this post! I’m giving you advice. Consider the source.


It’s ok to take your foot off of the gas pedal.

Since I launched my first web app in 2006, I’ve had my foot on the gas. Since then, I’ve built, or been one half of building 13 other web and/or iOS apps. It’s only been 7 years. I guess you can say I have a lead foot.

For most of that time, I’ve been creating my own stress.

I’ve been stressed out for most of that time. Either I’m stressed out that I’m not building fast enough, or that something is breaking and I have to fix it, or that some customers are driving me up a wall, or that someone on a project isn’t pulling their weight and putting more of a burden on me. Some people are never going to be as crazy about building products as I am. I can’t expect them to be. I’m not going to spend so much time worrying about things that I can’t change. I’ve realized that the majority of that stress is stress that I put on myself. 

I’ve long known that if I took my foot off of the gas, not much would change. If I didn’t stress out about getting to every single customer immediately, not much would change. A customer will be almost as happy about getting a response from me if I get to them within an hour or several, instead of immediately, and I’ll be a whole lot less stressed out about having to immediately get back to people. Not everything is an emergency. It’s taken me this long to really internalize it, though.

Even though I’ve known for a long time that I shouldn’t be building my apps to meet every person’s needs, it’s been very hard to say no to people, because someone has a need and is paying me for a product, and I’ve felt a personal kind of responsibility and pressure to build whatever they want. No more. For the past year or so, I’ve still been listening to customer requests, but I’ve been considering the long-term ramifications of every feature, and prioritizing the development of feature requests that will benefit most, if not every user of my apps. It is helping to keep me sane. For awhile there, I forgot that the point of building products is to give me the freedom to build the things that I want to see in the world… to be able to say no to things if they don’t fit my long-term vision, and to not have thousands of bosses.

There was never enough time because I wasn’t making enough time.

I have been using a GTD app since 2008. Or maybe the right word is abusing. I’ve been using it all wrong. I separated things into projects at first, but then that devolved into a state where I was just dumping everything new into my Today folder, when I knew full well that I’d never get all of those things done in any given day, especially since I would remove 2 things and add 5. At the end of every day, I would feel like a failure, even though I had obviously set myself up for it.

When it got to 80 items recently, I said enough is enough, and decided to make time every day to sort out my to-do list. Every night I get a notification to review my list and get my Today list ready for the next day. Starting the day with 5-10 items is a lot more realistic, and sometimes I actually get to all of them now!

I’m giving myself permission to slow down. To get in the slower lane. To pull over to the side of the road, get out of the car, and walk around. I feel much better already. You should try it.

You will feel better too.


Hey. You.

You know that thing that you’ve been putting off, that thing you know that you should do but haven’t done yet?

Not that thing. You know the thing. Yeah, that one. That phone isn’t going to make that call for you. That email isn’t going to write itself. That code isn’t going to get written without you. The only person who can make it happen is you. It’s just going to sit on your list forever and weigh on your mind until you do it.

Do it. Do it now.

When you’re on the other side of it, you’ll feel much better, I promise! You’ll wonder why it took you so long to just do it.


The Middle.

Lots has been written about launching your first app, and lots has been written about people with successful apps. But who is writing about the time in between? Who is writing about the much longer period of time where you’ve launched an app, found product market fit, and are slowly climbing the path to freedom?

Let’s call it the middle. The time where you’re not making enough money to quit your day job, but you have enough customers to need to do real customer support.

Here’s what it feels like:
You don’t know what you’ll wake up to… Maybe lots of your customers will have an issue, because your VPS provider restarted one of your servers in the night and it didn’t come back online properly.

Maybe an important potential customer has an important sales question for you, and you’ll need to drop everything to deal with that, because that one customer would double your revenue.

Maybe you’ll actually get to spend the day writing code, like you used to before you realized that there’s a LOT more that you have to do to make your business successful, and if you code it, they won’t necessarily come.

Maybe you’ll have absolutely no support to do, and you’ll momentarily freak out because you think that your help desk software is broken.

You feel like a ping-pong ball, bouncing from one thing to the next, trying to keep everything in the air at once.

But, it also feels GREAT.

You’re making progress.

Every month, your dreams become more real.

Your business is growing.

You can see the light at the end of the tunnel.

You have real customers paying you real money to solve real problems.

You’re having conversations with customers who love your product so much that they take the time to let you know how much they do.

It’s freaking awesome.