Published by Loren Aguey - Sep 9, 2024
TL;DR - Sound guy gets burnt out on being a sound guy and learns how to code.
The long version:
I was born on a Sunday. It was dark, stormy, and there was an ominous presence in the room that left doctors, nurses, even my mother, with an uneasy, foreboding feeling that something wasn’t right as I entered the world…
Okay… maybe I’ll split the difference.
This is how I switched careers into software, after 18 years as a live sound engineer.
For anyone not familiar with what a live sound engineer does: Any time you go see a live event that requires sound reinforcement (e.g., speakers and microphones), there is an audio person or crew that sets it up, and an engineer behind a console who controls the levels and overall tonality of what you hear.
These gigs vary from basic rudimentary setups, to highly complex systems that require very knowledgeable audio personnel to ensure a good-sounding event that runs smoothly.
On any medium-to-large scale event, the audio department is expected to:
Like software, staying relevant in the audio world requires staying on top of new and emerging technologies. Learning a new digital mixing console is basically learning a new operating system. If you normally use Yamaha consoles, and get offered a gig that is using a Digico, and you’ve never used Digico, you best do your homework ahead of time. Otherwise, you’re in for a rough go of it if you’re the only engineer on site who is expected to know the console.
Side note: Do you ever think about how crazy of a company Yamaha is? This is a company that makes pianos, but also makes jet skis. They also make what are considered to be the most reliable digital consoles in the audio industry. And for that reason, Yamaha consoles are the de facto standard for corporate AV, where nobody wants to explain to a CEO that the console failed during their big keynote.
Specialized training is offered by manufacturers on specific consoles, proprietary large-scale sound systems, industry-standard audio-over-IP protocols, wireless microphone and communication systems… I could go on. Engineers who have the initiative to attend specialized training will always have the edge over those who are complacent in their current level of knowledge. They will get better gigs, and be able to charge higher day rates.
And for the production companies and clients who pay those higher rates, it’s worth it. As with anything else in life, you get what you pay for. Whether people realize it or not, this profession can be very challenging. Put someone in a situation that they’re not qualified to handle, and one runs the risk of their event absolutely crashing and burning.
Oftentimes, the audio is the least glamorous aspect of the event, especially compared to more visually engaging components, like lighting and video. Many clients in corporate events don’t think about audio, short of just expecting it to work. They don’t realize the amount of work and knowledge it can require to make that aspect of their event run smoothly.
In 2004, I was 20 years old and moved to Vancouver, BC. That is where I cut my teeth mixing bands in rock clubs on Granville Street and Gastown. I got thrown into situations early on that I wasn't qualified to handle, and pissed off a lot of bands.
But I got my shit together fast with the help of my own studying, the owner of the Buffalo Club who took a chance on me (thanks Brian) and one old timer in particular who was generous with his knowledge from decades of experience (thanks Fife). By the time I went back stateside five years later, I was deeply ingrained in the tight-knit Vancouver music scene. I will always look back fondly on those times, and all the amazing artists I worked with.
Fast forward to 2009. Next stop, Seattle. This is where I got my first taste of corporate AV, and real money, in audio. I went from late nights in rock clubs to early mornings at corporate events, many on Microsoft campus in Redmond. I started out as the A2 (the person who pins mics on presenters and is in charge of all things audio backstage). Then, because I worked in the repair shop for an AV company, and took the time to learn the digital console (Yamaha M7 circa 2010 for anyone in the know), I was eventually trusted to be the A1 (audio lead) onsite. The A1 is in charge of the audio crew and is the one behind the console, mixing the show. It’s generally more pressure, and you have to delegate tasks to the audio crew for efficient setup that is often under time constraints. It took a bit of time before I was truly comfortable in that role.
In 2011, I moved to NYC and for the next nine years the gigs got bigger, more interesting, and more stressful all at the same time. I was doing audio for big festivals (the most stressful of gigs IMO), tours (anything from Yo Gabba Gabba kids show to A Night With Janis Joplin musical), larger and higher-profile corporate gigs with CEOs, celebrities, politicians, ex-presidents and first ladies. I traveled all over the world doing sound designer gigs, installing musicals on cruise ships. Sometimes I’d run audio for insanely grandiose and extravagant weddings that required a full production crew.
I also went back to my roots and did some club gigs for Shrine NYC in Harlem. For anyone looking for quality music of all genres in a small venue with good sound, the Shrine is not to be missed. Don't judge them by their busted ass website, just go there and enjoy the music and the diverse crowd where you couldn't feel out of place if you tried.
On stage: So many amazing musicians out there that no one has heard of.
Offstage: I've had the pleasure of working with some very smart and talented sound engineers, video engineers, lighting designers, producers, stage managers, carpenters, etc… If you've never stopped to consider how much work and planning goes behind a concert or a corporate event, just be aware that it takes a lot of technical and logistical talent to make this stuff happen.
Between touring, one-off travel gigs and installing musicals on cruise ships, I covered a good chunk of the globe while getting paid. Good times were had.
As a freelancer, most gigs are in different locations. Working in different venues on every gig kept things fresh… for a while.
Mixing a kick-ass band on a kick-ass sound system, feeding off the energy of the crowd, is some of the most fun I've ever had.
It takes years to build up the knowledge and experience before production companies trust you to deploy and operate their very expensive sound systems. Some of these consoles cost over $100k and large-scale sound systems can be worth millions. Before you get to that point, you are guaranteed to face a lot of challenges along the way. Overcoming them, just like overcoming challenging software problems, can be rewarding learning experiences.
No hours day or night are off limits. The days can be very long and turnaround times can be very short.
Yes, I know this was in the things that I liked, but as time went on, it also became a bit of a downer. Traveling–airports, hotels, tour buses, can be draining. I missed a lot of stuff I would have liked to attend at home over the years. It also puts strain on relationships. As I got older, the novelty started to wear off.
Unless you're “white gloving it” or in union houses where strict rules apply regarding the union crew doing all loading and labor, you're expected to load and unload trucks full of heavy gear. It can be tough on your body, and injuries can and do happen.
When you see an event and the sound is off, there are a variety of reasons why that might be the case. Audiences and paying clients, however, always default to blaming the person behind the console. Sometimes, it's absolutely that person's fault. It may be louder than it needs to be, or the balance is off. Maybe the mixer isn't paying attention and can’t be bothered to turn up a guitar solo, or they can't get all the lapel mics in a panel discussion loud enough for the audience to hear without the mics feeding back.
Other times, they're thrown into a lose-lose situation fighting against the laws of acoustics. These laws do not bend. Anything from being given an inadequate system that is not sufficient to cover the intended listening area, to being provided a rudimentary mixing console that doesn't provide the necessary processing available for the given task. Other times, it's just a shitty band that will never sound good. The expression “garbage in, garbage out” is common in the audio industry.
There's nothing like when a punter walks over to the sound booth and says, “I can't hear the vocals.” Yes, as the sound engineer, I'd also like to hear more of the vocals. But when the 90lb hipster chick is whispering into the mic, and the beardo caveman drummer is bashing his cymbals like they owe him money a foot behind her, guess what sound gets louder when I turn up the vocal mic? I'll give you a hint: it's not the careless whispers.
As it turns out, working in the live events industry during a global pandemic is not very lucrative.
Like many others, my income stream dried up pretty much overnight in March 2020, and I was left wondering whether live events would ever come back. Looking back, it’s like “of course they will, this isn't gonna last forever”. But at the time, the future felt very uncertain.
I literally thought, “If events don't come back, maybe I could learn how to code. Short of an apocalyptic, Mad Max-type situation, working in software should be pretty pandemic proof.”
This guy DGAF about your clean code
By April 2020, I was knee deep in Udemy courses and YouTube coding tutorials. At first, two aspects of programming interested me: mobile apps and audio plugins for recording software. So, I began learning both C++ for audio and Kotlin for native Android. Then the cross-platform framework Flutter kept showing up in all my general searches for mobile app programming. Eventually, I gave in and gave Flutter a shot.
At one point, I was splitting my days between C++, Kotlin and Flutter/Dart. A word of advice for anyone starting out: don't do that. Pick a language and focus on it. Don't spread yourself too thin across multiple languages like I did. Learning another language later on will be way easier. Eventually, Flutter became super fun, and the other two felt like a chore. Also, the job market for C++ audio programmers is way smaller than mobile/web, in addition to an objectively steeper learning curve.
So I landed on Flutter. I realize in the last sentence I just mentioned the job market criteria, and by that logic, going all in on a new framework like Flutter in 2020, was a bad idea. As far as jobs go, sticking to native Android or iOS was (and probably still is) the smarter bet. And I knew that. But after getting used to Flutter and getting iOS for (almost) free, I just couldn't bring myself to go back to native Android. The developer experience is so much better in Flutter.
Ok, so my stack was whittled down to something manageable. The next year or so was spent building, learning, learning, building. Rinse and repeat. Constantly on Stack Overflow, constantly on Medium. Constantly consuming information on Flutter and general programming concepts.
I picked up web development along the way and built my portfolio site. During peak quarantine, I was coding pretty much all day, with mental breaks of video games and spliffs. My cat was my only companion.
Eventually the gigs started to come back. Albeit with the added stress of getting Q-Tips jammed up my nose upon arrival, wearing N95 masks for 10+ hours a day, and other seemingly arbitrary rules.
One gig, we were on some high floor of a Manhattan skyscraper, and they insisted on keeping all the windows on the entire floor open for air flow. It was the middle of a New York winter, and we spent several days setting up in full winter gear indoors.
We weren't allowed to pull our masks down for even a second to get a sip of water unless we went to the designated “drinking room,” which of course, was much smaller than the main room and had no windows. Six feet of social distancing became ten feet, just for this gig. We wore gloves, masks, face shields on top of masks. We were told “the presenters needed to be protected from you,” as if the crew was more likely to spread COVID than the suits giving presentations.
In 2021, I flew to Italy to install a musical on a cruise ship, only to be quarantined for two weeks and allowed only in my room and the theater. Cold meals were delivered to my room at random times in styrofoam trays.
All that to say, it sucked. I didn't enjoy doing gigs of any type anymore. Even when the restrictions started to ease up, mentally, I was already checked out, looking forward to the day when I could code for a living and not have to work crazy hours.
Some of my peers were thrilled to be back doing gigs. The industry needs those people, and I'm genuinely glad they're back to doing what they love. But I hated it. As passionate as I once was about audio, I somehow became the dreaded grumpy sound guy that I never wanted to be.
Anyone who has gone through the process of trying to land their first software job knows how hellish it is. Fast forward through countless rejections, eventually I landed a paid internship at TVision Insights. This is a really cool company, with very smart engineers doing challenging work in the field of capturing viewer engagement data.
Python is their main tool, but their mobile app, Panelist Connect, was originally contracted out and built in Flutter. The app communicates over bluetooth with Intel NUCs that use computer vision to capture viewer engagement data. When TVision brought me on, they were looking for a complete overhaul of the app, including a brand new UI, a new setup wizard, analytics, and debug logging to Scalyr. It was my first time hopping on an unfamiliar code base and figuring out how everything worked.
Six months or so later, we released Panelist Connect 2.0. A couple small bug fix releases after that, and they were comfortable letting the app sit and my contract was up. That was a great experience, I'll always be grateful to TVision for giving me a chance and allowing me to get my foot in the door. Shout out to my mentor Taylor, who could not have been more encouraging and supportive as I stumbled through my first time working on a team, using Jira, and submitting pull requests.
Luckily for me, one of the top engineers at TVision is a fan of the Talk Python To Me podcast. If you're a Python dev or interested in Python, definitely check out this podcast. The host, Michael Kennedy, was looking to rebuild his mobile app, which was originally written in Xamarin, in Flutter. This is a He made an announcement on his podcast, and I got the tip. I reached out to Michael, and to my surprise and delight, he got right back to me. We set up a meeting and then we were off.
So we rebuilt the Talk Python Training app from scratch. The backend, (Python + MongoDB on his self managed Digital Ocean droplet) was mostly in place and Michael made any updates needed throughout the process. I handled the front end in Flutter. That was also a super cool experience. Michael is an awesome dude and a pleasure to work with. I have him to thank for my interest in Python + Fast API as my backend stack of choice, and the rabbit hole that is setting up and managing your own Linux servers. He even brought me on his podcast to talk about python in the mobile app space.
Throughout all that time, I was still torturing myself with countless applications and rejections of full time employment. A few times I got close, but no dice. Finally I got an offer from a financial company. Then, they pulled the offer because of charge-offs on my once-immaculate credit history, due to being in the middle of a gut renovation on my first home purchase when my income dried up.
Back to the application -> rejection cycle. Eventually, I got another offer. This time it stuck. So right as Talk Python was released, I was getting ready to start my first full-time job in software. I was hired as a Flutter developer for Amica Insurance in May 2023.
So for me as a self-taught developer, it took me about two years from my first “hello world” print statement, to anyone giving me a dime to code. About three years before landing a full-time job. It could definitely be done in a shorter timeline for someone with the right work ethic. I also waited too long to even start applying, and had periods where I wasn't doing enough to pursue my goal.
One serious project in your GitHub is infinitely more valuable than a bunch of little to-do apps and the like. Decide on something non trivial that you want to build and get started. Show a responsible git commit history with small commits and meaningful commit messages. And it doesn't need to be an original idea.
For me, it was my weather app Epic Skies, available for iOS and Android.
This is the project that got me my internship, and eventually my job, before it was even released. The app started out with me just pulling the coordinates of the device's location, and showing them on the screen to see if I could do it. Then I'm like “okay, now let's try pulling in weather data and showing the temp on screen.” Then I was like, “fuggit, I’ll just build a weather app”. And for anyone crazy enough to go through the 1300+ commits, they could see my learning history. I still update it today in between other projects.
I can't stress enough the notion of at least one non-trivial project being more valuable than many smaller projects. My first tech interview with TVision was just me being asked to go through my code, my architecture, and lessons learned along the way. And Amica was looking for someone with strong flutter_bloc state management knowledge. Again, I pointed them to the Epic Skies repo, and they saw a real project that uses it.
Boot camps take you from knowing nothing, to knowing some basics. The real journey starts when you're done. I had a friend reach out to me asking to check out his GitHub and provide insight on why he wasn't landing a job. I looked at it, and saw not a single commit in the last two years. He did his boot camp projects and tried to ride those into a job. I told him, “Dude, you haven't done anything in two years. Do you even like to code? I wouldn't hire you either.” Then I gave him the same advice I'm giving you now.
It's a time sink and a pain in the ass. But when I started doing that, my response rate went up immediately. I had a general template, then I'd put in a line or two that showed I actually read the job ad. I made sure to reference any specific tech they mentioned that I had experience in and explained why I'd like to work for their company and what I could contribute.
It may be tempting to look at current demand for web jobs then go straight to learning a framework like React. As far as job prospects go, it's one of your best bets. But don't skip proper web basics first. Have a solid grasp on HTML, CSS, and DOM manipulation and network requests in JavaScript before learning any framework. Learn best practices regarding accessibility and semantic HTML and put them into place. There's way too many sites out there that do not consider the needs of impaired users who rely on screen readers and the like.
Quick note about the never-ending state management debate. If you're trying to land a Flutter job, just use flutter_bloc. During my initial search, I don't recall a single job post mentioning anything else. I was hired specifically at Amica for my strong bloc knowledge and had to prove it during the tech portion of the interview. I was told later that they considered other candidates but that is what gave me the edge.
Plan on facing a lot of rejection. It will be part of the process. Keep learning, keep improving your portfolio. Keep applying.
So uhh…that's where I'm at.
It's been a helluva ride, and I'm just getting started in my new career.