This is one part in a series of posts about my journey through the AV world. I’ve broken these up into bite-sized portions that shouldn’t take more than 10 minutes to read. I’m hoping to explore the future of systems programming in the Audio/Visual sense. Let me know if I wander off into a tangent somewhere, I tend to forget where I’m going.
Last time, I talked about my aspirations of one day becoming a professional programmer. I hadn’t touched on the AV industry at all since it was largely unknown to me then. I had a few interviews lined up the week before graduating, and I ended up accepting an entry-level position at an AV company. They were primarily a TANDBERG reseller who also did occasional system integration work.
What Do You Want To Be?
I started at the bottom: tech support. I sat in a tiny closet with a desk phone, a computer, and a couple of video endpoints. The person who hired me—Bob Pratt—showed me the process of logging tickets, troubleshooting video problems, and handling RMAs with the manufacturer. Whenever I got stumped on a support call, I could bug him for a clue to steer me in the right direction. Bob was brilliant, and he was patient. I’ve never had a better mentor. He expected me to get work done, but he was always concerned about what the next steps for me were. He plotted a path to follow, and at each milestone I saw tangible rewards. I gradually left the IT sphere and embraced the AV world, focusing on industry certifications and CTS renewal credits. I moved out of tech support and into sales engineering so I could help design solutions for our customers. Unfortunately, that meant Bob was no longer my boss.
As a sales engineer, I was witness to the insanity that sales teams create. As my career path widened in front of me, I felt it lose momentum because I tried to go in every direction sales pointed. For over a year, I dreaded going to work, and I missed the camaraderie I had felt with Bob. Fortunately, an opportunity arose when the control system programmer left. I said my goodbyes to the sales side of the building and moved back in with the engineers. It felt like coming home.
I came into AMX programming with some familiarity, but it required learning a new language and hardware platform. On top of that, the system we sold consisted of 60,000 lines of code spread across 20 files. Every time I wandered into a strange function, I’d stare at it and meditate. But I would ask my new boss for the history on why things were The Way They Were. We’d get a cup of coffee, sit back, and discuss how we got to Now. And so, I learned the system bit by bit and realized most of the code had been carried along to maintain backward compatibility for systems we no longer serviced. Getting dispatched on a service call to debug systems was infrequent, but whenever it happened, it was very difficult to narrow down the problem. I continually wanted to simplify the programming, but the need to maintain backward compatibility was paramount. So, I only threw out old code a little at a time. I learned CVS and Subversion so I could track changes in the code better, and since I was the only programmer, it was easy to enforce compliance. I steadily worked my way to become an ACE Certified Programmer, and I continued to simplify and clean up our code base whenever I had the chance.
Ironically, as I grew as an AMX programmer, the number of customers we had for integrated systems disappeared. The original group of engineers I’d known when I started had all left, and the company had changed directions. In fact, we were so short-staffed, I found myself mostly covering for tech support. Five years in, and it felt like my career had made a U-turn to back where I started. So I searched for a new home.
I moved onto a new company eight years ago, and I’m still here. The name has changed a few times, some faces are still the same, but I’ve been a programmer since Day 1. We primarily sell Crestron systems, so I had to learn a new language and hardware platform, again. Programming in SIMPL Windows is… different. But once I got used to it, a lot of the abstractions make sense for a control system (at least one that isn’t dealing with serial data too much). The new programs I was writing were simple and straight-forward. It wasn’t a mountain of 60,000 lines of code, it was something small I could keep in my head all at once. I’ve continued to develop as an AV programmer, becoming a Crestron Certified Master Programmer and also a Harman Certified Control Expert (since ACE doesn’t exist anymore). I’m still finding ways to improve my programming style, making the code more readable and more reliable.
And again, it’s time to take a breath. I’ve set the stage for how I’ve gotten to today. I started on this journey wanting to program, but I wasn’t able to actualize it into a career path until Bob mentored me. He planted the idea that I should always be looking at what’s next, what’s the bigger picture, and to celebrate my achievements along the way. This isn’t what I saw myself doing all those years ago when I started typing BASIC programs into my DOS computer, but I’ve become a part of an industry that is exploding with opportunity.
IT and AV have merged, but I’ll cover that in the next post.