I’ve been thinking a lot about the field of audio and its prospects as a software engineer.

I’ve read a big chunk of So Good They Can’t Ignore You by Cal Newport and I’ve taken away that for the vast majority of people, becoming highly skilled at something comes before passion. We often try to find our passion first and then pursue it; however, when you examine passionate, successful people, it’s often the case that their passion (and subsequent desirable lifestyle) came after investing in becoming a “craftsmen” in their field. They built upon acquired career capital instead of starting from scratch in a new field.

I’ve read a big chunk of Soft Skills: The software developer’s life manual by John Sonmez and one of the things I’ve taken away is that a software engineer needs to specialize.

What do you call a software engineer that works in audio? An audio programmer? An audio software engineer? How about an audio digital signal processing (DSP) engineer?

What domains do such individuals work in? Music? Speech? Communications? Academia? Gaming?

Is it possible to live anywhere and do this work? Can you work remotely? Can you consult?

What technologies and concepts should one study? [1] I admire the work and business that the folks of AudioKit are creating for themselves. That could be a good place to start. They recently wrote of some project ideas that new folks can pursue. I recently purchased The Scientist and Engineer’s Guide to Digital Signal Processing by Dr. Steven W. Smith. It is available online for free. I got excited after skimming through it because it was written in a very approachable way. Should one start there? What about taking the Stanford’s MOOC course Audio Signal Processing for Music Applications. Or how about the course Physics-based Sound Synthesis for Games and Interactive Systems?

One way to start to answer these questions is to look at what the market says through job postings. As Patrick McKenzie stated, most jobs actually aren’t posted and most positions aren’t filled through job postings [2]. Nevertheless, analyzing the public record of the market can provide valuable insight.

Research

I manually went through 151 job postings. Below are my findings:

Frequency of Words in Titles

The following words appeared in the title of job postings at least 4 times.

Locations


The following are the top six locations by number of job postings:

  1. California, USA - 49
  2. Washington, USA - 21
  3. Massachusetts, USA - 21
  4. United Kingdom - 12
  5. Michigan, USA - 6
  6. India - 6

Industries

The analysis of the job postings by industry was somewhat subjective. I determined a position’s industry by looking at the company’s listed industry on it’s wikipedia page. I also considered focus areas in the job posting’s description.

Education - Degree

Education - Field

Languages

  1. DSP - 106
  2. Speech - 48
  3. Audio Formats (Transcoding, Codecs) - 41
  4. Transducers (Microphones, Speakers, etc) - 40
  5. Real-time Concepts - 35
  6. Sound Design, Sound Engineering, Acoustics - 34
  1. Noise - 30
  2. Echo Control - 22
  3. Filtering - 21
  4. Sound Effects - 12
  5. Reverb - 12
  6. Equalization - 9
  7. Fixed Point; Floating Point - 9
  8. Compression - 8

Notes

[1] At first glance, asking this question appears to go against the mindset of striving to be an excellent engineer not bound by a stack. Patrick Mckenzie makes the claim that one is “… not defined by your chosen software stack”. He says that “If a Python shop was looking for somebody technical to make them a pile of money, the fact that I’ve never written a line of Python would not get held against me.” Talented engineers are rare — vastly rarer than opportunities to use them — and it is a seller’s market for talent right now in almost every facet of the field. Everybody at Matasano uses Ruby. If you don’t, but are a good engineer, they’ll hire you anyway. (A good engineer has a track record of — repeat after me — increasing revenue or decreasing costs.) Much of Fog Creek uses the Microsoft Stack. I can’t even spell ASP.NET and they’d still hire me. [A]

I think what Mckenzie is saying makes sense. I don’t think my original question “What technologies and concepts should one study?” is in contradiction to his sentiment. Part of the reason to specialize (thus learning a stack or domain) is in order to market yourself [B]. How will people know that you are an excellent engineer? Specialization helps one market themselves and expand their network. My theory is when your reputation is established in the community, then it will likely be eaiser to be in a situation where you are hired to work on technologies you aren’t familiar with as Mckenzie expresses.

[2] McKenzie wrote, ‘“Read ad. Send in resume. Go to job interview. Receive offer.” is the exception, not the typical case, for getting employment: Most jobs are never available publicly, just like most worthwhile candidates are not available publicly (see here) …’ [A]

[A] McKenzie, Patrick. Don’t Call Yourself A Programmer, And Other Career Advice. Blog. Kalzumeus Software Blog. Publish 29 October 29 2011. Web. 28 July 2017.

[B] Sonmez, John. Should Software Developers Be Generalists or Specialists? . Blog. Simple Programmer. Publish 19 June 2017. Web. 13 August 2017.

Data

Title Company Location
Senior Digital Signal Processing Engineer Harman Mountain View, CA
Senior Audio System Specialist Apple Culver City, CA
Research Audio Software Engineer Oculus Redmond, WA
Research Scientist, Machine Learning & Signal Processing Oculus Redmond, WA
Audio DSP Engineer Oculus Redmond, WA
Software Engineer, Spatial Audio Processing Google San Francisco, CA
Software Engineer, WebRTC Google Stockholm, Sweden
Audio Systems Engineer Google Mountain View, CA
Software Engineer, Android Audio Google Mountain View, CA
Audio Systems Engineer, Living Room Google Mountain View, CA
Audio Systems Engineer, Consumer Hardware Google Chicago, IL
Acoustics Engineer Google Mountain View, CA
Senior Electrical Engineer (Audio) iZotope Cambridge, MA
DSP Research Engineer-Music Information Retrieval iZotope Cambridge, MA
Senior Software Engineer iZotope Cambridge, MA
Software Engineer iZotope Cambridge, MA
Manager, Software Engineering, Audio, R&D Sony San Mateo, CA
Audio Programmer - Contractor Magic Leap Plantation, FL
Sr. Audio Signal Processing Engineer Magic Leap Sunnyvale, CA
Audio Systems Speech Software Engineer Magic Leap Plantation, FL
Audio Systems Services Software Engineer Magic Leap Plantation, FL
Sr. Acoustical Algorithm Engineer - Audio (UE) Logitech Camas, WA
Sr. Firmware Engineer - DSP Audio (Assembly C) Logitech Camas, WA
Sr. Electrical Engineering Manager - Music (UE) Logitech Camas, WA
Sr. Technical Project Manager - Consumer Electronics (Music/Audio) Logitech Newark, CA
Mobile App Developer - Audio/Music (iOS, Android) Logitech Newark, CA
Firmware Engineer Logitech Newark, CA
Principal Development Engineer - Ultimate Ears (UE) Logitech Camas, WA
Senior Audio Software Engineer OSSIC Corporation San Diego, CA
Senior Speech Research & Development Engineer Digital Voice Systems, Inc. Westford, MA
Platform Software Engineer (SDK) Universal Audio Boulder, CO
Senior Software Engineer Universal Audio Scotts Valley, CA
Sr. Audio DSP Research Engineer Microsoft Redmond, WA
Software Engineer Microsoft Redmond, WA
Software Engineer Microsoft Redmond, WA
SOFTWARE ENGINEER II Microsoft Redmon, WA
Software Engineer II Microsoft Redmond, WA
Software Engineer II Microsoft Redmond, WA
SOFTWARE ENGINEER II Microsoft Redmond, WA
SOFTWARE ENGINEER II Microsoft Redmond, WA
Senior Software Engineer Microsoft Redmond, WA
SENIOR SOFTWARE ENGINEER-MUSIC EXPERIENCE Microsoft Redmond, WA
Audio System Engineer Bose Stow, MA
Audio System Engineer Bose Stow, MA; Bloomfield Hills, MI
DSP Engineer Co-op/Intern Bose Framingham, MA
Mixed Signal Electrical Engineer – Advanced Development - Automotive Bose Stow, MA
Systems Engineering Fall Co-op Bose Bloomfield Hills, MI
Senior DSP Engineer Bose Framingham, MA
Entry/Mid-Level Acoustical Engineer Bose Framingham, MA
Sr. Software Engineer Bose Framingham, MA
Principal Software Engineer (Windows C#/C++ Superstar) Bose Framingham, MA
Senior Acoustic Engineer Bose Framingham, MA
Firmware Engineer Bose Framingham, MA
TTS Research Engineer Nuance Turin, Piedmont, Italy
TTS Research Engineer Nuance Merelbeke, Flanders, Belgium
Audio Engineer Nuance Farmington Hills, MI
Audio Acoustical Engineer Motorola Solutions Plantation, FL
Mixed Signal Audio Applications Engineer Cirrus Logic Beijing, China
Mixed Signal Audio Applications Engineer Cirrus Logic Austin, TX
Mixed Signal Audio Applications Engineer Cirrus Logic Austin, TX
Senior Acoustic DSP Applications Engineer Cirrus Logic Taipei, Taiwan
Software Applications Engineer - Audio Amplifiers and Algorithms Cirrus Logic Austin, TX
Applications Engineer Cirrus Logic Edinburgh, Scotland, UK
Principal Research Engineer Cirrus Logic Madrid, Spain
Machine Learning Engineer Cirrus Logic Draper, UT
DSP Firmware Engineer Cirrus Logic Austin, TX
Audio Machine Learning Engineer Cirrus Logic Draper, UT
Senior Research Engineer Cirrus Logic London, UK
Software Engineer, Audio Cryptic Studios Los Gatos, CA
Senior Software Engineer, Speech/Audio Genesys Indianapolis, IN
Sr. Embedded Software Audio Engineer Fitbit Boston, MA
Senior Audio Systems Engineer Fitbit Boston, MA; San Diego, CA; San Francisco, CA
Sr. Audio DSP Firmware Engineer Fitbit San Diego, CA; San Francisco, CA; Boston, MA
Software Engineer - Music / Audio Applications MOTU Cambridge, MA
Audio Programmer Hangar 13 Novato, CA
Audio DSP Engineer Apple Culver City, CA; Cupertino, CA
Audio Driver Engineer Apple Santa Clara Valley, CA
Siri Speech Audio Engineer Apple Santa Clara Valley
Spatial Audio Software Engineer Apple Santa Clara Valley
Core Audio Software Engineer Apple Santa Clara Valley, CA
Audio DSP Engineering Intern Apple Santa Clara Valley
Core Audio Software Engineer Apple Santa Clara Valley, California
Audio Systems Software Engineer Apple Santa Clara Valley
Integrated Audio Acoustic Engineer Apple Santa Clara Valley, CA
Acoustic Engineer, Integrated Audio Apple Santa Clara Valley, CA
Core Audio System Software Engineer Apple Santa Clara Valley
WiSE Baseband Audio Software Engineer Apple Santa Clara Valley, CA
Digital Audio Software & DSP Engineer - Platform Architecture Apple Santa Clara Valley, CA
Acoustics Engineer, Beats Acoustics & Audio Apple Culver City
Speech and Signal Processing Engineer Apple Santa Clara Valley, CA
Audio Software Engineer, Tools & Infrastructure nest Palo Alto, CA
Senior Engineer- Audio-DSP Qualcomm Noida, India
Audio Systems Engineer Qualcomm Hyderabad, India
Software Engineer - Audio Technologies Qualcomm Cambridge, UK
Audio DSP Developer Qualcomm Bangalore, India
R&D Engineer - 3D/VR Audio Qualcomm San Diego, CA
Audio Researcher Codec Qualcomm Auburn Hills, MI
Software Engineer – Smart Audio Products Qualcomm Bangalore, India
Software Engineer – Smart Audio Products Qualcomm Cambridge, UK
R&D Engineers – Machine Learning (Audio/Speech) Qualcomm San Diego, CA
Senior Software Engineer - Smart Audio Products Qualcomm Cambridge, UK
Graduate Embedded Software Engineers - Audio Technologies Qualcomm Cambridge, UK
Experienced Embedded Software Engineers - Audio Technologies Qualcomm Bristol, UK
Audio Systems Engineer (San Diego, CA) Qualcomm San Diego, CA
Senior Manager, Product Marketing Qualcomm Shenzhen, China
DSP Software Engineer Qualcomm Auburn Hills, MI
Product Manager, Staff Qualcomm Shenzhen, CA
Experienced Deep Embedded Staff Software Engineer - Audio Firmware, Qualcomm UK Qualcomm Cambridge, UK
R&D – Voice UI Software Engineer Qualcomm Shenzhen, China
Bluetooth Embedded Apps Developer Qualcomm Bangalore, India
SW Research Engineer Qualcomm Auburn Hills, MI
Platform Systems Engineer HW/SW Qualcomm San Diego, CA
Audio Programmer Turtle Rock Studios Lake Forest, CA
Audio and Acoustic Engineer Lenovo Chicago, IL
Director Audio Strategy & Standards (24561) Dobly Stockholm, Sweden
[Summer / Fall Session] Software Development Intern (27161) Dobly San Francisco, CA
Senior Software Developer Dobly Barcelona, Spain
Software Engineer, Sound Technology R&D Dobly Wroclaw, Poland
Sr. Applications Engineer Dobly San Francisco, CA
Senior Audio Engineer Amazon Shenzhen, China
Senior Audio DSP Engineer Amazon San Francisco Bay Area, CA; Cupertino, CA
Sr.Software Development Engineer - Audio Amazon Seattle, WA; Bellevue, WA
Software Development Engineer- Audio Amazon San Francisco Bay Area, CA; Sunnyvale, CA
Senior Audio Engineer Amazon Seattle, WA; Bellevue, WA
Senior Software Development Engineer - Audio Amazon Boston, MA; Cambridge, MA
Senior Research Scientist - Audio Amazon Boston, MA; Cambridge, MA; Sunnyvale, CA
Sr.Software Development Engineer - Audio Amazon San Francisco Bay Area, CA; Sunnyvale, CA
Audio Software Engineer Wargaming Chicago, IL
Audio Software Engineer Wargaming Baltimore, MD
Machine Learning Algorithm Developer for Music Content Analysis Yousician Helsinki, Uusimaa, Finland
Music Transcription Algorithm Developer Yousician Helsinki, Uusimaa, Finland
Software Engineer - iOS Shazam London, UK
Software Developer zenAudio Berlin, Germany
Software Engineer (Web / API) Jukedeck London, UK
Senior iOS Engineer BandLab Technologies Singapore
iOS Developer (m/f) Mimi Hearing Technologies Berlin, Germany
Software Engineer - Audio/DSP Systems Smule San Francisco, CA
Software Engineer - Audio FX Engineer Smule San Francisco, CA
Sr. Software Engineer, New Products, Audio (Expert) Roku Los Gatos, CA
Sr. Software Engineer, Audio Roku Austin, TX
Sr. Software Engineer, New Products - Audio Roku Los Gatos, CA
Software Engineer - Media Thinking Phones San Jose, CA
Audio Programmer Splash Damage Bromley, London, UK
Audio Programmer Media Molecule Guildford, UK
RTC Audio Specialist Facebook Seattle, WA
Senior DSP Engineer (Audio) Agile Atlanta, GA
Embedded Android Developer (Audio Domain) Agile Atlanta, GA
Acoustic Research Engineer (AR) Oculus Redmond, WA
Sr DSP Engineer QSC Costa Mesa, CA
Software Engineer - Machine Audition SoundHound Santa Clara, CA
Senior Software Engineer - TTS SoundHound Santa Clara, CA