“Real artists ship.” Steve Jobs said that to motivate the Macintosh team in 1983. It’s a statement that reverberates in my mind and absolutely drives me crazy sometimes. Why? Because I have tons of code that I haven’t shipped. Hell, some of my best code hasn’t shipped.

At some point, I lost my nerve. I couldn’t finish the projects I started. I couldn’t make a small change to a UI because it would inevitably spiral out into something that would require a rewrite of the entire app. I let new components I created lie unused. I let the revisions and extensions I had written for my apps linger and die on the vine. I couldn’t integrate the pieces into a coherent whole.

I let myself become too tired or too distracted to focus on the problems in front of me. I couldn’t resolve the problems I had created for myself. I couldn’t think straight, and didn’t trust that I could do it anymore.

I realize now that I was bumping into my limits as a developer, which is scary and frustrating. I opted to run away from these limits rather than to either work past them or to accept them. I am trying to do better and not get bogged down in all the feelings I have developed about this over the past couple years.

In the past I have failed. But I am trying to work through it now, to push past the fear, to move from “I can’t do this” to “I can do this,” and to get through the hard parts of getting my best code shipped. I can do it this time, and I won’t give up. All it takes is will, grit, and patience.