Tom Bunch has been working on OmniPlan for 13 years, and he’s been at Omni for 24 years — and in this episode he reminisces (dryly, because that’s Tom for ya) about the old days as employee #9.
We also talk some tech stuff — like what happens to your brain after you’ve switched to automatic reference counting? — and then we get into counting virtual salmon, rock climbing, and woodworking.
You can find Tom on the web @tbunch on Twitter.
Some other people, places, and things mentioned:
- Greg Titus
- Rey Worthington
- Omni Roadmap 2019
- Ken Case
- Tim Wood
- Automatic Reference Counting (ARC)
- Abraham Lincoln
- Molly Reed
- Capitol Hill
- University Village
- Interbay
- South Lake Union
- NeXTstation
- NeXTcube
- NeXT OS
- Wil Shipley
- WebObjects
- Objective-C
- Java
- Cocoa Java
- Düsseldorf
- Mark-and-sweep
- University of Washington
- Center for Quantitative Sciences
- Columbia River
- Normandy Park
- Burien
- Kennedy Catholic High School
- Gantt Chart
- Rock climbing
- Squamish
- Woodworking
- Yosemite
- Scuba diving
- Cook Islands
- Fiji
Brent Simmons: You're listening to The Omni Show. Get to know the people and stories behind The Omni Group's award-winning productivity apps for Mac and iOS. Music.
SFX: [MUSIC PLAYS]
Brent: I'm your host Brent Simmons. In the studio with me today is Tom Bunch, OmniPlan Engineer. Say hello, Tom.
Tom Bunch: Oh, do we have to do that bit?
Brent: Yes, we do.
Tom: Hello, Tom.
Brent: Thank you. I have an unbroken streak of, how many episodes? Over a year now, a year and a half. [crosstalk 00:00:38] Yeah.
Mark Boszko: 39.
Brent: 39, pretty nice. Tom, I mentioned that you're an OmniPlan engineer. What you do at Omni is you work on OmniPlan.
Tom: Yes, yes. I engineer the OmniPlans.
Brent: How does that go?
Tom: It goes pretty good, most of the time. Getting pretty good at it after 13 years.
Brent: You mentioned that it was 13 years ago today, yesterday, something like that? That was your very first commit to OmniPlan.
Tom: Yeah, yeah. Today, 13 years ago. I just looked it up.
Brent: Wow. What was it? An entirely new data model? A brand new UI? First Gantt charts?
Tom: I added one word to a user interface, to a Nib.
Brent: What was the word?
Tom: Standard.
Brent: Standard. I like that. Do you remember what the context was? A standard line spacing, standard ...
Tom: I think it was talking about work schedules.
Brent: For OmniPlan, that makes sense. You must have been fairly early on with OmniPlan. We did another episode with Greg, or a couple episodes with Greg, where he talked about starting it as a side project, but it couldn't have been too much later when you started working on it too.
Tom: Right. I think Greg started noodling with it in 2002, so it had actually been there for roughly four years before I came along.
Brent: Wow, and now 13 years on.
Tom: Yeah.
Brent: You and Greg the only people that work on it, or have you had any other team members?
Tom: At present. We've had people rotate in and out. You've had Rey on the show, earlier.
Brent: Yep, right.
Tom: She helped out on a number of occasions. Other people have chipped in here and there as well. We had Joe Jones working on it before I ever began with OmniPlan.
Brent: Okay, and Joe was here long before me, it seems like. I don't recognize the name.
Tom: Yeah, yeah. I think—
Brent: Sorry, Joe, if you're listening.
Tom: Yeah. Well, it was good working with you.
Brent: Can you talk much about recent work that you've been doing with OmniPlan? Has it been mainly bug fixes lately? Or what kind of stuff's going on?
Tom: Right, so we've been doing maintenance releases of versions, both for Mac and iOS. We have begun work on the new, shiny things.
Brent: The Roadmap mentioned, I think it said something about JavaScript automation. Have you been working on the JavaScript automation?
Tom: No. Greg's doing that, and it'll be fairly similar to what we already have in place for our other apps for OmniOutliner and OmniGraffle, and it will come to iOS.
Brent: Okay. We have it on the Mac right now, or we don't have it on the Mac?
Tom: You know, I'm not sure what we're shipping.
Brent: That's a good question. I should know. I think we don't have it on Mac or iOS yet.
Tom: I think that's correct.
Brent: Yeah. Listeners, sometimes it's hard to tell the difference between something in progress and something's that's actually out there, and we have to think hard.
Tom: I'm always running the new, broken version.
Brent: We'll have that. The Roadmap also mentioned sharing tasks between OmniPlan and OmniFocus.
Tom: Right.
Brent: That's something you've been working on at all?
Tom: Well, so first step on that is sort of on the OmniFocus side. We need to work out how we're going to talk to them. I believe the framework for that is being laid.
Brent: On the OmniFocus side.
Tom: Yeah.
Brent: Right. Once you have that, then you'll know how that works. That makes sense. I imagine there's a good number of users who are definitely looking forward to that.
Tom: Yeah—
Brent: It seems like the kind of thing we should have. Right?
Tom: Yeah, yeah. I think we've been sort of hinting at it for too many years now.
Brent: I think I may have heard someone say at one point that, "OmniPlan's been there just waiting for OmniFocus." Maybe an exaggeration a little, I don't know, but yeah.
Tom: Well, we had it implemented in a very simple way, once upon a time, and decided we couldn't ship it that way.
Brent: I remember, years before I started at Omni, Ken Case was speaking during WWDC, the State of the Union. The big thing after launch. He was talking about converting OmniPlan to garbage collection.
Tom: Right.
Brent: I think I got it right that it was OmniPlan, specifically.
Tom: That's correct.
Brent: Was that you, partly you?
Tom: Once again—
Brent: GC collection?
Tom: You know what? I can't recall who did most of that work. It was probably Greg and Tim, possibly all Greg.
Brent: Garbage collection didn't last, obviously.
Tom: No, that—
Brent: I'm betting, we didn't even ship the garbage collection version.
Tom: No. It was great for getting up on stage, but you're right, we never shipped it.
Brent: Right, makes sense. However, recently, it appears, last few months, converted to ARC.
Tom: That's true.
Brent: Right. I bet you actually worked on—
Tom: I did, yes, yeah. You've hit upon something I worked on.
Brent: I found something! Everything Tom does is a secret, except for this. That we know.
Tom: Yeah.
Brent: Yeah. How did the ARC conversion go?
Tom: Oh, it went fine. It was largely a matter of saying, "Let's use ARC now," and then doing what the compiler said. You have to insert some bridging casts and other code voodoo.
Brent: Oh, yeah. Right.
Tom: Then fix all the crashes, and apparently, you're supposed to test for memory leaks.
Brent: Yes. Yes you are. Has that conversion ARC made working on it easier, now that you don't have to remember or remember as often about auto release and all that kind of stuff?
Tom: Not for me because I'm so old, I've been doing this since Abraham Lincoln's time. Right?
Brent: Well, let's be fair. It was shortly before.
Tom: Okay.
Brent: Yeah.
Tom: Sometimes, I still type "release," and then I have to delete it, because the compiler swears at me.
Brent: Right. It has no idea what you're talking about.
Tom: "What is this?"
Brent: It's interesting. I've been coding since around the same time as you, Abraham Lincoln-ish. I had all that manual stuff, so ingrained that I thought I could never possibly forget it. Then I started using ARC, around when ARC came out, and I just kind of lost the ability.
Brent: At one point, when I was working on OmniOutliner, really, the first thing I did when I switched to OmniOutliner was go through and do an ARC conversion. Because I knew enough to do the ARC conversion, still remembered enough, but like as a day-to-day thing, I think it would have driven me crazy to still use the old manual ways. You might lose the ability.
Tom: I might, yeah. I've probably lost it already, let's be honest.
Brent: If you're lucky. Make room for other things. Yeah. You've been here for how long?
Tom: The math is getting hard. I'm looking at my watch. 24 years.
Brent: 24 years.
Tom: Yeah. In May.
Brent: Let's see, it sounds like 1995.
Tom: That's right.
Brent: The company was fairly small in those days.
Tom: Yeah. I think I was number nine. Although, I can't remember if the lower numbers were all full-time employees.
Brent: How did you start here? It was before Craigslist, so it couldn't be ...
Tom: Right, right. I actually worked with several of the ... all of the founders, to some degree or another at the University of Washington.
Brent: Oh, okay.
Tom: That's Ken and Tim and Wil, and also Greg Titus and Wim Lewis. Sorry if I've forgotten anyone.
Brent: That all sounds about right, yeah.
Tom: One day Wil said, "Why don't you come interview with us?" I said, "I've been working with you for years. You pretty much know what I can and can't do. Well, I mean, if you want to hire me, go ahead."
Brent: Right.
Tom: So he did.
Brent: Okay.
Tom: That was my strenuous interview process. I gather we changed to a different interview format after that.
Brent: Yeah. You didn't even have to do a resume or any of that stuff.
Tom: No.
Brent: It's like, yeah, of course, they just knew you.
Tom: Yeah.
Brent: It was a consulting company in those days?
Tom: Yeah.
Brent: Not for games or anything like that.
Tom: Right. Our products kind of shipped from a desire to make our consulting more productive. Or, I shouldn't say "shipped." That came much later. They evolved from that desire. OmniPlan, we had to plan some projects for—
Brent: Sure.
Tom: ... Consultants and some of the competing projects, management software packages that made us weep.
Brent: On the basis of they sucked.
Tom: Well ...
Brent: Right.
Tom: Not to mince words.
Brent: You've seen the company grow from pretty small to whatever it is now, 10 times at least, roughly what it was. On our sixth location?
Tom: Number five.
Brent: Number five.
Tom: Yeah.
Brent: Okay. Maybe the last, who knows?
Tom: Maybe.
Brent: Maybe we could stay here forever.
Tom: Molly would like that.
Brent: I think so. Where has Omni been? Since I ... This is my first location.
Tom: We had two locations on Capitol Hill. First was, oh, was it a bagel shop or a hair salon? Or possibly both, downstairs. Then we rented a house, kind of around the corner from that. Then we moved to a really bizarre commercial building by the University Village, near UDUB campus.
Brent: Okay.
Tom: Then Interbay, and now here we are on Northwest South Lake Union.
Brent: Yeah. We have a beautiful view of the lake here.
Tom: Yeah, I watch the seaplanes takeoff and make sure they're working.
Brent: Traffic is a nightmare, but yeah.
Tom: It's true.
Brent: What kind of work did you do when you first started at Omni?
Tom: At Omni, the traditional first project for every greenhorn was to work on time tracking software.
Brent: Oh, okay.
Tom: You'd start in on a client project, turn on the clock, and generally forget to turn the clock off again and go home, so then the next day you have to—
Brent: Figure it out.
Tom: ... Make something up.
Brent: Do you remember any of the early contracts you worked on?
Tom: Yeah. I worked on sort of a tissue management package for an eye bank.
Brent: I've never heard the term "eye bank" before, but I immediately get an idea what that is.
Tom: Yeah, when people need a corneal transplant, there are eye banks that can hook you up.
Brent: Wow.
Tom: They take care of donor records and make sure everybody's compatible, do the harvesting. It's all great fun.
Brent: It's a little ghoulish, but it's really like … it's important, right?
Tom: A little bit, yeah. Good stuff.
Brent: This was all on NeXTstations, right?
Tom: Yep.
Brent: Yeah.
Tom: Yeah.
Brent: Before the reverse takeover of Apple by NeXT.
Tom: Right, yeah. When I worked at the UW, our group, I swear, the serial numbers on our NeXTcubes were something like 16. Yeah. I think it was pre-1.0 NeXT OS days.
Brent: Wow.
Tom: That kind of led to Omni being formed at all.
Brent: Was the UW one of the few places that had NeXT computers? Or were they actually fairly prevalent in academia?
Tom: I don't think they were prevalent. I don't have the best lens for that because I was at the UW, but we had a campus consultant. In fact, I think Wil was the NeXT campus consultant at one point.
Brent: Okay.
Tom: I don't know how the Cubes happened. It didn't seem central to our group's charter, but I was glad they came along.
Brent: Yeah. Did you ever end up doing WebObjects work?
Tom: I did.
Brent: Betting a lot of the enterprise stuff was WebObjects.
Tom: Yeah, yeah. I spent years working for Adobe on their e-commerce store.
Brent: Oh, okay.
Tom: That was in the Objective-C days of WebObjects, before Java came along and ruined everything.
Brent: Oh, right. Listeners may not know but Apple, NeXT, Apple, were very worried about Objective-C as a programming language in 1998 or something like that, and they were moving things to Java. Not just WebObjects, but there was even, you could write Mac apps using Cocoa, but using Java as the language, which still seems crazy to me.
Tom: Me as well.
Brent: You weren't a big fan of Java, I imagine.
Tom: No, I managed to mostly get out before Java came in. I did do a consulting job for a company in Dusseldorf that had a Java code base, and it was often a struggle. You'd have the server hitch for 5 or 10 seconds doing garbage collection.
Brent: Ah, jeez. It still amazes me that people thought garbage collection was going to be okay. I mean, maybe now with faster machines, but in the '90s ...
Tom: Maybe, in theory, it could pencil out but ...
Brent: Yeah, maybe.
Tom: ... Not a compiler guy, really.
Brent: Yeah.
Tom: Someone clearly thought it was a good idea.
Brent: Yeah.
Tom: Yeah.
Brent: I was reading the other day that, technically, Reference Counting is technically a form of garbage collection.
Tom: Interesting.
Brent: Yeah. Just, it doesn't actually really mean anything, it's just garbage is collected when the retain count goes to zero.
Tom: Sure.
Brent: It's just when we talk about garbage collection, we never think of Reference Counting. We think of them as different things.
Tom: What is it they used to say, "mark and sweep"?
Brent: Yeah.
Tom: It's been a while.
Brent: Yeah, yeah. I don't know. I'm not a compiler guy either.
Tom: Okay.
Brent: Before Omni, you were at the UW, where you worked with Ken and everybody.
Tom: That's right.
Brent: Is this your first job?
Tom: What, with The Omni Group or at the UW?
Brent: Or your first job at all, going way back to college.
Tom: Well, my first job was I delivered papers, and then I mowed lawns around the neighborhood and everything.
Brent: Sure.
Tom: But at college, my first computer related thing was sort of the academic computing center, where anybody related to campus having a problem with any computer could call and ask for help, so I got kind of exposed to everything. Couldn't necessarily help with everything because I'm not a statistical package guy, but I knew who to call.
Brent: Yeah, well, that's key. Right?
Tom: Yeah. I got to help graduate students with their homework or research projects.
Brent: Do you have a specific major? Was it Computer Science?
Tom: No. I sort of puttered around a great many things, and then dropped out because work was more fun.
Brent: That's funny, it's similar to my story. I'm a college dropout as well, but it wasn't that work was more fun.
Tom: Oh, yeah?
Brent: It was just that I couldn't manage to graduate.
Tom: I just kept spending more and more of my energy on my job and less and less on my school work. Then I started registering for fewer classes, and then I didn't.
Brent: What did you do after the helping out of people?
Tom: After that I went, also at the UW, to work for the Center for Quantitative Sciences. My job there was implementing scientific models of salmon populations. We would throw a bunch of fish in the top of the Columbia River and see how many we could kill by the time they got down to the bottom, using dams and turbines and fish bypass ladders, predation, hot water.
Brent: You were modeling this, not actually killing the fish?
Tom: Well, right. Virtually.
Brent: Yeah, okay.
Tom: Yeah. The idea would be that the managers can ask questions like, "Suppose we have typical rainfall and then we have these energy demands and those irrigation demands, so we spill so much water at this time, and we run so much through the turbines and take so much for irrigation, how many fish reach the bottom? Are we still compliant with the Endangered Species Act and our treaty obligations with the Indians in Canada?"
Brent: This stuff actually went to policymakers' hands and ...
Tom: It did.
Brent: ... They made the decisions.
Tom: Yes, so on.
Brent: Interesting. Was that work then actually quite helpful to the salmon?
Tom: I hope so. I became a little bit disillusioned with some of our policymakers at the time. Because I felt that the question rather than, "How can we save our salmon from extinction?" Became, "How many salmon can we take, and how much water can we take out of this system, and not be in violation of federal law, probably?"
Brent: Right. Were the results of your modeling open to interpretation in some way?
Tom: I believe so. I'm not one of the fishery scientists. I'm just the programmer guy, but it looked to me like, often — consider the example of a dam. Historically, at that time anyway, we'd generally either spill a lot of water over the top or no water over the top.
Brent: Okay.
Tom: Then there are actually people counting fish and seeing how many die from gas bubble disease and predation, and so forth, and so you have survival stats. If you put those on a scatter plot, you have some in the top left corner and some in the bottom right corner, and not much of anything in-between. Well, you can fit that to just about any kind of curve you want, and I began to feel like they chose the curve that allowed them to take the most water for power generation, in general.
Brent: Right. You went from there to Omni.
Tom: That's right.
Brent: That a straight thing? Leave there, go right to Omni?
Tom: It was another kind of one faded out, while the other faded in, so when I began at Omni, I was—
Brent: You were working half-time?
Tom: ... working, yeah, part-time. I just kind of worked more and more until I quit the other job.
Brent: Yeah, that's fair.
Tom: Yeah.
Brent: An interesting question I like to ask people is where they're from. The answer for you is, you're just from here.
Tom: Yeah, well, 20 minutes south of here.
Brent: In Normandy Park, right?
Tom: That's right.
Brent: You look like a Normandy Park kid.
Tom: I do. Yeah, yeah.
Brent: Do you? I don't know.
Tom: Well ...
Brent: It's all one big family. Everyone there's named Bunch, and it's all your cousins.
Tom: Well, not quite, but they look like they could be.
Brent: Where'd you go to high school?
Tom: In Burien, a private high school, John F. Kennedy Memorial.
Brent: Oh, okay. Good experience?
Tom: It was good, yeah. I mean… so it was a Catholic high school, and I wasn't Catholic, and I'm okay with that.
Brent: There always has to be a few ...
Tom: Yeah.
Brent: I've seen that happen before.
Tom: I chose it because I felt like the public schools were struggling. When I say "I," I mean, my parents may have been involved in the—
Brent: Sure.
Tom: ... decision a little bit.
Brent: Right.
Tom: I mean, the thing, I think, I value most about learning there would be respect.
Brent: Interesting.
Tom: I'm not sure they were super strong, academically.
Brent: How was it that they taught you about respect?
Tom: Oh, it just came up in everything.
Brent: Yeah?
Tom: I couldn't even describe.
Brent: Like interpersonal respect?
Tom: Yeah.
Brent: Respect for tradition? Respect for science? Respect for ... Or kind of all of the above?
Tom: Kind of all of the above. Interpersonal, I think, is number one.
Brent: Sure. Well, so when you're not here making the Gantt charts beautiful, what do you do? What do you do on the weekends?
Tom: I like to go outside.
Brent: It's a good plan.
Tom: Yeah, preferably on the mountains. I mean, almost anything you'd care to name on a mountainside is okay with me.
Brent: Okay.
Tom: I'm a big fan of downhill skiing and climbing. Usually, rock climbing.
Brent: You're not one of those Free Solo types, right? I hope.
Tom: No.
Brent: Okay.
Tom: No.
Brent: Use all the… I don't even know what the gear is. Something called a rope or something.
Tom: Yeah, pitons. No, we don't use pitons. Rope, harness, quick draws for sport climbs. Then there's all kinds of things for your trad lines.
Brent: Oh, okay.
Tom: Sure.
Brent: When you climb in a mount, how far up are you climbing? Like is it 50 feet, 1,000 feet? What's a typical climb like?
Tom: Oh, well, I mean, lately, I have been climbing pretty close to the ground, so 20 meters or less. It's been a couple of years since I went up to, say, Squamish, and up there you have seven, eight pitch climbs, which translates to, oh, maybe 400 meters. No, that can't be right. How long is my rope? Let's do some math. 240 meters, we'll go with that.
Brent: 240 meters, sounds good. What's a pitch?
Tom: It's always hard to describe rock climbing to people who don't have the same mental pictures that I do.
Brent: Yeah, sure.
Tom: You start at the bottom, obviously, where most everything starts, and you climb up until ... Well, you stop before you run out of rope.
Brent: Okay.
Tom: On a multi-pitch climb, you have to set up an anchor. You tie yourself off, and then you use the rope to protect your partner as they come up, and that's one pitch. Then, perhaps, your partner will lead through and do the next pitch, and bring you up.
Brent: I see.
Tom: Then you'll yo-yo your way up the mountain.
Brent: That's cool. What do you like about rock climbing? I mean, I know a number of people who love it, I just don't happen to know why. I never tried it.
Tom: An awful lot of it is just being there. There is just a great feeling from just being on the side of a mountain, where you've worked hard to get there, and you're looking out at the beautiful views, and the weather is ... Well, the air is fresh, anyway. The weather could be anything.
Brent: Sure.
Tom: Then it's also doing something with my hands instead of my brain.
Brent: Right.
Tom: I think there is a certain affinity engineering types have for rock climbing and other pursuits with the tinkering with the gear, figuring out systems, how to make everything work and then stand up when it needs to, it's real important with climbing.
Brent: To that end, on rainy weekends when you're stuck at home, do you have any ... Tim Wood does pottery, for instance. Do you have anything like that?
Tom: Yeah, yeah. I used to do pottery but lately, I've been ramping up on woodwork.
Brent: Cool.
Tom: By ramping up, I mean most of my woodwork is like building my shop and getting shop storage set up and everything, so I haven't done a lot of projects. Nothing showy. Cutting boards and spoons and that kind of thing, a couple of end tables.
Brent: Cool.
Tom: Hopefully, I'll get my shop done and then I can go out there and build something that won't rot quite as fast as code.
Brent: Yeah. Code rots really, really quickly.
Tom: Really fast.
Brent: Yeah. We're all looking forward to / fearing WWDC this year, as every year. Because we don't even know—
Tom: Mm-hmm (affirmative), yes. Are they going to ruin our summer again, or not?
Brent: This year, everyone's talking about, "Oh, Marzipan, and are they going to deprecate AppKit?" Which is like—
Tom: Nah,
Brent: ... Oh my god, yeah, so we live in fear, yeah.
Tom: Yeah.
Brent: We like making tables—
Tom: I thought some of it up.
Brent: ... Because you can make a table, and it doesn't really matter what Apple does, the table's going to be up next year.
Tom: It will live longer than I will.
Brent: Yeah. Setting up shop is kind of fun though, because you're shopping for tools, is kind of cool.
Tom: Yeah, yeah. I prefer old hand tools, so I've got ... Shoot, I don't know how many hand planes I have now. Of course, since my shop's not set up, they're all sitting in boxes. It's not ideal, but it's very satisfying, to me, to run a hand plane over wood and make shavings instead of sawdust.
Brent: Sawdust is industrial. Shavings is human.
Tom: Right. Also, sawdust is bad for you.
Brent: Yeah, that's true. Do you ever climb to Yosemite? I've been to Yosemite.
Tom: I never did.
Brent: I love that place.
Tom: I went to Yosemite like the year before I started rock climbing, and just kind of drove through and went, "Wow. Oh, wow. Look at, over there. Oh." Just inspiring to see those granite faces just pop out of nowhere. One day, I'd love to go back there and do some climbing, but it's full of people, so that's not what I'm looking for in the mountains, in general.
Brent: Do you do any sailing or anything like that, water pursuits?
Tom: Yeah. Well, scuba diving. I'd love to do sailing, but I haven't got a boat. I've done it in the past, but scuba is a big thing. I haven't gotten out very recently. It's cold in our waters. I do have a dry suit, but still, these old bones, they feel it more acutely every year, but if I find myself in the Cook Islands or Fiji, I'm definitely going to go diving.
Brent: Yeah, right. That makes sense. That sounds like fun.
Tom: Yeah.
Brent: All right. We're going to leave it there at the Cook Islands and Fiji.
Tom: All right.
Brent: Picturing you going scuba diving.
Tom: Ah, I'm picturing it now.
Brent: As Tom falls asleep, I'll say, thanks Tom. How can people find you on the web?
Tom: Oh, I can be found on Twitter @tbunch, is me.
Brent: @tbunch. Okay. That'll be in the show notes too. I'd also like to thank our intrepid producer, Mark Boszko. Say hello, Mark.
Mark: Hello, Mark.
Brent: Especially, I want to thank you for listening. Thank you. Music.
SFX: [MUSIC PLAYS]