All posts by Mike Dolbow

Tobin Bradley: “The open source community and ethos feels like home to me”

Tobin Bradley
Tobin Bradley is an indoor enthusiast. His hobbies include staring at screens (computers), staring at screens (books), staring at screens (movies), and staring at screens (video games). He wrangles code at Mecklenburg County Government in North Carolina and occasionally writes about it on his blog. 

Tobin was interviewed for GeoHipster by Mike Dolbow.

Q: Good gracious, you’ve been blogging over at Fuzzy Tolerance since 2005! When you started, did you ever think it would last over 14 years? What does that first post make you think of?

A: Something Jeff Atwood of Stack Overflow fame said that stuck with me is the worst code he’d ever seen was the code he wrote six months ago, and that that was always the case. Looking at my first blog post from 14 years ago on Loading .NET User Controls at Run Time, complete with poorly formatted code from one of my 47 blog engine migrations, makes me contemplate the sturdiness of the window across from me and the elevation of this floor.

But it also makes me realize why I’ve never gone back and edited those old blog posts, even the ones that make me cringe. It’s me, or at least the part of me I choose to share. Fuzzy Tolerance started even earlier as (oh it pains me to write this) The Programming Consultant Newsletter, a PDF I’d share with our staff and other local GIS folks every month. I’m an introvert and slightly autistic, the kind of person you’d see at a conference pretending to be part of a wall while eyeing the exits. Writing has always been the way I can help people and express myself. So it doesn’t surprise me that I’ve been doing it for so long, and in the event of a civilization-ending zombie apocalypse, I’d probably still write blog posts with spray cans on the sides of abandoned grain silos.

Plus it’s a good way to archive my aging brain. Recently somebody thanked me for a bit of complicated PostGIS-related SQL I shared that I had no recollection of whatsoever. I was pretty sure I was being confused with a smart person until I found the blog post.

Q: All right, let’s back up a little for our readers here. How did you get into GIS…or geospatial…or whatever we’re calling it these days?

A: Accidentally.

I was always headed for something related to problem solving and technology. My parents bought me a Commodore VIC-20 in my formative years, a 5KB of RAM powerhouse (if you had the Commodore 64, (a) congratulations and (b) I hate you). It marked the point in my life when I became an indoor enthusiast. The things I managed to do with BASIC are probably still illegal in most states.

Naturally I went to college expecting to become a programmer. Two classes later and I was disabused of that notion. I could do the work, but I didn’t enjoy it. This is a failing on my part; I have an awful time learning things if I don’t have an immediate practical application for them. I realized I didn’t like programming per se, I just liked solving complex and interesting problems. If I weren’t an indoor enthusiast with an aversion to dirt I’d be perfectly happy being an auto mechanic.

During that existential crisis I happened to take Geography 101 as an elective with an amazing professor, Dr. Tyrel Moore. I went in thinking I’d memorize the state capitals, which was what I thought geography was at the time. Boy was I wrong. I was fascinated by the breadth and scope of the subject matter, but I’ve often thought if my first geography professor wasn’t an amazing teacher, I could have gone in an entirely different direction. Thanks, Dr. Moore.

I had no idea GIS was a thing when I became a geography major. With my programming background, it was a natural fit, and the rest is a succession of lucky breaks and happy accidents. We still call it GIS in Mecklenburg County, but once Data Science becomes a hackneyed term nobody uses anymore, I’m sure local government will switch to it.

Q: Your second Fuzzy Tolerance post was on Open Source Software. Even though the first FOSS4G conference (under that moniker) was only a year away, that still seems awfully prescient to me, especially considering that you work in public sector IT. Did you have a crystal ball hidden somewhere? And did you feel like a lonely voice back then?

A: A nice thing about local government is the antiquated technology actively encourages one to experiment with other things. Combine that with my natural nerd inclinations and I was playing around with things like Linux and MySQL and PHP very early on. At that point I had a loose understanding of what open source was; my interest in open source software was born out of practical rather than idealistic considerations.

The big turning point for our GIS group was when we launched an important website using new internet mapping software from our proprietary GIS vendor with much public fanfare, only to have it explode in a furious ball of nothing. We were battling “server unavailable” messages around the clock. We threw more hardware at it. It crashed faster. We brought the vendor in, who gave us a very expensive shrug. It was black-box proprietary software, so we couldn’t fix it. We couldn’t even tell what was wrong.

Fortunately that wasn’t one of my apps, but I had some apps coming down the pipe, and there was no way I was building them around that software. Some people looked cool and important with a pager strapped to their waist; I was not one of those people.

So I tried UMN’s MapServer, not overly optimistic about it because I thought web mapping was too niche for open source software. MapServer was better than our proprietary product in every imaginable way. It was faster. It was stable. It scaled better. And from a programming perspective it was much easier to work with. I released a couple of apps using it, and we had zero problems. It was…awesome.

That opened our eyes. We’re still a mixed proprietary and open source shop, but it’s exceedingly rare that we create something that doesn’t use open source software, and many of our projects are built entirely with open source software. We also release a lot of our software under an open source license. While I love the ethos and spirit of open source software, our use of open source is still entirely for practical reasons. For many problems, it’s the best tool for the job.

Personally, I’ve been rocking Linux at home (currently Manjaro KDE) exclusively for 15+ years. The open source community and ethos feels like home to me.

Q: You’ve been working for Mecklenburg County for a long time. Is there anything special about this organization that keeps you interested and invested?

A: Oh, not really. Don’t get me wrong, it’s a great place to work, but it has the perks and pitfalls of most local governments. If our GIS group can be said to have accomplishments, I don’t think they’re accomplishments other local governments couldn’t achieve.

I’ve been very lucky in two ways. First, I’ve managed to have great bosses. One bad boss and I would have fallen back on my rock guitar god/professional video gamer career. Second, our GIS group does work with all of our government agencies, making for a wide variety of interesting and ever-changing problems to solve. Even after 20+ years (!), I still look forward to coming to work.

Q: I think I first caught on to your blog around when you started writing about customizing Google Maps, which inspired me to do the same for the organization I was supporting. Back then, they were one of the few choices for a slippy map API, but now there’s probably a dozen, depending on how you count. How do you keep up with technology changes, and how do you decide what to recommend/implement at work?

A: Without the constant technology changes, I’d have left GIS at some point. It’s the constant learning that makes this job so interesting.

At the start of every month I write out the things I want to learn more about. It’s my job to investigate these things, but in all honestly I’d do it even if it wasn’t, and I think it’s something everybody should do. It’s very easy to turn on autopilot and keep doing the same thing the same way over and over, but if you aren’t learning, you aren’t growing, and if you aren’t growing, you’re shrinking. Literally. You’ll shrink.

I try not to steer the ship by recommending or advocating a particular technology direction unless I’m directly asked or I see an iceberg ahead. I tried that early in my career with limited success. I’ve found it’s much more effective to drop guideposts and let people come to them on their own. When people notice my apps are always up, or that an app does a particular thing they’ve been struggling with, they move in that direction naturally. Otherwise it’s whip-cracking and cat-herding, and I have no talent for those things.

Q: You’ve got a lot of code on Github, like your Bootstrap and Leaflet template. Does your organization actively support you open sourcing your apps, or do you just ask for forgiveness later?

A: Ug, that’s an old one. I should probably redirect that repo to Bryan McBride’s Bootleaf, which is much better. Mine was first (ha!), but as with most things, if Bryan McBride and I both did it, you should go with Bryan’s version.

I wouldn’t say my organization actively supports open sourcing apps (I don’t know of anybody else in the organization that has), but it isn’t opposed to the idea. In the early days it was something I did and waited patiently to see if I was going to be flogged, but these days even crusty old mainframe programmers know what GitHub is. Most people I talk to don’t share their code because they think it’s terrible, which is true. What they don’t understand is everybody’s code is terrible. No matter how terrible your code is, there are people it can help, and there are people that will help you make your code better.

My county has a park locator app. So do all 100 other counties in North Carolina. So does every county in the United States, and probably every local government around the world. The wasted effort and money in government because we aren’t sharing code with each other should be an outrage. I’m not big into leadership by fiat, but making all publicly funded code open source is a law I would wholeheartedly support.

You’ve also open sourced your current GeoPortal, which when I use it, strikes me as the “anti-portal”. This app is so simple, I can use it and browse it even though I live over 1,000 miles away. I have to believe there will be other local governments using this somewhere. Are you aware of any?

A: GeoPortal is a fun project. It’s one we initiated within our group, which is different — most of our projects are initiated by our customers, aka other county agencies. That gives us leeway in terms of design and functionality that we often don’t have on our projects (read: when you see one of our apps with 37 buttons, know that a battle was lost). It’s also very fun modern tech: vector tiles, reactive UI components, progressive web app, etc. It’s good to have one project your group completely owns that can be used to try new things and blaze trails for future apps.

I know places that are using our projects like GeoPortal and the Quality of Life project and our Dirt Simple PostGIS HTTP API, and if they want to give us a hat tip for that, that’s very nice. I don’t like to call them out myself though. Taking something we wrote like GeoPortal and customizing it for their own jurisdiction is a herculean effort (I’ve seen my code), and I don’t want a smidgen of credit redirected from somebody that worked really hard on their app to us. But I’ll say this to others that may be functionally autistic/dead inside like myself: knowing that something you shared is helping other people will touch and affect you in ways you won’t expect. When people thank me for a project I’ve shared, I hide in my office for an hour.

Speaking of hat tips, GeoPortal needs to give a giant one to Brian Timoney. His blog posts on how people actually interact with web sites was a real eye opener, and it got me started on a path of learning more about UI and UX, to the point where the map on GeoPortal is now an optional click (gasp!). For my money, good design is still the most glaring problem in government websites today, and unfortunately it’s an area governments rarely invest in.

Q: Judging by your Twitter bio picture, you’re both a musician and a dad, like me. I personally find that lessons I learn in those two roles can be applied in GIS, in IT, and in public sector work. Have you found the same thing, and if so, are some experiences more influential than others?

A: To call me a musician is stretching the term a bit. 23andme has officially confirmed the dad part though.

My first lesson as a father was that I owe my parents an apology. Beyond that, it’s hard to pick out individual things, as I am a fundamentally different person since my son was born. I have a lot more patience. I understand that people have their own motivations and histories, and if I want to connect with and motivate people I need to understand those things and not judge them. A number of children’s cartoons no longer piss me off. It’s a really strange experience going from not understanding people at all to having a wife and son that I’d step in front of a bus for without a second thought, but I wouldn’t trade it for anything.

Being a musician, aside from the expense of new gear and the noise complaints, is a total quality of life improvement. It builds focus, tenacity, patience, confidence, and peace of mind, all of which translate to your life in positive ways. I did not pick up the guitar at 16 for any of those reasons. I picked it up because I thought it would help me woo women in ways that my personality and stick-like figure did not. Turns out an autistic stick-figure kid carrying a guitar around everywhere is mostly just weird.

Q: Tube amps or solid state? Seriously.

A: If your gear inspires you to play and create music, it’s the right gear. If it doesn’t inspire you to play and create music, it’s the wrong gear. If a Squier Strat plugged in to a Peavey Bandit is what inspires you, make your music and tell all of the gear snobs to stuff it.

But the correct answer is tube amps.

Q: OK, the evidence is building. But I’m starting to feel like I don’t have to ask EVERY interviewee if they’re a geohipster. Would you be OK if I skipped it this time?

A: I have never owned a non-functional scarf, which I think rules out the hipster part. I have also never intentionally achieved “cool”, though after many years of work I have “non-threatening” down pat. It mostly involves smiling a lot without showing teeth. I do own a tie that plays Christmas carols. Do with that what you will.

Q: Any words of wisdom or parting shots for our readers?

A: For my fellow local government tribe, I try to encourage people to be present and thoughtful about everything they do. The most common answer to why a local government does something the way it does is because that’s the way it did it yesterday. This is always a bad answer.

But for everybody, my biggest wish is that people would realize how amazing they are, how important they are to other people in ways they don’t understand, how smart they are and the ways they can and do contribute. Imposter syndrome isn’t a new thing, but it seems to hit the tech field pretty hard. The next time your inner voice is giving you an itemized list of your failures, ask yourself if that inner voice was an actual person, how long would you listen to it before you punched it in the mouth. If the answer is not very long, feel free to ignore that voice and go do awesome things with whatever time you have on this planet. And share some code along the way.