We here at Apollo Mapping are excited to announce the addition of two incredibly talented coders – Tom and Maddie – who have already made exciting changes to our satellite imagery search engine, Image Hunter and will be overhauling our entire Map Mavin platform in the months to come. So for this month’s Map Mavin Methods, we’ll hear from Tom Vilot about his coding background, personal interests and what he looks forward to working on with Map Mavin. Stay tuned for next month’s issue where we will feature an interview with Maddie!
- How and when did you first get into coding?
I had played around with computers in high school, but it wasn’t until I got to the University of the Arts that I got seriously “bit by the bug.” Two things came together: the school had an excellent electronic media department where I could play with the Amiga 2000 and early Macintosh computers pretty much to my heart’s content; and a roommate had an Apple II. With the university machines, I got increasingly interested in, “How does the computer do that?”; and with the Apple II at my disposal all other hours of the day and night, I taught myself Pascal. A little later I got myself a Macintosh II, got a copy of the THINK C compiler, and taught myself C, C++ and a bit of Smalltalk and Lisp. This was all in the 1984-1992 timeframe.
- When did coding become a full-time job for you / where did you first work in a coding role?
Back in the days when people thought the CD ROM was the “next big thing”, I got a job at a small multimedia company in SOHO. Looking back, this was a somewhat insane job and project to take on. The salary wasn’t amazing (for New York) and I was pathetically inexperienced. The company’s client wanted a multimedia CD ROM built entirely using C++ which I wasn’t exactly an expert in (and I will never understand their motivation as there were perfectly good CD ROM design tools around). This required working with Microsoft Visual C++ and the Microsoft Foundation Class library which I had never worked with before. I did pretty much all the work myself with a bit of help from a couple of good interns. I then had to cross-compile it for the Macintosh. I still can’t believe I did all that design and development entirely by the seat of my pants (with often shifting requirements). Around the end of that period I discovered Linux and then FreeBSD and I was hooked on being a total geek.
- Over the years, where have you worked? Any memorable experiences?
I have worked in very small companies (startups, consulting companies) and in very large organizations (Cisco, Amazon, Galileo International), though mostly on contract at the big places (I don’t do well in large “corporate” environment, I like to get things done and large organizations make that very difficult). My most memorable project (and not for good reasons) was for an airline in Chilé. Not only was the code base in terrible shape (Perl, written like a cross between bad C and bad Java EE), the cultural differences and language barriers made doing our work very difficult. But I have also worked with small companies where I have had a lot of fun, been able to wear multiple hats, and been left to work on problems in my own way (this is how I work best). The small multimedia company in 1995 is a prime example; I was entirely autonomous and I loved the job of ad-hoc design and problem solving.
- Coming into the world of geospatial science, what’s different about the work you do now than in previous roles? What in regards to the work you do with Apollo is particularly exciting and what are some new challenges that are unique to this role?
What I find most pleasantly different about working for Apollo Mapping is that we don’t have arbitrary marketing-driven deadlines and product requirements. We work on what makes sense, in the timeframes that make sense. And while we strive for excellence, we don’t let the Perfect be the enemy of the Good. I appreciate that level of pragmatism and flexibility. We identify problems, prioritize those problems, and find solutions that balance all the goals of the organization. This is in many ways the ideal environment for a creative engineer who likes to make progress at all times.
- Tell us briefly about some forthcoming Map Mavin work you’re excited about.
I very much look forward to rebuilding (or helping guide rebuilding) the front-end (user interface). Again, while I generally have worked more on back-end (server-side) code, I crave good user experiences in all projects and look forward to being able to improve that for Map Mavin. Maybe it’s partially my age, but I detest bad user interface / user experience design and want to stamp it out wherever I see it. The recent Hawaii false alarm of an incoming nuclear missile was caused by what I consider a prime example of bad UI. Let’s not have patience for that anymore.
- In your life as a seasoned coder, name one particular scenario or thing in general that you love about coding, and one scenario or thing you absolutely loathe.
I love the instant feedback and (almost) instant gratification. Most other endeavors require a lengthy process of planning and building before you see any results. In electronics, that could be hours or weeks. In building architecture, I would be surprised if it lasted less than a year. I don’t have that patience.
I say “almost” for the “instant gratification” part because an inordinate amount of time is spent fixing things that are preventing you from getting the instant results you want, rewriting bad code you inherited, or finding the problem with libraries or tools you require but had no hand in building. I enjoy the constant learning, though I have also come to understand not every new thing that comes along is worth the time investment to learn.
What I loathe is bad design in all its forms. Sometimes it is in the tools or languages I have no choice but to work with due to decisions that pre-date my involvement. Sometimes it is operating systems (I don’t do Windows). Sometimes it is languages (Python is an eminently readable and usable language, but many of its design choices I find surprisingly short-sighted; Perl is a phenomenal language, but easily contorted into seriously ugly code; and I have a soft spot for C++, particularly since C++ 11). I loathe spending time fixing things that should have been done right in the first place.
My disgust with design extends into user interfaces which, while I don’t do it much myself these days, I am happy to criticize it when I see it. I think Google and Apple are at the forefront of mediocre user experiences and people seem to think it is their fault if they don’t understand a badly conceived design. I realize I’m speaking blasphemy to some, but I can make the case (and others more knowledgeable than myself have pontificated on this very topic).
- Outside of work, what do you like to spend your time doing?
Usually being ordered around by my cats (in particular, Wasabi, he’s the “alpha”).
- How has it been working with Maddie and what are some strengths she brings to the table to compliment your existing skillsets?
One of the reasons I championed hiring Maddie was her “hacker mentality.” It is something I look for whenever I am in the position to hire, or if I can pick who I work with. People who enjoy puzzles, who enjoy building things (not necessarily in software, as Maddie, for example, hacks electronics as well) have the kind of pragmatism and self-starter gumption I usually find lacking with people who have traditional computer science education. The best engineers I have worked with are people who come from creative backgrounds (musicians, artists, people who just play with stuff). People like Maddie aren’t put off by things they don’t know (rather, they enjoy the challenge). They enjoy the creativity and aesthetics that are essential to good software engineering. She has a good sense of humor, too. Sometimes you are working with tools that are infuriating, and being able to laugh about that is essential. “Indentation is part of the syntax of the language even just for documentation? Are you f**king kidding me?”
- We know you love photography. If you could have one camera regardless of cost or rarity, what would it be any why?
Ah, the equipment fallacy! The hardware doesn’t matter nearly as much as the eye. Phenomenal images can be made with old Russian 35mm cameras, an iPhone, or just about anything.
That said, I love film. There’s just something about film. I dearly love my Hasselblad 500 C/M and wouldn’t mind having a nice 4×5 such as a Wista Field-45DX or a Toyo Field 45a. There’s something about the 4×5 format (and sheet film in particular) when it comes to landscape work that I don’t think I will ever got enough of. To top it off, I would love to play with the new Hasselblad 400 megapixel H6D-400c. I don’t think there’s a price for it yet.
To learn more about Map Mavin and sign up for a free trial, visit www.mapmavin.com or feel free to reach out to us at: