You don’t have to go far to see work from Mike Lee, in fact there’s a decent chance you’ve got some of his work already on your devices. Mike (or as he likes to call himself, ‘the world’s toughest programmer’) has been involved with the development of Delicious Library, the official Obama ’08 application and even the Apple mobile store app.
This man knows his software and rather than continuing along this very successful path, he decided it was time to give back to the developer community and he created Appsterdam – a community built for creating applications. Read on to see Mike’s story and how it all started for him.
So Mike, thanks for being with us today. Can you tell us a bit about your background?
It’s a long story, but I’ll try to keep it short. I took the long road to engineering. I studied journalism at the University of Hawaii before running out of money and dropping out, and didn’t start programming until much later, when I was working for Alaska Airlines in Seattle. It was a very dangerous job. I’d been injured several times, and a couple of my peers had actually died at work. I didn’t want to be next, so I took a piece of hard advice someone had once given me: “it’s called skilled labor; look into it.”
I quit flight school and sold my equipment to buy a used PowerBook so I could learn to code in the downtime between flights. I ended up getting together with a coworker who was teaching himself design to create an online training system for the airline. Just that test app represented an annual savings to the airline of $800K a year, so they gave us jobs writing training software, later branching into anti-terrorism software.
Falling For Mac Apps
That was my first white collar job, which brought with it a new set of problems. I had to create documents to justify and explain my work. Soon I became as known for the documents as for the work, with people asking for my secrets to taming apps like Powerpoint and Visio. The secret was, I didn’t know anything about those apps. I was just using Mac apps like Keynote and OmniGraffle instead.
The secret, as they say, was in the sauce. I became obsessed with those apps. I wanted my own apps to be empowering like them, but in order to make that happen I had to get out of the enterprise. When industrywide cost-cutting came around to a chance to take early retirement, I left the company and struck out of my own. I went to my first WWDC in 2005 for $100. I used flight benefits retained from the airline and got a scholarship ticket from Apple. The $100 was a week’s stay in a sketchy hotel.
That’s where I met Wil Shipley, founder of Omni and Delicious Monster. The timing was such that his crew left to go to Apple, so together with Lucas Newman, we became the new crew. For my part, that required shedding my material possessions, moving into a tiny room in Wil’s basement, and working for free for the first year. I ended up serving as Wil Shipley’s protege for 3 years, earning an Apple Design Award for Delicious Library 2 in the process.
Writing Apps For The iPhone
When the iPhone came out I knew I wanted to write apps for it. I ended up moving to Silicon Valley to work with some guys who’d bought all the good Jailbreak apps. That project became Tapulous, which produced a bunch of great stuff, the most famous of which was Tap Tap Revenge, the first game on the App Store to have a million downloads, and the only app I’ve worked on that’s appeared on stage with Steve Jobs.
After Tapulous I started another company called United Lemur. You’ve probably never heard of it, as we weren’t around for long, but we did contribute to a famous app, Obama ’08. Then the economy collapsed, I lost the retirement funds that had backed the company, and we all had to get jobs. I went to Apple, first working in Worldwide Developer Relations, then working on the Apple Store app project.
Wow thats pretty intense! Now tell us about your current project, Appsterdam
Nearly two years ago, I left Apple to take a year-long trip around the world, speaking at conferences and staying with colleagues. My original intention was to figure out where I wanted to live and what I wanted to work on. The conclusion I came to was that Amsterdam was the best place in the world to live, a bit like Epcot Center meets Burning Man, a great place for adult activities like writing code and raising children.
The big realization, though, was that I was not the only one looking for a home. A lot of the people I was talking to were interested in moving, but it was more than that. It was like the entire industry was looking for a home. I realized we needed a homeland, a center of gravity, the way Hollywood is for movies, the way Broadway is for musicals. That was the idea that led to Appsterdam.
What started as a table of local App Makers became an organized volunteer force. Over the “Summer of Appsterdam” we used a series of initiatives to organize the community into the world’s most advanced infrastructure for App Makers, by App Makers, making Amsterdam the best city in the world to be an App Maker. We have lectures and meetups every week, and family gatherings and workshops every month. There’s something for everyone regardless of schedule, platform, or skill level. Appsterdam events are a way for engineers and designers to meet the business, marketing, and legal experts they need to turn great apps into successful companies.
Of course the Appsterdam movement has since grown larger than just the homeland project. Now we’re a non-profit meta-organization representing the interests of App Makers worldwide. We like to think of ourselves as gardeners of the ecosystem. Our operations go far beyond the city of Amsterdam.
For example, the Texas-based Appsterdam Legal Foundation’s Operation Anthill is providing information and legal representation to App Makers as we lead the fight against patent extortion. A number of Appsterdammers have returned home to open Appsterdam embassies in their home towns. Soon you won’t have to go far to experience the spirit of Amsterdam, a city known for centuries as a meeting place, with a name synonymous with tolerance, where all are welcome to bring their best to share.
What is it you think defines great software and why do so few achieve it?
Great software is a great product, and great products surprise and delight their users. I always think back on using Keynote and OmniGraffle versus their Windows equivalents. I didn’t know what I was doing, but the software made me look like I did. It was easier to use, and it made me look amazing.
My whole career has been dedicated to figuring out why. What I discovered is that it’s not about the size of the team or the amount of time taken. Indeed the one constant of all engineering projects is there’s never enough time and never enough people, yet adding either is unlikely to make things better.
Instead, what it comes down to is a question of discipline and humility. Most people either assume that what they have built is great, or they don’t care. That might sounds dismissive, but I think we all find ourselves in one of those situations. Even the most dedicated engineer, faced with budget restrictions and a deadline, can convince themselves something is ready to ship when it isn’t. Many of us even delude ourselves into thinking that making something great is a step that comes after getting it out the door.
The Steve Jobs Way
I later read Steve Jobs describing the process that I had discovered. When you are trying to solve a problem, and what is an app but the solution to a problem, your first attempt tends to be naïve—simple, but ineffective. After working through all the edge cases, you will end up with a solution that is effective, but no longer simple. This is the point when most people make the decision to ship, because the alternative—going back to the drawing board—seems insane.
In fact, it is going back to the drawing board for the “second 90%” that is the secret to achieving a solution that is elegant—both simple and effective. This is still a radical idea in software, but other industries have long since figured this out. Any writer knows finishing the writing and finishing the book are two different things. The edits and rewrites take as long as the writing, if not longer. Yet no self-respecting writer would ship their rough draft.
What many in the software industry call “churn” is just a normal part of the space between getting something out of your head and getting something ono the shelf. It is the willingness to throw away code, to invalidate work, to make your own products obsolete, that separates the good from the great. With so much short-term sacrifice in favor of long-term gain, it’s no wonder the people who produce great products always seem to run afoul of politics.
What does a typical day look like for you? Walk us through your usual schedule and activities.
I don’t really have typical days. I like leading a life of adventure, which means not falling into routines. That being said, there are some places you are likely to find me. I spend a lot of time in front of my computer, usually answering email or writing. I haven’t been writing much code lately. I write project proposals, blog entries, copy, and am working on some books, writing some of my stories down. I was a writer long before I became an engineer, and I’d like to spend this year writing books.
Of course much of my time is taken up with Appsterdam activities. We’ve set things up so I don’t have much to do with the day to day operations, which means I spend a lot of time in meetings, mostly with our COO or the other board members. Wednesday in particular is Appsterdam day, with a Weekly Wednesday Lunchtime Lecture during the day, and “Meeten en Drinken” at night. On the weekends there’s usually a family gathering or workshop that needs my attention, and on a lot of days I am attending some other non-Appsterdam events in the city or elsewhere. My mayoral presence is in high demand.
I am also in demand as a speaker, so I spend a lot of time outside the Netherlands at conferences around the world. I spent a year doing nothing but conferences, but have since tried to curtail my appearances by adding a small speaking fee and limiting my appearances to keynotes. If I also did workshops and track sessions I would literally do nothing else. With the number of conferences still increasing, we’ve started the Appsterdam Speaker Bureau to train people to fill those slots.
When I’m not in front of my computer or at an event, I’m usually out walking through the city. Amsterdam is such a wonderful city to walk through. It’s flat and beautiful and dense, so I can walk through familiar streets and still be greeted with unfamiliar sights. I usually walk as I work to clear my head when I’m stuck on a hard problem or suffering from writer’s block. Many of my staff meetings occur on foot. In the off-times and quiet hours, I like to spend time in close proximity to my partner, but since she also works on Appsterdam stuff, we often talk about work, even while cuddled up on the couch or something. The idea of work-life separation seems artificial to me, like something that was invented to make it OK to spend half your waking life doing things you don’t like. I work all the time, but I love my work.
As a developer, do you feel you need to be always running the latest hardware? What’s your current setup like?
Quite the opposite. As a developer, I feel like I have an obligation to understand the average user. They are unlikely to have the latest hardware, and even less likely to have a bunch of power user stuff. That means I miss out on things like Quicksilver. Wil Shipley taught me to program on the slowest hardware that will run the current system. If you can make your software great on that rig, it will really fly on new stuff.
To demonstrate that point, I am only on my third laptop since I started programming.
My trusty 15″ 1st gen Powerbook, named “Eien” (Japanese for “eternity”), lasted me for a while into Delicious Monster, when I won a coding contest that earned me the rights to the Intel test rig, a 17″ first gen Intel Core 2 Duo machine. It came with a glossy screen, which I bitched about at the time. Shipley bitches about me bitching about it to this day. I called that machine “Sex Blimp,” from the Snake n’ Bacon comics where people were always shouting “Damn you , Sex Blimp!” We were pushing the limits of the Leopard beta with Delicious Library 2, and I was doing a lot of cursing in the general direction of my computer.
Wil was kind enough to let me keep that machine when I left, and it was my machine all through Tapulous and United Lemur. I kept it through Apple, sharing the load with work-issued machines. It died the summer I left after drinking a cup of coffee. I have lost more hardware that way. At the time I was working on a project for a friend’s company for very little money. Basically, he was taking me to my first Burning Man, and if I was going to trust him with my life in the desert, we were going to have to have the bond of brotherhood only working together can bring.
When I destroyed my laptop, he bought me a nice 17″ i7 with four cores and a matte screen—with his own money! That’s the kind of friend you keep, and I’ve kept the machine as well. I named it “Highwind,” after the airship in Final Fantasy 7, since I was planning on prancing around the world dressed like an airship captain, which I did. That’s the machine I use to this day.
I don’t use external monitors, relying only on my laptop screen. That way I never get used to the luxury of having all that room. Instead, my laptop is my whole workstation, which means I can work anywhere, and I do.
As someone who’s clearly no freshman to the world of development, what would be your suggestions to people looking to enter this realm?
Your best weapons against your own ignorance are your colleagues. If you live in a city of any size, there’s probably some group of like-minded nerds getting together at least once a month. You should join that group and get to know those people. They are cool people, and you will make lasting friendships that make a positive difference in your career.
When you go to a technical conference, the sessions are only there to justify the tax write-off. The real action is after the show when people go out to drink and get to know each other. Jump in there. Make friends. It’s called networking, and it’s good for you. If there’s some famous programmer you admire, don’t be afraid to approach them. Just keep a few things in mind. When you introduce yourself to someone then stand there staring at them, you make them feel obligated to entertain you, which they will try to extricate themselves from as soon as possible. Chances are, there’s a group of people there and there’s a conversation going on. Join that conversation. Take a deep breath and be cool. Your heroes are people too, just like you. Just be yourself and you’ll be fine.
When in social situations, resist the urge to be pretentious. Don’t pretend to know things you don’t, or that you are more than you are, or that what you are is any kind of big deal. People who are doing this right are willing, nay eager, to teach people new things. It’s so much better to just embrace your ignorance and take the chance to learn something. That’s an attitude that will serve you well in general. This stuff is hard, and to be any good at it, you’re going to have to spend your lifetime learning. If you’re not enthralled by the prospect, you’re not cut out for this stuff.
Do you have any predictions or hopes for the future when it comes to both software and hardware?
I have one major prediction, which is that we’re heading to a world of nanotechnology where we are engineering at the molecular level. At that point, there will no longer be such things as hardware and software, because they will be the same thing.
The important realization is that this convergence is already happening, and has been for a long time. Software represents configurability, the ability of a machine to change to suit different purposes. Computers are universal machines, tools capable of being reprogrammed into different tools, like a hammer that magically turns into a screwdriver. Something like the iPad then is not so much an advanced computer as it is a primitive colony. The apps we write transform that hardware into a book, or a piano, or a relaxing koi pond. Skeuomorphism might be a dirty word to some people, but that’s where we’re going.
That’s why Apple’s software has become increasingly extravagant even as their hardware becomes more minimalist. The iPad is not about being an iPad, it’s about being whatever your app wants it to be. The future of hardware is software. We talk a lot about changing the world and making the world a better place and people make fun of us for that. But when you look at how many tons of paper and plastic iTunes and iBooks have eliminated from our lives, you see the real power in what we’re doing here.
That’s the little stuff. I spend a lot of time thinking about big stuff as well. Our minds are the ultimate software, and they’re trapped in this rather clunky, unreliable hardware. Just think of the freedom, the power we could unlock, if that weren’t so. We’re so tantalisingly close to the Singularity. If the more dismal models of the Earth and our effects on it are correct, the race to escape our bodies may become more than an academic exercise. Let’s hope society gets its act together by then.
Thanks Mike for giving up your valuable time, it is a truly inspiring tale and great to have an insight into a mind of someone so experienced. If you want to hear more of Mike you can check out his blog or follow him on twitter. I wish you the best of luck with Appsterdam Mike, we are all sure it will do wonders for the development community.