Home ➲ code & iphone & mac ➲ mini Interview with Engineer Mike Lee
MacHappens . Mike Lee
1. How do you tackle a deadline?
I work. Deadlines are just the motivation I need to sit down and buckle in until the work is done.
Leading a team is a different matter. Those projects are larger, and I’ve learned the hard way buckling in is not my best move.
My strategy as an engineering manager is to ensure my team has what they need to get their work done. That can entail anything from provisioning food and caffeine, to coordinating between teammates.
Then I just step back and make work happen. If you hire good people, the hard part is leaving them alone to do what they do, while keeping everyone on track and tuned into a common vision.
2. Give us a brief breakdown of your workflow on a given project.
Each project starts with an idea, which is then fleshed out depending on the skills of the inventor. Some people draw wireframes, or create mockups in their application of choice. I tend to express my ideas by coding up a quick prototype.
It’s important to have the idea expressed by its creator before bringing other people on board. If you want to sculpt a lemur, all you have to do is see the lemur in a block of marble, and chip away everything else. If a project is going to be successful, everyone on the team has to see the same lemur.
The next step is building the team. This is the hardest part of the entire process, because the overall quality of the team will determine the quality of the application. At the very least, you need an engineer to build the application, and an artist to make it look good.
However, there are a lot more than two roles for these two people to fill. If the project warrants it, it’s worth bringing on experts to assume each of those roles. It also lets you parallelize the workflow to get more done in less time, and depends less on each individual.
The project is then broken down into a list of tasks and distributed to each team member. As each task is accomplished, the application begins to take form. Time projected become time spent, and tasks are adjusted accordingly.
Meanwhile, we’ll start showing off builds of the application to other developers, people at Apple, and sometimes trusted users. Their feedback is reflected in the task list. It’s not unusual for an application to undergo major revisions.
At a certain point, the application is about 80% done and the focus will shift from building to shipping. Alpha testing ramps up and the task list fills with bugs. A deadline is given for feature freeze, after which instead of looking for features to add, we’re looking for features to cut.
At beta deadline, any feature with unresolved bugs is cut. The beta testers are not there to point out bugs we already know about. They’re there to find bugs in software we believe to be bug-free.
As bugs are reported, they’re fixed, and new releases are submitted to testers. When the torrent of bugs becomes a trickle, betas become release candidates, and any bugs that aren’t show-stoppers are punted to point-one. And then, by gods, we ship.
Shipping is a process in and of itself. On App Store there’s a whole approval process, which takes up to a week. The nice thing about this is it gives the teams a chance to sleep before the public finds the inevitable stupid bug that has to be fixed right away in the dreaded point-oh-one.
If the reviews are good, the team pops the champagne and its members start shopping around for bigger, better projects. If the reviews are bad, the team quietly disperses and its members start pondering career change.
3. Your favorite OS and why?
I installed Mac OS X 10.0 on my iMac and never looked back. I have a lot of work to do, and I don’t like having to wrestle with my tools. Mac OS X is the only operating system that gets human interaction. That’s why the Mac has spawned an entire ecosystem of human-friendly apps which I found so refreshing, I quit my job and moved into Wil Shipley’s basement to be a part of it.
4. What applications do you use primarily to create your work?
When I’m building an application, I use Xcode and its toolbox. I write Objective-C in the Xcode editor, build my interfaces with Interface Builder, debug my projects in Xcode, and optimize my code with Shark.
When I’m writing, I use BBEdit. It’s the application I switched to Mac for, and I still use it to this day. It does one thing amazingly well, and that one thing is words. It’s the closest thing to pouring my brain directly into text.
5. What hardware do you use primarily to create your work?
I do everything on my laptop, currently a 17″ MacBook Pro. I like having the same monitor and the same keyboard no matter where I am. It works out, because I don’t like having a lot of windows on the screen distracting me, and I have a very compact coding style.
6. Your thoughts on resolution independence?
The increasing pixel density of monitors is like the increasing temperature of the earth’s oceans. There’s no sense trying to wish it away. Resolution independence is inevitable. That doesn’t mean it’s not a pain in the ass, but change always is.
7. How do you contribute/share with your community?
Most of what I do is just making myself available. People come to me with their problems, and I help them find solutions. Maybe that means writing some code, or giving feedback. Often it just means pointing someone in the right direction. I meet a lot of people, and I make a lot of introductions.
That also means making myself available for interviews and speaking engagements. I’m a big booster for the indie community. It sounds silly, but if somebody’s going to be spouting off of some subject in the media, it might as well be someone with indie values.
8. Who would you like to work/collaborate with?
I have a long list of engineering celebrities I’d love to work with, but it’s hardly an exclusive set. I love working with people who love their work. Talent is awesome, and experience is great, but if you don’t have the love, you don’t have anything.
9. When did you justify to yourself that you could make a living off what you do?
I don’t know that there was ever an epiphany per se. I just worked hard and made what money I could. It’s never been about getting rich so much as getting by. I tend to pick projects I like over projects that make money, but the bills get paid. In a way, it’s very tenuous, but I don’t think of it that way. I’m just enjoying the ride.
10. Your favorite creation?
I was on the team that built the official Obama iPhone app. I take a lot of pride in what we accomplished with that project. It was covered by mainstream media worldwide, and is frequently pointed to as an example of the campaign’s technical revolution. When Obama won the White House, it was like shipping the ultimate project.
I served as a delegate in the primaries, contributed money to the campaign, and bought a lot of copies of Obama’s books for skeptical friends. On election day, I was in Las Vegas with some friends. We drove to Nevada to help get people out to vote.
The system they developed was ten times better than anything prior, but I could already see how to make it ten times better still. I’m not exactly looking for work, but if the Obama administration wanted someone to write the software of hope, I’d jump at the chance.
Cheers, Mike Lee. Chief Primate, United Lemur
MacHappens, Mac Happens
You can leave a response, or trackback from your own site.


