My Path to GIS

TL;DR: This post is long and there is no summary.

When you reach a certain stage in your career, you start fielding more and more inquiries from those younger than you about how you got started in your field. In my case, the field is GIS. The short answer, and not a particularly uncommon one, I’ve discovered, is “by accident.” I have previously documented that I landed my first job through one of my regulars at the bar I was tending at the time. I’ve also documented how I became interested in maps and programming at an early age. There are, however, a few more dots to connect.


My love of maps remained avocational and really went dormant as I got more into programming. During my middle school and high school years, I wrote BASIC code on my Commodore 64 to automate Dungeons and Dragons tasks. This was in a time before the internet was available in homes and, since we lived in a pretty rural area of Maryland, every call was long-distance. As a result, there was no way my parents would let me dial into bulletin boards. So I did it the old-fashioned way: checking out programming books from the public library. I had a few other friends who were into programming as well so we shared what we learned.

That Commodore 64 didn’t come with an external floppy drive (don’t even ask about hard drives) because my mother didn’t know one was needed when she bought the computer. As a result, every program I wrote ceased to exist when I powered the machine off. I got really good and re-writing them from memory and optimizing them a little more each time I did.

In high school, our little rural school system had a vocational tech center that included a two-year data processing program. The first year was done at the local high schools and the second year was done at the tech center. The tech center housed an HP3000 minicomputer that was the central hub of a network that reached to all of the high schools. This whole setup was established by my friend’s father, who had moved on to other things by the time I reached high school. It was during that time period that I got exposed to other programming languages, such as COBOL, RPG, and Pascal.

In addition to the data processing program, my high school had a computer math class that taught BASIC and Pascal. I had already been using BASIC for several years and the teacher had learned it the previous year at the community college. I knew more about the language than he did, but he was enthusiastic about providing a setting for us to experiment. For my final project, I automated our geometry book. (Little did I know how much geometry would figure into my career.)

From there, I can fast-forward through college, where I did more COBOL, as well as some assembly, C, LISP, more Pascal, and more BASIC. Additionally, I learned about databases (ISAM/VSAM as well as relational).

By now, you are probably scrolling back up to the title of this post and wondering where the GIS is. Exactly.

During college, I heard the term “GIS” once, in passing, during a lecture where the professor implied it was a bizarre, minor, offshoot of information technology. In 1989, he was probably right. Early on, one of our computer science classmates left the program to major in “cartography.” (I’m not sure if it was a major at the time or if he really switched to geography.) We couldn’t believe he would make that jump and we didn’t hear much from him after that. The point is that geography, maps, and GIS were nowhere on my radar during this time.

I worked my way through college, so it took some extra time to get out. (No student debt! FTW!) When I did get out, the country was in the middle of a recession. The federal government (the DC metro area is a company town) had a blanket hiring freeze in effect and, as hard as it may be to believe today, programmers were not being snapped up like they are now. It was the proverbial buyer’s market and no one was buying. So, I waited tables and tended bar, all the while hoping that I would land a job before my skills got too stale.

At the restaurant where I worked, the staff was full of people about my age with degrees of various sorts looking for their first break (including my future wife). Some would step into the management track of the chain, which actually paid pretty well. I’ll confess I had one eye on that in case nothing else transpired. Eventually, I met Mark and, some time after that, he told me about a contract he was hiring for. It was digitizing maps of Army bases in AutoCAD. It wasn’t programming, but it was a hell of a lot closer to it than tending bar. So I applied. Over some raised eyebrows, Mark gave me the job.

So I learned AutoCAD R11 for DOS. As an aside, it had one hell of GUI for a non-Windows DOS program. I did heads-up digitizing for probably a year. Our maps were then imported into MapInfo (finally GIS!), but the process was tedious. One of the senior programmers on staff was trying to automate it and pulled me in to help. From there, the fusion of maps and programming was sealed for me. At that job, I wrote AutoLISP code to automate data import and processing. I went to ESRI ARC/INFO training and came back with enough knowledge to teach myself AML.

I left that job after a couple of years and went through a couple more, building my GIS programming capabilities all along the way. When I found myself doing MapObjects development with Visual Basic, it was like all of the seeds planted in 1978 had finally grown into a garden, waiting for me to harvest. This blog picks up in 2006, as I began delving into open-source GIS and it documents the rest of my path pretty well. As I look back on those early parts of my career, I realize that GIS was never my intended landing place. I wanted to be a programmer. GIS came late in the game as bit of a differentiator, but I could have easily ended up somewhere else. My early love of maps, however, fed my interest and I benefited from a lot of patient professional geographers along the way.

There are a few lessons I learned:

  1. It’s always a lot harder than you think it is and you can’t be afraid to work harder than you ever imagined you’d need to. Working while going to college was incredibly difficult and my GPA may have been a little bit better if I hadn’t had to, but I don’t regret a single bit of it.
  2. Sometimes to you have to do what you need to do before you can do what you want to do. During college, I worked at a restaurant that had a program where they paid for college if you worked 30 hours per week as a shift manager. So I did that. Three consecutive 10-hour shifts a week for a year, and full-time classes. There were times I was so tired that I didn’t know my name by Sunday evening. I trained numerous managers who became my supervisors. I was willing to do that because I was playing the long game and I had other things I wanted to do. After college, I could have complained about not working in my field, but that wouldn’t have paid my bills. I could have passed on the digitizing job because it wasn’t programming and I would have closed a door and possibly ended up managing restaurants.
  3. Relationships count. There is no quantifiable reason why Mark should have given me that first job. I had a degree and a résumé full of restaurant experience. He told me later that there had been more qualified candidates in the queue. He went with me because he felt like he knew a little bit about me. The same applies in 2016. Everyone has some cool code in a GitHub repo, so get to know people. Not through social media, but in person. Go to meetups and events occasionally so you can make sure that there are at least a few people who’ve shaken your hand and looked you in the eye. No Twitter avatar can ever do that for you.
  4. Help others. Don’t do it because you have to. Do it because it’s the right thing to do. Mark, the senior programmer at my first job, all of those geographers all helped me and filled in the gaps with the knowledge I needed to be successful. If you can’t give someone a job, or teach them a technique they need to know, then point them to someone who can. It’s a practice I try to replicate with varying degrees of success.
  5. Don’t stop learning. This should be obvious, but I meet a lot of people who put themselves into lanes. I’ve met “.Net programmers” and “Javascript programmers” and I’ve worked in “Esri shops” and the like. I have often said that open-source GIS made me a better Esri user and consultant. Deep proficiency is good, but don’t ever box yourself in.
  6. If you’re still breathing, you’re not done. This post summarizes how I got to where I am in my GIS career, but that’s all it is: where I am. I am not at any destination. In fact, I’m not entirely sure what a destination is. With everything I’ve experienced and everything I’ve learned from it, it would be a waste to stop now.

My career in GIS was unexpected, and my path to it was not direct, but it has definitely been rewarding. I’m not sure why this post has been kicking around in my head lately, but I’m glad I finally got it out.