The Dog Ate My Take Home Assignment

It has become quite common for companies interviewing engineers to give candidates take home tests. These consist of an interview problem (or problems) which they can work on in their free time. This gives the candidate the benefit of not being under pressure in a high leverage interview setting. This gives a company the benefit of seeing how a candidate works in a normal work environment.

I had one of these recently, and to say it could have gone better would be an understatement.  Continue Reading →

The Future Will Be Signed

Cryptography is becoming more important in our every day lives and there’s no way around it. Whether it’s the calls from governments to ban encryption, come up with “responsible encryption”, or to violate norms and laws, cryptography is playing a role in shaping our society. I’d like to approach the role of cryptography from the other perspective though, from the side of helping us prove facts about the world around us.

We are entering an era where technology empowers people to create artificial evidence for stories and narratives. While we can’t yet create facts, we’re approaching a point where artificial evidence looks very believable. Continue Reading →

Learning About Cryptocurrency

Cryptocurrency is all the rage these days. From Bitcoin to Ethereum to Ripple, to some silly sounding thing someone will come up with tomorrow, it's something people want to know about.

So you're looking to learn a little something about how these new technologies work? Well Benny (and anyone not named Benny), I don't have all the answers, but I do have two resources that people who are interested in the technical aspects should check out. Continue Reading →

Everyone Should Use Generics Except You

As I was on hour six of debugging how to read an object from the database, my brain suddenly noticed the slight difference in two lines of code. The compiler error had been off, too vague to help me realize that I was never hinting the correct type to the function. Generics had struck again. I cursed in the general direction of my cat (unintentionally), and moved on. There was nothing I could do but accept that we've all been there, and move on. Continue Reading →


Every day at a startup is an exercise in getting to tomorrow. Some days it’s easier, some days it’s harder, but if you don’t make it until tomorrow, there won’t be a next week, month, or year.

This is why building a long-term foundation is incredibly important.  Continue Reading →

Debugging shortcuts for UIKeyCommand

I recently re-discovered UIKeyCommand while listening to Caleb Davenport’s, podcast, Runtime. He’s also got a blog post which shows you exactly how simple it is to create UIKeyCommand shortcuts for your app.

After reading that, I decided that it would be neat to implement them across my app, so I could also start navigating around my UI with lightning speed while I’m debugging in the simulator. I quickly realized that by using Swift extensions, I could automatically get these behaviors for free throughout our entire app. Continue Reading →

WWDC 2016 — My Fantasy Edition

WWDC is right around the corner! This post isn’t intended to be a prediction, as much as what I hope unfolds.

As Betrand Serlet, a former Apple engineer discussed in this 90 second video clip, Apple often ships features iteratively. Projects start off private, only to be used internally, often times for a year or two. When they feel stable enough, Apple opens them up to 3rd party developers, and makes it an official API. Features that are deemed noteworthy and successful continue to build on, while others are simply forgotten.

The three technologies below have gone through this lifecycle the last few years, and I think they are ready to converge into a big way, changing how we use iOS every day. Continue Reading →