It is becoming popular, especially in American tech culture, to
encourage failure as a natural part of learning and a key to success.
Humans fail in many casual ways to learn basically anything, even basic
skills like walking.

Failure in software is often expected on a very minor level. Maybe I’ll
release this software and it will have a bug in it. Maybe I won’t get
that job at that big tech company I applied for.

The real failure in software is when all the work you have done falls
apart so badly, largely from your own mistakes, that you lose everything
you have spent years working for and have to beg for a place to sleep
with your tail between your legs barely able to afford the shirt on your
back.

It’s the kind of failure they joked about in engineering school when
discussing friends who were artists and musicians and maybe even dropped
out of school. We felt safe studying engineering, a profession so
obviously useful that surely we will all have jobs and be paid well.

We were wrong. Horribly wrong. If it wasn’t for software like Rails and
iOS and my fortune in having a skill to work with them, I would have
been unemployed indefinitely after college. Many of my friends spent
years living with their parents maybe working at the local grocery store or mall. They had engineering degrees from a serious school with
way better GPAs and qualifications than I did. The truth is everyone who
is working a job they enjoy and getting paid, a job they actually wanted
to work, is incredibly lucky.

I have spent most of my life reaching out further than I should, often a
breath away from failure. The day I received my rejection letter from
MIT, I locked myself in my room and didn’t sleep. I refused to get out
of bed in the morning, I just wanted to be left alone to cry. My mother
(a decently smaller person than me) literally dragged me out of bed and would have slapped me if necessary to get me to put on clothes and go to
school. She believed in me when I no longer did and refused to allow me
to quit. I had people like her who saw something in me and helped me to
continue and do the awesome things I have been able to do. Without them
I would be the failure I’m afraid of.

I was incredibly lucky to have a job before I graduated working on Rails
and iOS projects. I was incredibly lucky that I didn’t fall flat on my
face when I decided to leave that job with no plans and no savings. I
was lucky to get a well-paying job in NYC. I was lucky to be in a
position to even consider leaving that job to go to Amsterdam.

I had no plan when I got to Amsterdam, I just foolishly thought it would
magically work out. Turns out it didn’t work out completely. I neglected
important details like having any savings, paying off my college loans
(which are expensive because I failed to keep my scholarships), and the business development necessary to keep contract work coming. Now true
complete failure is entirely a possibility. Not just a failed feature or
a failed project. A failed, broken, person.

Fortunately for me, my lifetime of reaching further than I should has
left behind dear friends and family members who would accept that broken
shell of a man, desperate and hungry, back from Europe, and they would
make sure Blynken and I weren’t out on the street. Even in absolute
failure I am incredibly lucky to have these people.

This is what keeps me up at night.