Spencer Rudnick (Ableton) - How to Get a Job as an Audio Programmer

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
um yeah we come to our next speaker who also works at a very famous music tech company away well-known namely Ableton hello Spencer rhythmic so Spencer transition from web development to music software development at Ableton learn C++ learn DSP contribute to open source web audio tools yeah hi Spencer hey thanks for having me and just as a quick introduction I've been working at Ableton for about a year I started in web development as Timur said and I also use they/them pronouns so just to get that out of the way great yeah thanks thanks so much for your time Spencer and and this was this was a conversation that Spencer and I had about a month ago because one of the most common questions that I see in the community is people ask me how to get an audio programming job and I thought Spencer had a very interesting story because while I was doing a DC last year I had heard I can't remember how I think Spencer may have told me that they had actually got a job at Ableton well we were having a conversation after a DC where we were where you had said that you were working on the live team and that you were trying to learn C++ and you were working on that and I and that really caught that that really caught my ear because working on the live team of course you're working on Ableton itself and that I thought we're learning C++ but working on the live team how is that how is that working and so I thought that we would have this conversation just to discuss in a more global manner how how a person can get an audio programming job and and specifically maybe how you got your job so can you tell me just a little bit about your development journey just how you how you got involved where where are you coming from so you're you're from the states correct yeah I'm from Chicago Chicago and I actually started thinking about audio programming the first time I ever played with GarageBand I thought this is amazing but the ability to like use these computers and express yourself and do all sorts of weird stuff that the people who made the software never intended like enabling people to have this kind of experience is something that I always really wanted to do I went to school for computer science but never really did anything with audio programming until I had to learn react for a job yeah I learned react by building a web-based synthesizer and this was like I guess my introduction to audio programming and kind of kick-started everything to where I am now so yeah amazing and so what what year was this when you were writing this this this web app with react this was about two years ago okay I started making it and yeah that summer I started following a lot of people on Twitter in the web audio community mm-hmm I got more involved in the web audio slack and just learning more and more about it and along the way I've found that Ableton had a had some Web Audio projects though learning music project and since they've released the winning since project and this I guess caught my attention and I started following more people at Ableton and eventually saw that one of their managers was tweeting about a job opening and that yeah I just reached out and said I don't have C++ experience but I'm going to apply anyway yeah and so was was the job description for a C++ developer yeah looked for some experience with C++ mm-hm Wow and so how did how did that conversation go what was your first what was your first contact with the HR office what did you say um well I made it clear that I really wanted to work there and that I don't know C++ but I'm willing to learn it mm-hm since it is required there when I had to there they send you a test and when I worked on the test I taught myself C++ for a few days I actually didn't know how to change the standard version so I was using C++ 98 the whole time and had no clue about how to get any of these newer features so that was kind of a pain Wow looking back I could have done a bit more research before I just dope into the code and oh yeah that so so when you so when you did so when you did this test did they give you feedback afterwards on on how you did and what what were their thoughts um I think the the conclusion was that it was clear I was not a an audio developer I was not a C++ developer they could tell that from the code but I think what was interesting was that the way that it was structured anyway was was it showed thought and like care over what the abstractions were and its kind of thing mmm Wow so so was even more about just the technical coding itself it was more about the thought process behind the coding you know exactly yeah so I heard a couple I heard a couple elements that were really interesting to me before before this current thread so you were saying that during the time that you were starting to develop this web app that you started getting involved more with the community and you started following people that were working at Ableton deve do you feel that that was a critical part or that that was a factor in being able to find this opportunity 100% I mean I wouldn't have known that the job existed if it weren't for Twitter and also I think being part of the web audio slack I learned a lot about how active the audio programming community is in Europe and I was living in Chicago at the time but I started to I had thought about it at some points in time and learning that there was such a community in Europe lots of people really deeply involved in this and companies to work for I started to think more seriously about moving yeah very interesting and what what other factors do you feel were in played there when you were actually applying for this job so they saw that so they saw that you were able to abstract the thinking in your method for problem-solving and what what do you feel were some of the other critical elements that were in there that helped kind of push you into the next set of candidates or helped you get the job what what are some essential ingredients that you would say helped you get your foot in the door it's a good question you know I don't really know too much about other than what they told what they told me along the way um mainly which was about like the technical solution I think part of what's really important there is just to be honest about yourself and try to be open mm-hmm about what your goals are and what like you know to pretty much state clearly what it is that you hope to be doing mm-hmm I think I guess what I told them was that like they asked me what I think it was like what's your what would you do if you could do anything and I said make music software yeah amazing yes oh it's the ambition and the and and also the capacity to pick things up quickly that sounds sounds like it's important and and that's that's one thing that I noticed when I contracted in Ableton was going going into the building and of course meeting you and meeting the rest of so many other people from the team was that how much the personality and just things outside of the technical ability to code seemed to be very critical to foundation of the way that Ableton works and that there's a definite push to have a team that is more diverse and diverse in ways of thought from diversity of backgrounds I remember I remember even going through the hallway just running into Garrett heart and and I didn't even know who he was at the time and he stopped me in the hallway and get hard as the CEO of Ableton and he stopped me in the hallway and he said Josh we really need to sit down and we need to have a talk and I thought and I said oh that sounds great well hurry well who are you I'm Garrett Hardin I'm the CEO of able to that was the most amazing experience and and even and even after and even when we met from the meeting the the first thing that he said in the meeting was what can I do for you so what what is it that I can do for you and I thought wow that's just the most amazing thing that really left an impact on me for the for the CEO of a company like that to really take time out of their day to say hey how can I help you and yeah so so going back to my point it seems that that ableton have found a way to transcend the the kind of traditional way of okay let's see how good of a developer you are how quickly you can you can code through this through this problem and that it's transcended into a way that they can develop develop talent and can you tell me a little bit about once you got into Ableton so your hair you've inducted into the live team how do how does the team then take and start cultivating your growth and how do they how do they introduce you into the team in a way that you're able to actually work and and make a contribution one thing be that they made it really clear that they don't expect a really steep learning curve and they want you to like take the time and deeply understand what you're dealing with of course I mean like you want to you want to feel productive and like nobody wants to be doing nothing and making zero pull requests for six months nice so like they do a really nice job of saying well here's a here's a bug here's something that you can work on alone or asked to pair with somebody I think pair programming is a is a really big part of what's going on there yeah can you can you tell people I'm sorry to interrupt okay you tell people just that may not know what pair programming is kay kay let them know what that is yeah it's I mean it's when people take turns at the keyboard it's called like taking turns driving and it's a chance for people to kind of express code how they want to do it you know you can if you were watching someone code and it gives you know you can't control what's happening it gives you a different perspective whereas once you get your hands on the keyboard you can try something out and it's this kind of duality of watching someone else who knows what they're doing and having the chance to ask questions and say well what does this operator do I've never seen this or like what are these variables that we're talking about here and then the chance to actually apply what you're learning right away and I think it's a really fundamentally important way to learn about a piece of software that you're working on especially when it's 20 years old or something yeah that's amazing and can you tell us a little bit about kind of your growth so how long have you been in Ableton again yeah so I started in May of last year May of last year okay so you're running on about a year now and and so can you tell us about a little bit about your growth so just starting out and then now we're as much as you can say of course what sort of because I think that a lot of people that are outside of the industry may they may not be aware but there are different types of C++ developers that companies aren't there and you have people that work on the engine and people that work on more on the UI front facing things so where where are you mainly working on now at the moment yeah I'd say most of my work is in the UI I'm on the live team or other teams like that work on the devices in the DSP mm-hm whereas the live team is more about the user interface of the application the infrastructure the you know data and everything kind of on the metal that's happening other than DSP mm-hmm so mainly I'm working in this area I have done a little bit of work in the engine but nothing like beyond scratching around and mmhmm yeah but I would say like it's it's been really helpful also like work to have a mentor mmm so I did have a mentor pretty early on and we worked for about six months together we read the standard which was I say I think like kind of a brutal way to learn C++ but um you know if you want to know how C++ works like the definition of the language is a good place to look at yeah there was also a lot of time spent doing exercises to learn about memory management and different kinds of standard library algorithms and types yeah and and so another I'll pose a question to you that a lot of people posed to me which is do you have a recommendation in terms of the best way for people to learn C++ if they're starting from scratch or if it's their earth there's it's their first language there's a common maybe argument or different ways of thoughts some people think that oh I need to grab a I need to grab a textbook from Bjorn straw stroke or other people think oh I need to build something and do a whole bunch of of projects and put them on on github so what where do you stand in that sort of spectrum I mean I think it's a mix I think early on it's really useful to maybe watch some tutorials watch some some talks about memory management and learning about like the memory model in C++ I think this is super important to understand but when it comes to just the language syntax and all this stuff there's a lot you can learn just by looking at open source code and like researching something you don't understand mm-hmm and outside of the technical skills what what sort of things do you think because because you work with the team how many are in your team well my team personally we've got a designer and then we have five developers yeah and can you can you talk a little bit about the things outside of the technical aspect of thing of of coding outside the actual coding I think that people may underestimate how important these other things are can you talk a look a little bit about the soft skills that a person needs to be an audio developer yeah sure I think like one of the main things is like empathy with the user it's super helpful if you yourself are someone who's interested in using this thing or using what you're making but also I think being open to the experiences of other people is really important another one I think is like nonviolent communication within your team because a lot of the times with things like music and with like something that might look a certain way there's a lot of emotions involved and making sure that everybody is feeling safe and comfortable too express how they're feeling about some decision is super important on any team but especially one where people have their own one where people have their own interests built-in yeah absolutely and that that brings up a great point which is talking about code feedback and code review in and and I know that this is something that is very important at Ableton and at a lot of companies in terms of being able to give him feedback constructively without necessarily being abusive which kind of touches on what you were saying can can you offer some some advice to people in terms of what what are some things that we can keep in mind is it as an audio development community for being able to feedback when a person is maybe not doing the most taking the most effective approach when they're when they're coding what are what are some ways that we could the that you think we could do that or how do you how do you practice that in terms of the way that you do it in Ableton yeah I mean I so with my experience level with C++ and my experience level in the live code base I'd say most of the time I'm doing code review I'm asking questions about something that I don't understand and I think like if you are a senior developer and you have junior developers on the team who are less experienced with the codebase I think this is a super useful thing to cultivate and it's it's something where like I didn't do it on my own it was it was like I saw the other people on my team doing this even like very senior people would ask each other what's this what's that like not being afraid to look stupid or something it kind of creates this culture of teaching that is really useful so I'd say like I don't necessarily have any advice other than to like be open to questions and but that's from my own perspective and what I've found to be a really good experience from people giving code review that's great trying to think if there's anything else is there anything else that you feel we should we should touch on that we haven't yet um no I would just say something like if you are interested in it and you know a language that can do it that can do audio programming you should try it and not worry about doing it in the right framework of the right language mmm yeah yeah that's an audio programming where I already knew JavaScript the web audio path was like a really low barrier and a really fun way to get into it mmm learn and learn about like declarative audio programming and custom DSP code and yeah without having to worry too much about some kind of framework or something I wasn't already familiar with that's right and and another thing that I see in this in the same vein is that I see a lot of people worrying about doing things the right way the most optimized way the very first time around and the fact of the matter is that you're not going to because it's just impossible because there are too many I think that as you get to be a more experienced developer that you start thinking of multiple angles on your design decisions at once and that it's impossible to do that when you're unaware of the forest for the trees and and the opposite so the the biggest thing is to get started you know just to start and as Spencer said don't worry so much about the language the framework the you know these these things that people really spend a lot of time on and just get in there and get coding and and get learning and that is that's great that's a great way otherwise you just stay stuck in place and not doing any coding which isn't doing anything for anybody great well I think I think we can end things there well thank you very much for your time Spencer we're gonna open up this up to questions from the community do we have anything yeah you have a couple questions great some of them actually are around recruiting and ableton so I'm not sure how much you want to go into this but like so som asks does Ableton take interns in some cases yeah we do take interns another thing we do a lot of is like work-study so if you're in the university and you're studying something relevant they'll have students come work for a little while so it does happen but it's more often that they're looking to hire someone I think all right and then Akash asks they are a data scientist and they feel that analyzing real time software data is important and whether Ableton is doing stuff like that I'm looking for roles like that analyzing software data analyzing real time software data kind of I'm not sure I understand the question is it about like you software usage data or is it well I guess it would be whether you use kind of data science methods and apply them to all your software I think that's how I interpret the question mmm I see I mean I think it is important and there's like actually a lot of really interesting ways that's opening up right now like with um music analysis and this kind of thing I wouldn't necessarily know I don't I don't know that we're doing much about this yet yeah yeah data analysis really the first thing that that really makes me think of is machine learning that's that's one of the first things that come to mind with me yeah I don't know I've heard some interesting things about this but now I don't know I don't know that we have any openings about this right now but I guess I guess people can always go to the Ableton website and see what job openings you have and then also come get in touch if they think it would fit in but the description is that on there noting that it's I guess they can just get in touch right yeah there is there is an open application I believe so even if you don't see something if you want to send your information you think maybe I have so this skill set that would be useful I think they do accept people's applications right because that's quite a few more questions around where would I fit in a tables and things like that okay just you know refer them to that sure another question though is so that's about the current situation with coronavirus and everything whether you think that that has impacted the audio programming industry I mean since it happened I've talked to a few people outside of this like I was just actually talking to Josh about this I've talked to a couple of people who are interested in transitioning from something else into audio technology and I I don't know if it's exactly like coronavirus had an impact or if it's something about just how people evaluate their life when a big change happens so I would say maybe there's more of an interest in it and I think in a lot of ways with having to be distant maybe we need to think about how we can still be together I think we're doing that right now but there's lots of other ways that it can happen maybe in a musical context the way I interpreted that question was was something more like has as the virus itself really changed the way that Ableton as a company has had to work have you had to make a very big a very big change in your workflow or was it pretty seamless we were like an in-office company for the most part there are a few people who work remotely but by and large before this we were an in-office company now we are all working from home those two of us who have Wi-Fi are doing so then so I think with the regulations in Germany we might be starting to go back to the office in the near future but I can say for sure would you say that it was a big adjustment needing to go needing to get out of the office okay yeah there's there quite a large adjustment period I think of initially where people were really just trying to figure out how they can continue to work together yeah but I don't I don't think we're so unique in that way especially for a company that was already very tied to an office setting mm-hmm yeah going back very briefly because I have something a little something to say for people that are looking at applying to a company like Ableton or for that matter or any music technology company and thinking and what what I would say is I think the conclusion that I've found in my short experience maybe two years is that there are different ways to get in to companies some people just have the raw experience in the raw skill as a software developer to get in other people they have different ways of thinking about problems and and different different ways of approaching the situation and they understand things from a user experience and that brings a lot of validity into into a software a music software company as well and then more than anything I would say the the ambition to to learn to show that you're very into what's happening that you have the capacity to pick things up quickly more than anything is what I've seen in my experience that will actually get your foot in the door with one of these companies because when it comes one thing that I'll tell you as a person that work does work with a lot of different companies is that there aren't there there are a lot of people that can code but there aren't a lot of people that seem to have the entire package and but an entire package meaning the ability to work with people and to play nicely with people and the the ability to think of things from a user experience and not just from software development standpoint so there are a number of different ingredients and not all of them are just the technical how to code so so that's something that if you're looking at applying at one of these companies that's something that I would really just encourage you to think a lot about think about the people that are using the thing that you're trying to build and you know and things like that so great yeah and that's also very consistent with what I experienced in my career you know like sometimes you do have a very specific way a heart problem where you need like a very specific piece of knowledge but it's you know I found not to be as important as many people think and you know some people have this Rockstar developer kind of thing and you're looking for Rockstar developers I actually heard this from from companies and I just really don't agree with that because my own experience working with teams is that you know what really matters a lot more is that you know people are really passionate about what they do that people work well with my team and have each other's backs and that kind of stuff and I just found that that also leads to the team being more productive and more awesome products being created and assumed it's consistently you know so I also very much agree with that if you have time for one more question there is one from Michelle Kaufmann who is asking about the interview process so if you're being interviewed for example for a junior entry kind of software development role can you give me an example of like the problem that you would be asked to solve like an audio related one and more like a problem solving one yeah I don't think I can give away what the problems are but I think with a quick google search you might find the results I think it's not even a question about like specifically what able to not you when you apply there but more like the kinds of problems you would encounter or sure how you would whether you would have to like prepare for this especially or you know any any kind of advice you would give to someone who wants to prepare for an interview like that yeah I can't speak so I can't speak so generally but I guess I could say abstractly that like we we give away like the the probe the problem to make like a console application so you should be from the standard in and standard out and understand the kind of UNIX style of console application but other than that I think it's really just a question of like they want to they give you a problem that is about like maybe it's it's somehow related to the software they make conceptually and when you basically what you which are what they're looking for is not necessarily to do the right answer but to write expressive code that shows your thought process and I like it's it's it you know you can always choose a different data structure you can always choose a different algorithm but it's it's sort of like the Y that needs to be clearer if that makes sense I hope that answers the question really is I've been bad at asking or answering questions today no I think I think that answers it really well yeah I think that makes those sense thanks Spencer thank you again very much for taking your time and talking a lot about your experience I think that's very valuable for many many people and very interesting as well so thank you
Info
Channel: The Audio Programmer
Views: 6,936
Rating: undefined out of 5
Keywords: audio programming, ableton, audio software development, c++ audio, audio programming jobs, audio development, audio dev, ADC, Audio developer conference, juce, Ableton jobs, software development jobs, software engineering
Id: LA4QOKj8I4o
Channel Id: undefined
Length: 32min 19sec (1939 seconds)
Published: Wed Jun 10 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.