Putting the U in GraphQL

GraphQL has been on my list of technologies to learn for a few months now, and last week I came across Majid Jabrayilov's post, feeling pretty excited to tackle the subject. The post was very good, but it didn't answer the one question I've had as I've gone through numerous exercises to understand GraphQL, how do I make GraphQL requests without a library? Continue Reading →

App Store [P]review

Apple's been in the news quite a bit lately over concerns that many apps on the App Store are little more than scams. Some of these apps aren't even functional, they don't provide anything more than a screen with no functionality, only a button to purchase an indefinite weekly subscription. Many developers and consumers are confused or surprised that Apple isn't catching these scams, given Apple has a process for App Review which every app must go through, and while I'm not surprised given the breadth of the problem, I find myself thinking it's very problematic for the digital economy and consumer confidence in buying services through what once was considered a safe place. Continue Reading →

Empower Apps Podcast - Large Scale Teams

I recorded an episode of the Empower Apps podcast, where Leo Dion and I discussed a wide range of topics. We spoke about everything from how we scale app development to thousands of people and millions of users at Twitter, communication, documentation, people working together, and a lot about and the complexity of holding moral frameworks at a global level. Continue Reading →

Context-Bound Types

I've been thinking about privacy lately. No, not online privacy, but about how APIs can balance exposing the right amount of implementation details without revealing too much.

I'll walk through a task I find myself doing often when building iOS apps, creating a view controller with header view, and four different ways to go about it. Continue Reading →

Building Better Views (Part I)

As iOS developers, a lot of our work involves taking models from a server, and transforming them to be displayed on an iPhone or iPad. This sounds like a job for some declarative architecture. 🤔 Continue Reading →

How To Keep Friends And Influence People Or Something

Maybe the real friends were the friends we made along the way.

I quit using Facebook years ago, and only follow ~70 people on Twitter, which leads some to assume that I don’t find keeping in touch with people to be a top priority, but that couldn’t be further from the truth. My todo list is where I hold my priorities, and my friends and family are the biggest priorities in my life, so that’s where I turn to for making sure I’m staying close to them.

At first blush you may think that a todo list sounds incredibly impersonal, it’s actually a deep expression of caring. When people ask for more details, I receive pretty much universally positive feedback, so now I’ll share it with you. Continue Reading →

Pushing The Boundaries of Technology

Throughout history technology has aided humanity. Not the other way around. From the invention of fire, to the creation of the wheel, the printing press, and the personal computer, technology has acted as a multiplier for what humans can do. Technology doesn’t exist in a vacuum, and it won’t stand as an industry by itself. We — as software developers — should always keep this in mind when creating technology. Continue Reading →

What I Read in 2018

When 2018 started I set out to read 10 books this year. Much to my surprise I ended up reading 25 books in 2018. The most important reason I was able to get through 15 more books than I'd expected was that when the year started I set a goal for myself to read at least 15 minutes every day. I ended up accomplishing that 328 times over 2018, meaning 9 out of every 10 days I made significant progress on a book. I was able to find time by replacing a couple of podcasts I'd listened to with time for reading, a strategy that netted me about 1-2 hours every week.

Without further ado, the books I read this year are below in reverse chronological order, newest at the top.  Continue Reading →

Questioning Vulnerability

As a mentor, I give a lot of advice. I give a lot of advice that comes from a breadth of experience. But my experience is rooted in the present, to remember how I felt earlier is an exercise in empathizing with a past version of myself. And memories are a fickle thing. In fact, there are many biases that affect how you remember an event, so it’s possible that my memories aren’t even an accurate reflection of the reality that I lived.

One piece of advice I give often to newer (and more experienced) developers is to ask questions. Ask a lot of questions. Ask questions until you’re sick of asking questions, and you suspect the other person is sick of hearing them. It’s going to take a while until you feel smart, or you feel good about your knowledge, but keep pushing through and putting yourself out there until you start to feel it. Continue Reading →