I thought we were hackers.

What happened to us?

A decade ago, we had this manifesto, how we were the creative ones who could bend and melt reality, with our mind alone. That we could take any unsolvable problem, and build a thousand creative solutions.

Now we’re the pawns in the game of building the best distraction machine. Some new mobile social photo location web cloud stack Rube Goldberg peons.

We’ve been given control, and this is the best we can come up with? Social video, sharing photos for events, finding the people around you?

I’ve been working with computers for fifteen years now. In that time I’ve see some amazing things happen, the most revolutionary of which was the smartphone.

In fact, I quit my job to pursue and develop an idea. I was so wrapped up in the concept and its execution, and all the little pieces of technology that I could stack together that I forgot to ask a fundamental question:

Does it have heart?

When I was younger, that was the most important of questions I’d ask myself before doing anything. Does this path have heart, does it lead to me growing and becoming a better person? Will “failure” still turn me into a fuller human being? Is this something I’d be okay with as my legacy on my death bed?

And I had to pause. Because if I’m honest with myself, building distracting software systems isn’t my life purpose. I don’t want that to be my dent in the world, some imaginary systems that reside in computers in warehouses to hypnotize a crowd of people with buttons and switches that stimulate their need for escape.

When I started computing, it was an opportunity to build a universe inside of the machine, to explore and build whatever was possible. We were hackers.

But now the smart phone is the consumption device, and we’re seeing it consume our attention and our focus. The mobile applications are always there, waiting, when we’ve got 10 seconds of space to fill with some sort of cognitive distraction. We’re really just building a better escape hatch, mindless television 2.0.

I don’t want to build things to distract humans. I want to build things which engage humans, which push them further.

When my sister turned 17, she got a DVD player installed in her car. It sat right above the stereo, and for safety it only turned on when the parking break was engaged. So my sister drove around in her new car with the parking break slightly engaged all the time.

Now that level of distraction is available everywhere, at any time. And it’s not like the distraction that was television, where you’d have to give hour long blocks away at a time. Instead, there’s 40 times to check your phone for 30 seconds throughout the day, and a complete loss of centeredness.

And us software developers are to blame. A million layers of the stack that are just held together by stressed out developers who can’t sleep because they’re waiting for 3 AM panic phone calls. We’re waiting for the big buyout and the big hit before we get out. We’ll take the pain and the stress now, and become giants later.

Why?

If we’re honest, it’s mostly the pursuit of money that drives this, and behind that the secret fear that we’re not good enough.

If you’re born in the United States, there’s an unspoken rule that drives everything. If you’re male, you’re not a complete human being until you’ve made enough money to tell everyone to fuck off. You can’t get a beautiful partner unless you’ve got a fast car and a big house. It sounds ridiculous stated overtly, but there are millions of people quietly buying into this concept every day.

You can see it in our mating patterns, going out to bars and seeing the rich old men buying the young girls all the drinks. All the pretty girls seem to be with the men who’ve got the money and the visual trappings of success.

And so we have young kids who believe that dialogue, who agree with the idea that they’re not worth it until after they’ve built some sort of smart machine out of software that captures capital and eyeballs. That only then they’ll be worth it, only then they’ll be entitled to enjoy life, and only then will women be hopelessly attracted to them.

But it’s a trap. Real women aren’t idiots, they’re not things you can buy with achievements and bank account digits. They’re just people who are worried about a lot of things, including the possibility of not being good enough, just like you.

So just build if you feel like building. But don’t build because you think you’re going to gain something later on, if you’re clever enough about the process. Because there’s really nothing real to gain. And because luck mostly determines “success”.

I know right now it seems like a flashy car and a big house are incredible things that will change your life, but there is this funny thing about human beings: we can get used to and bored with anything. Soon enough you’ll just be used to and bored with the great big success you imagined as you were with your life you ran from before.

Every day for the rest of your life, you’ll wake up and ask yourself, “What should I do today?” And there will always be people who want to give you some hints, there will always be just  a little bit more information you should digest before starting your grand plans, there will always be another excuse for why you can’t enjoy things “just yet”. There’s always more work to be done, and there’s always something more you can feel guilty about.

Just be honest with yourself and admit that you’re good enough already. You don’t need to learn fifteen new programming languages while mastering the four you use already, holding down a job and doing your startup on the side. You don’t need to sit in the chair for fifteen hour days thinking about how to glue the world’s brains together.

Just be yourself, be honest with what you believe and who you are. Recognize that you are  a hacker, and you have infinite possibility at your feet.

Do something more.

Murder Your Shortcuts

I never really understood cooking properly until I learned about what the French call “mise en place”. It means literally, “putting in place”. It’s the process of gathering everything for cooking before the actual cooking happens.

With mise en place, the recipes to be made are reviewed, and ingredients are measured out. Vegetables, spices, and meats are washed and chopped, arranged to be used. The equipment to be used is heated, and the chef prepares for the process of cooking.

This process allows cooks to focus their minds on cooking once everything has been set. Everything comes out in logical steps, and cooking becomes merely the process of following the ingredients.

Curry Mise En Place

So why doesn’t mise en place happen with every meal cooked?

Because our minds think we’re smarter than that. They trick us into believing the process of preparing our ingredients and getting ready for proper work is a waste of energy. That we should instead just get on with the cooking, and forget about the ritual surrounding proper cooking.

These shortcut meals never end up working properly.  Inevitably, I’ve forgotten something in my process, and have an oh shit moment. Then I change things and realize the meal now needs saving. The process of trying to save the meal usually ends up ruining it.

Mise en place is really about something deeper, it’s about focusing on the process and slowing down. It’s a practical formula for introducing focus and quality in the preparation of food.

I’ve begun working towards a mise en place for my programming. A way to prepare myself for the process of producing code that functions, lasts, and does its job well. Work which stands with the absence of shortcuts. Work which just is quality.

Mise en Place for Programmers

The first change happens before I even sit down, or look at my computer. When I know I’m going to be coding, I put on my professional, coding outfit. This is khakis and a button down, with black socks and dress shoes.

It’s a signal to myself that serious work will be taking place shortly, and that my mind should begin to focus itself.

Next, I focus on my workspace. Before coding, I’ll completely clean off my coding area, until it’s immaculate, with just the things I’ll need for the coding session. Usually that’s a journal with a list of problems to tackle, a pen, and a mug of (decaf) coffee.

I’ll then go through my list, deciding which of the problems is most crucial for the goals I’ve set for the day. Once decided, I’m fully committed to finishing the problem before I get up again.

On my computer, an open Emacs window in fullscreen mode with org-mode in two windows to log my thought processes as I approach the problem. I enter the date into an org-mode window before I begin working, and then I open up a terminal and start up the virtualenv I’ll be working with. If I’m working with virtual machines, I boot them up.

I’ll also open up the documentation for what I’ll be working on.

When it’s time to work, the phone gets silenced, and I block off a chunk of time. The problem to be tackled must be done within the time frame, and running over time is not allowed.

As a reward for focused effort, I give myself time for a walk, and possibly a small snack.

In these patterns, I’m creating a ritual, a way for the process of coding and building something of quality to come through naturally. I want the world of my code surrounded in quality and focus.

If left alone, our minds begin to wander and look for shortcuts. We think we can get around the necessary work with just a little cheating. It can manifest as running a stop sign, leaving dirty dishes in the sink too long, or leaving an ugly hack in production code. Either way, the shortcuts end up biting us in the ass inevitably, and we wonder what we were thinking.

So make your bed and floss your teeth. Stop completely. Incorporate the process of quality into every aspect of your life. Your code will thank you.