Not an App

May 05, 2017

Look in any direction and you will see that automation is changing the face of employment, whether it be factory robotics or tax preparation. Blue collar workers and white collar workers alike need to start preparing for the future. But recently, Century 21 recently put up a commercial so out of touch with reality.

Basically, they are trying to point out how awesome it is that they have real people. 🙄

This has been coming for a long time with real estate agents. According to an academic article from 2013, titled “THE FUTURE OF EMPLOYMENT: HOW SUSCEPTIBLE ARE JOBS TO COMPUTERISATION?”, real estate agents have a 86% chance of losing their job to automation. Other parts of the real estate process are even higher. I am not writing this with any emotion, be that anger, sadness, greif, and definitely not glee. This automation is coming, because it is too lucrative not to. It is best to prepare for the inevitable future rather than fight it.

Century 21 is in a very difficult position. If they try to start pivoting their company to focus more on automation, they risk their best agents getting angry and leaving in the short term. Since, most agents get (or used to get) work by word of mouth, the specific agency they work for is largely irrelevant.

Realogy (the company that owns Centry21), has thousands of employees and a trove of great data. I assume they have someone leading the charge to automate much of the work that real estate agents currently do. They are one of the best positioned companies and if they don’t automate … well you know what I think.

Back to the commercial seemingly made from another universe. Since Realogy is so big, I assume they give Century 21 a big enough budget to keep the wheels on while they try to figure out what is next. Or they might have no idea what they are doing. 😉

Live Podcasts - Good Idea?

Oct 25, 2016

Last night I went to a live podcast of Criminal at Jammin Java in Vienna, VA. It is a true crime podcast, hosted by Phoebe Judge. Before the show started I intentionally didn’t learn anything about what the show might be like, that is the way I consume entertainment. If I would have guessed what the show would have been like, I would have guessed one long story that would be impossible to tell without showing lots of videos and pictures, and maybe a Q&A at the end. What I got instead was six normal/short stories that were not that different from the show.

The fact that it was so similar to the regular show is mostly good because I love the show. The stories were engaging, funny and interesting. But the real reason you might go to this live broadcast of Criminal is to watch Phoebe read, in her perfect NPR voice, and Lauren Spohrer pull the strings and mix the audio in realtime.

The problem is that podcasts are generally a passive activity. So, sitting in a room with a bunch of other super fans listening to something that I normally hear while walking or doing the dishes, fundamentally changes the experience. I don’t think live podcasts are a bad idea overall and I am happy to have supported Criminal (a great show, seriously just go subscribe!) Mostly, I think they are not a good fit for me and in the future I will only attend non-scripted live podcasts¹, like FiveThirtyEight panel style podcasts.

¹As a small asside, I have purchased and watched live episodes of This American Life and Radiolab, but those are much bigger productions and go way beyond what I would consider a podcast.

How Tesla Will Change The World

Nov 20, 2015

Some websites are life-changing. I don’t know why I have never heard of “Wait But Why” before. Now that I have, it has completely consumed me. To see smart & funny writing, written for smart people in a smart way is delightful.

The post I want to talk about is about Tesla on the surface, but it is really about energy, climate change, and cars. It is not a post that can be read in one sitting and it is not a post that can be skimmed through. It requires thinking. It may even lead you to have a conversation about it with actual people. I read this post weeks ago and I still find myself frequently thinking about it.

Here is an excerpt I liked:

We use “the food chain” as a cute euphemism for this murder/theft cycle, and we use the word “eating” to refer to “stealing someone else’s joules and also murdering them too.” A “predator” is a dick who always seems to want your joules over everyone else’s, and “prey” is just some sniveling nerd you particularly like to bully and steal lunch money from. Plants are the only innocent ones who actually follow the Golden Rule, but that’s just because they have the privilege of having the sun as their sugar daddy—and humans are the biosphere’s upsetting mafia boss who just takes what he wants from anyone he wants, whenever he wants. It’s not a great system, but it works.

I said life-changing, which sounds like a cliché. When I read this post, I had just sold my car and hadn’t purchased a new one. It probably made sense for me to get a car, but I decided to tough it out for a couple years to see how the electric market turns out. As a side note I think that no matter what type of car I buy, it will likely be my last car (as cities will be fundamentally transformed by self-driving cars).

The Relative Value Of Software

Nov 09, 2015

Apple is my default platform. I earn my living building iOS apps for clients. I have been using Apple exclusively for over a decade. You could say that they are my favorite computing platform. But lately, their actions have made me consider diversifying my skills.

Since the arrival of the App Store over the past 7 years people have been constantly devaluing software. This is not surprising since the App Store has lowered the barrier to distribution. For apps that don’t require a server, there is no additional cost to distributing an app. Since there is no cost associated, it is completely rational to solve for the greatest $ where:

C = Number of customers
P = Price of the app

C * P = $

The graph of that formula is different for each app, but you can imagine more people will buy it at 1.99 than 9.99. If there are more than 5 times more people at 1.99 it is logical to lower the price from a purely financial point of view. There are other non monetary reasons that go into app pricing, but we won’t get into those now.

But when the price goes to 0, there is no number of customers that can “make up for it in volume.” You either need to make money on it indirectly or not make money on it. Indirect ways of making money include, hardware sales, advertisements, selling the user’s data or selling an upgrade. I am intentionally not talking about services that are supported by an app or apps that sell things, because those are not dependent on the app store for monetizing.

Apple themselves has done this with most of their software, including their operation system upgrades. This is great for developers building apps for those devices, but it sets an expectation with consumers that software is cheap, even complicated software. You frequently hear customers say, “I never pay for apps.” That is a completely rational thing to say. If you try an app and it is good enough most of the time, you would never pay for an app.

On the flip side of the coin, you hear developers saying, “It is cheeper than a cup of coffee. You buy coffee and don’t think about it.” The real question they are asking is, “why do you value software the way you do?”. There are a couple reasons why developers think software is worth more than non developers. Obviously, they built it, so they know how much effort it takes and they value their time more than customers do. The other reason is a developer’s definition of good enough is going to be much higher than a customer’s definition. A typical developer sees ads and only sees the wasted screen space, bandwith, battery and user attention. A typical user just ignores the ads and never thinks about it again.

Apps have to be at least 1 of 3 things to make any money:

  • Very good
  • Very lucky
  • Justifiable for work

Even better they are more 2 of those or more.

Based on all of this, I have sadly come to the conclusion that building an app and selling it is not a very good use of my time. The question becomes, what is a better use of my time?

Don't Panic

Feb 05, 2015

In a recent AMA, Bill Gates was asked:

Mr Gates, Do you feel that we are facing an overpopulation problem on this planet? If so, what do you think needs to be done about it?

He gave a short answer, stating that as people become more healthy they choose to have fewer children. To back this up he referred to the work of Hans Rosling from Gapminder. At times I found his style a bit odd. That didn’t detract from how amazing it was at tying together so many topics that seem big and hard to fix.

Over population, extreme poverty, birth rate, infant mortality, climate change, education, access to healthcare, and ignorance of the west are all interconnected in this video. The basic gist is that since birth rates are falling the population will begin growing much more slowly in the near future. He outlines a number of reasons why birth rates are falling like education, lower infant mortality rates and a general cultural shift in poor countries.

I am not sure about everything being as cut and dry as he makes it. You really should watch the whole video and judge for yourself.

DON'T PANIC — Hans Rosling showing the facts about population from Gapminder on Vimeo.

Be Promiscuous

Aug 20, 2014

A friend of mine decided it was time to move on from his current long-term job. We were chatting about what he was going to do next. He wasn’t exactly asking me for advice, but I was giving it to him anyway :) It felt weird because he has done many more things than I have, worked for huge companies, small companies, consulted, etc. Still, it seemed he was unsure of what he should do next. The best advice I could come up with was “Be Promiscuous.”

When you don’t know what you want in life, the best thing to do is try a bunch of things quickly. In our society, promiscuity gets a bad rap. I think, as time goes on the stigma associated with promiscuity decreases. Our grandparents picked a company and stuck with them. Back then, you didn’t experiment - you were a company man and, as such, you were rewarded for that loyalty.

Times change. In most cases you are rewarded for jumping between companies. Constantly proving yourself over and over. By far the best way to get a raise or more responsibility is to find a new job. When an employer sees someone that has been successful again and again, their confidence increases. Crazily, they don’t reward the people who stick with them long term. I assume they do a calculation in their head about how likely a person is to leave vs how much it would cost to insure the person stays. When employers think in aggregate about talent retention, they tend to undervalue individuals. Everyone understands that people come and go. Employers know that getting 12 months of a successful engineer’s time is better than getting 4 years from someone who can merely keep their job.

Similar to life, the best time in a career to experiment is when you are younger. You need to figure out what you actually want to do with your life. Do you crave solving hard problems? Or is making people’s lives easier more important to you? Maybe an easy job, so you can take care of your family is best for you. You should experiment with the tools you use and the domains you work in. You should try anything you think you might like, and only change when you are bored, unhappy or generally feel stuck. When you make a change, at least have a vague understanding of how the change helps you accomplish one of your goals. If your change isn’t working for you, start over at square one.

Even if you are not young you should feel free to experiment with your career. It can seem like there is risk in switching jobs, but think how easy it is to get a new job with the skills you already know. Now consider how much easier it will be to find a job with the new skills you will learn. There is a saying, “the best time to plant a tree is 20 years ago, but the second to best time to plant one is now.”

I used to worry that switching jobs so often would reflect poorly on me in interviews. However, no one has ever asked me why I switched jobs so often, but it might be because I usually stay at least a year in a position. That is how long it takes me to get bored. Sometimes I stayed longer, if I was interested. Ultimately as I advance in my career, I value the feeling of change above all. Contracting was the perfect fit for that, you get to work with a team for awhile, learn from them, and when they don’t need you anymore you get to move on; no hard feelings.

I may end up taking a full time job again some day. I may end up starting a company and cursing all my employees who leave with their “institutional knowledge.” But ultimately doing my best work depends on me being motivated and happy. Until then, promiscuity awaits.

Things Are Better

May 29, 2014

In 2007 I was working at Taxi Magic. The iPhone had been announced, but it wasn’t clear how big it would be. There was no Appstore in sight. Our goal was to let corporate users book, track and expense taxis from their smartphones. This was an ambitious goal that had a lot of moving pieces. We had to integrate with taxi dispatch systems, build a smartphone application and integrate with expense management companies. It was a lot for a small start up to take on. For most of the first 2 years there were 6ish of us on the engineering team.

I remember the integrations being annoying, but never difficult. Integrations are time consuming, the most difficult part is convincing a 3rd party that you are something they should spend time on. All that pales in comparison to the hell that was getting an app onto a person’s BlackBerry.

As you know the smartphone king in the United States those days was BlackBerry (RIP). You could write apps for Blackberry, but pre Appstore you not only had to advertise but also help people install it. Our sign up process was hilarious, in a sad way. We had a wizard that would walk you through, signing up, configuring a payment method, deciding how you wanted to pay, installing the application and finally testing that application worked.

Here is something you probably didn’t know about Blackberry, some of the models didn’t come configured with the ability to hit https endpoints. Yes you read that correctly you couldn’t use secure endpoints without configuring your APN on a few of the carriers (I think cingular for sure). So you had to add a step to the wizard, “What carrier do you have?” I would not have gone through the wizard if I were a user, it was horrible.

But the funniest step of the whole configuration came after you went through that shitshow. Some models of Blackberries had to be rebooted to have their new settings take effect. And worse some of them didn’t take effect unless you pulled the whole battery out. So, add a step to the wizard, “remove your battery.” I remember we had one customer who called and wanted to use our system, but he didn’t want to reboot his device. When we asked him why he couldn’t reboot his device he said, “I don’t want to lose my Brick Breaker game.” Apparently he could pause his game of Brick Breaker and resume it. Obviously losing his score was a deal breaker. Tough to reason with that.

I say all this not just to walk down memory lane. Sometimes, I think that all the horrible restrictions in the Appstore are holding us back from advancing computing to the next level. But I don’t want to lose sight of how difficult it was for technical and nontechnical people to install 3rd party software on their Smartphones. We are now around 6 years from the announcement of the app store and the painful memories of getting software onto someone’s phone have slowly faded away. In those 6 years we went from a 10 step wizard to a a single link; that is progress. Unfortunately, in those 6 years not much has changed, probably because the current system is working fine for the user. In 6 years I hope, we will all be talking about how terrible today’s system was and be gleeful that the goals of the user, developer and platform provider are aligned. But in reality, I will probably just rewrite this article and increment all the numbers by 6 years ;)

Time for Xcode to Grow Up

Apr 17, 2014

It is fair to say that Xcode has gotten immeasurably better since the early times of Xcode 4. Long forgotten are the days of selecting a different /Developer directory to install Xcode betas. Soon forgotten will be the days of random crashes. Everything seems reasonably snappy, you don’t have to wait 15 seconds if you hit CMD-T on accident (or on purpose).

The whole system seems much more predictable. That said things are not perfect. You still don’t want to press a button that says Fix when it comes to provisioning, because (spoiler alert) it doesn’t fix your problem. Sometimes restarting Xcode fixes random things, sometimes you have to sweet talk Xcode* into compliance.

Since Xcode has stabilized so much people are tentatively optimistic about its future. We are currently in a Renaissance of Xcode plugins. Unfortunately, the best plugins have yet to be written. Companies are hesitant to build plugins because there is no official support from Apple. Every new version of Xcode is likely to break your plugin. As a company it is difficult to do capacity planning if there is no official api or support from your platform owner.

A formalized system benefits apple in a few (mostly theoretical) ways:

  • If developers are able to be more productive, they can spend extra time creating more amazing things for the platform.
  • The more comfortable developers are using a tool, the less they want to switch. Creating voluntary vendor lock in for mid to junior developers.
  • If a company had an official Xcode plugin you can be sure they would put an Xcode logo on their website, subtly extending apple’s brand.

But I think an official plugin api for Xcode is highly unlikely. Apple has a track record of supporting people who make apps, but not people who support app makers. Helping tool makers doesn’t make Apple more money, in the short. Not having to support an official plugin architecture allows them to iterate more quickly. If I were running Apple I might make the same choice. But I still pine for a streamlined workflow that supported plugins could partially provide.

* this doesn’t work, I’ve tried

Time for a change

Dec 14, 2013

I have been in the DC area for 9 years. It is the longest I have lived anywhere in my adult life. I can’t believe it has been that long.

DC has been amazing for me. I have made lifelong friendships. I was one of the first employees at Taxi Magic. I started my own business. I changed my career direction multiple times for the better. I attended the 2008 Obama inauguration when people were excited. I was able to do things I never imagined being able to do.

I say all that because when people relocate, I think there is a tendency to think they were unhappy. I was not unhappy. That said DC is a place that is difficult to call “home.” It is big and people are constantly leaving (now I am one of them). I am mostly looking for a place that is a bit smaller with a bunch of new adventures.

Starting in March, I am going to be calling Portland, OR home. I have been there on multiple occasions and have loved it. I am looking forward to exploring the west coast for a while. If there is someone you think I should meet, please do an intro I would like to have a few more friends when I get there.

Some things are not changing though. I am still going to be running 2 limes, my consulting company. I am still going to be pursuing my own commercial and open source products. My day to day will probably not be changed, which is good since I am happy.

Keep being awesome and call me up if you are going to visit Portland.


Dec 14, 2013

A childhood dream

Like many teenagers, I loved video games. When it was time to decide what I was going to do with my life, I thought it might be fun to make video games for people. So, I studied software, I built things, and somewhere along the way I stopped playing all but the most casual video games. This year when Apple announced SpriteKit, a 1st class iOS game framework, I decided to follow through on that dream.

The game

Linkage 1
Linkage 2

Linkage is the type of game I play now. Super easy to start playing, the longer you play the better you get. It feels like if you play longer you will get better at it. There is some strategy to it and you can get a better score by thinking. Most importantly, you can’t buy your way to a better score.

The general game play is inspired by Bejeweled. You swap and rotate tiles a make connections. There are two game modes. One is for people who like to go faster and be pressured. The other is for people who like to think. I think they are both fun. I would be honored if you would play it and let me know what you think. It is free so have fun.