*intro music* CHRIS: Welcome to Elixir Outlaws: The hallway track of the Elixir community *music* ANNA: Yay, we’re ready. Yeah, are you excited? Are you excited about your new gig? CHRIS: I’m very excited. I’m already antsy to start working. Which, I don’t know what - I think that’s maybe because I’m a broken human being. I’ve only had a week off and I’m already ready to get back to work. It’s taken a week just to kind of get over my guilt of not working, to some degree. And I think it is guilt - there is some amount of guilt of not being constantly busy or having some amount of anxiety or stress or things to fill up my mind. I mean, the first few days, I sat there and I intentionally sat in my hammock and I sat with my kids, and I read some books, but I could not get over this pervasive feeling in the back of my mind, like, I should be doing something else, or I should be doing more productive things, or I should be working on my house, or working on fixing up my garden - even things that I normally find retreat or pleasure in - the fact that I wasn’t working on them was giving me anxiety. ANNA: So do you feel at all rested, given that you just had a week between…? CHRIS: I do now. I feel rested now. It took me about a week to detox. To get over the feeling of constantly need to do the next thing, or be involved, or be in IRC and constantly be checking in on stuff, or be looking at GitHub issues, or be contributing to some discussion or something like that. It took me about a week to get over it. And now that I’m over it, I’ll be starting my new job. ANNA: That’s exciting. Is there anything you’re particularly excited about in regards to Elixir at Bleacher Report? CHRIS: Bleacher Report has the problems I’m trying to solve - problems with scale and problems with reliability and messaging, and all these things that you don’t always get at different jobs, because, you know, forever when I was doing consulting, that was the thing I was really wanting, was, I was really wanting to solve these bigger problems. And I think that’s why, at the end of the day, why consulting never quite worked for me long term. I mean, it might be something that I go back to at some point in my future. It was one of the reasons I was really having an internal struggle with that, and that’s one of the reasons that I ended up leaving it, is I wanted to solve different problems. It was my experience that companies just don’t outsource that kind of stuff all that often. So, it’s harder to get experience solving those kinds of things. And there’s some real drawbacks to taking on problems like that or going to a product company, as opposed to a consultancy. You deal with tech debt, a lot more. Most of programming, I think, is dealing with tech debt. It’s very rare that you actually get to just get up and code something new, and you’re done with it. The majority of the time, software’s life is spent being refactored, not being created. ANNA: No, that’s true. CHRIS: I think there is some of that. And for some people, that’s going to be a drawback, because that’s not as exciting to them, or not as interesting to them, and I think that’s valid. You have drawbacks like, you have to be on call. And you have to be around when stuff goes wrong and you’re going to be responsible for it whenever it goes down at three in the morning, or whatever the case may be. And that can be a drawback, too. Certain people just aren’t interested in that. I kinda think that those sorts of problems - they come with the territory. Like, having to be on call is part of getting to solve really hard problems. It’s a bit of… you have to eat your broccoli to eat your cake. If you want to be working in that sort of capacity, on those sorts of problems, then you’re taking the good with the bad. And some of the bad might be, yeah, stuff is down and you gotta be up and fixing it, but I’m okay. Like, personally, okay with making that kind of trade off, because, by and large, the benefits for me outweigh the risk. ANNA: Yeah, totally. That makes a lot of sense. It’s exciting, or it least it will be from what I hear. CHRIS: Yeah, I’m really excited about it. Ben has already been messaging me with ‘how would you start to think about this’ or ‘how would you start to think about putting these problems together’. And that’s been very exciting - like getting a little flavor of how we’re going to build these things. ANNA: And they’ve done such a good job, right, Bleacher Report being one of the big cases people tend to talk about shifting from something to Elixir. CHRIS: To me, they’re the original success story. And I know that’s maybe not - that might be revisionist to some degree, but I think they were one of the real breakout companies that proved that Elixir was a viable option, that proved you could get these real benefits. And now we have a lot more success stories to go along with that, which we’ve talked about before, but, yeah, I’m excited to go to a place where they have seen that success so they’re already bought in on it. They’re not worried about, ‘oh should we be using Elixir or not’. They’ve already decided. They’ve already bought in and they’re a part of the community. ANNA: I hear that from a lot of folks - they’ll come up to me and say, ‘I want to adopt Elixir in my company’ - I think we’ve talked about this a little bit, right, but - ‘how do I get buy in?’ And I think Ben did write a really good book with some folks about that. But it’s hard, right? It can be hard to get the buy in. Like, what do you think is the most effective approach, right? I guess it differs depending on the context and the company, but if someone were to ask you that, what would you say? CHRIS: Oh, man, it’s tough. If I knew how to do that, um, I don’t know. My life would be a little bit different. I think it’s a really hard problem, and I don’t think it’s specific to Elixir. Although, there are specific deficiencies in Elixir right now that make it harder to adopt, but I think a lot of it is just marketing. And I think that’s crappy, because there’s a subset of programmers that want things to be based on merit - we use this term a lot - ‘using the right tool for the right job’. And I call BS on that completely, not because I think that that idea is wrong, but because I don’t think anybody does that. I think very few people actually choose the quote ‘right tool for the right job. And it is used locally. I don’t think anybody is sitting there saying, ‘well I need massive concurrency, so I’m going to use XYZ language’. Or, ‘I need this technical characteristic, thus we chose this’. That is a part of how people make decisions, but, at least in my experience, it’s a very very small part, and the majority of it is, ‘what does my team want to do? What can I hire? What are my people excited about using, and how do I get the most people involved in this process and what do we have the most domain knowledge about?’ etcetera. You know, if you look at a venn diagram and you have languages just scattered across this thing, all of those things, all the human parts, are the original big circle of things, and then you pick inside of that circle based on technical merit. ANNA: I think that’s really interesting. I think that’s… totally valid. I mean, there’s so many other factors in addition to just the language that you’re using. And I think that people would like to always choose exactly the right tool, but again, there are so many other factors. And we know that software is not just technical problems, you know, there are so many human factors involved in order to make something, to take an idea and ship it to production, right? CHRIS: At the end of the day, I think you can make anything work long term. You can make any language or run time do whatever you need it to do, and you’ll just make it work. You’ll just spend enough time - if you’re invested in it - ANNA: And have the money to do it. CHRIS: Right, yeah, up until the money runs out or your people all leave, you’ll put the time and effort into making it work long term. There’s tons of anecdotes about this, whether it’s Facebook making HP work, forever, or it’s GitHub scaling Ruby and Rails, or, people doing all these things to just make those solutions work, and they put time and money into it. And they do that because that’s part of the culture, that’s part of the tool of choice, whatever the case may be. And that’s not to say people always don’t choose new languages. I mean, people do that. They pick new runtimes, obviously, but I think it comes down to so much of ‘what is your team willing to invest in?’ because you have to invest at some level. You have to learn the tooling, you have to learn these languages, you have to learn the infrastructure, or at least somebody does. You can’t work from the outside and not get involved if you’re going to make it work long term. You’re going to learn those internals, you’re gonna learn about, you know, what are the new features coming to this language, or what’s the new tool set. You’re going to learn something, obviously. I think that’s why most people choose to invest in things that are pretty safe. It’s why they chose to invest in things like C#, Java, JavaScript, just because those are reasonable choices. They’re close at hand, you can find people to work in those solutions, and you figure out the technical problems with it after the fact. ANNA: It’s definitely interesting. And I think about it, like, as the Elixir community grows, and Ben came and gave a talk about how they did at Bleacher Report, where they took avery small slice of their application and just converted that, and piece by piece were able to transition their stack. But it does take buy in, right? People being like ‘yeah, okay, let’s do it.’ CHRIS: The argument that I hear a lot when you look at a success like Bleacher Report, and why I think they are a really good example of a success story is they are that sort of breakout example, but in some ways, they’re not the best example for Elixir, over all, and the reason is - the pushback I get is, ‘well, they were successful because they got something out the door, they made it work on Ruby and Rails, and when they actually had scaling problems, they rewrote’. That is a very common story now - ‘we had this thing, it was in this other language - it was in Java, it was in Python, it was in whatever. Now we’re rewriting it in Elixir because we understand the domain more, we know the characteristics of it, we needed to scale more, etcetera, etcetera. We had all these reasons to move to Elixir, and now we’ve rewritten. And the pushback that I hear when I bring up those stories is ‘but they were successful because they had a proven thing, and they didn’t spend a lot of time writing it in Elixir up front, and they wrote their initial prototype in something that was proven, something that we all knew worked, and something they could rapidly iterate on and get out the door quickly.’ And so to that end, in some ways, they are a really really good example for established companies who are looking to solve specific problems, but in other ways, they’re not a great example for a company that is just getting started, or just getting off the ground, like ‘what’s the reason? Why should I choose Elixir, knowing that I have to prove that my business is successful first, knowing that I have to gain customers or prove that my idea makes sense in the market. Why wouldn’t I just slam Rails on it and just knock that out and Gem install my idea, and away I go?’ ANNA: Do you think there’s reall that much - I’m curious - that much of an amount of time between that and - I mean I guess there’s a little bit more overhead with Elixir - if someone knew Rails and didn’t know Elixir, sure. But if we assume that you didn’t know either, and you were choosing something new. CHRIS: For me personally, my argument is that you don’t lose any speed. You get into it, and you never have to rewrite. You can still build things quickly, and you can still iterate quickly, and you can get things done. But I’m not sure we’ve marketed that well to that crowd. I mean, if you look at the Ruby community - and I know, we always talk about the Ruby community, and I often wonder if that’s a good or a bad thing. I mean, it’s where we all came from - it is our context, but also, I have this suspicion that, as a community, Elixir needs to shed that, because I don’t know it it’s helpful anymore. But that’s a different conversation. The thing that the Ruby community has, which I think is really interesting is that,the Ruby community has 100% internalized that Ruby is slow. If you talk about the fact that Ruby is slow, no one cares. And no one cares because we know that it’s slow and we have ways around that. And the tradeoff there, that most people will tell you, ‘I can get so much more done in this language. I have all these Gems I can install, or I have this really elegant, simple language where I can just get things done really quickly.’ And that’s a market. In a vacuum, that argument makes no sense technologically. If we made decisions based on technical merit alone, there’s no way that Ruby would have ever won. The simple fact of the matter is, we don’t make decisions based on technical merit alone. Honestly, the greatest example of that is Ruby. Or the rise of JavaScript. These are languages that have a lot of flaws in them from a technical perspective. And yet, they are incredibly, incredibly successful. And most of that is marketing. It’s about people things more than it is about technical things. ANNA: Well, I mean, JavaScript a little bit, just because, the browser, but yes. CHRIS: Well, yes. But back in the day, too, JavaScript wasn’t the only solution to this. But JavaScript won over a bunch of other solutions - some of which were arguably much better, but because of marketing, it didn’t matter. So, from a marketing perspective, Elixir has to pick a competitor it can beat. Obviously it can beat Ruby in some ways, obviously concurrency, obviously scale. Like, these are things that we talk about a lot. That’s gonna attract a subset of people, but it’s not - I don’t think it’s actually going to attract the vast majority of Ruby, because I don’t think the vast amount of Ruby cares. That’s not what they’re optimizing for. And so it’s a bad competition in some ways, because you have to work so hard to beat them at their own game. To the degree that I don’t know that you ever will. ANNA: Well, and how would you? How would you sell Elixir? CHRIS: I’m really glad I don’t have to be the one to make that decision, because I’m honestly not sure that I have any good ideas. ANNA: And I’m also not sure it’s just factor of, unfortunately, time. I mean, Ruby community - I know we talk about the Ruby community a lot, but it’s older. It’s had a lot of time to figure these things out, figure out what it’s good for, and Rails, right. That brought a whole new wave of folks that were able to do a certain thing quickly, etcetera. It just takes time, on some level, to figure out exactly what - who are those people that need this particular language and this particular tool, and for what? That takes time. CHRIS: I’ve often wondered - and this goes back to the idea that maybe we’re doing ourselves a disservice trying to pull so much from the Ruby community. I think there’s great things that Elixir has brought from the Ruby community, in terms of sensibility, in terms of ease of use, and those sorts of things, but I’ve wondered if we should stop trying to attack that market, so to speak, in terms of attracting those people, and maybe the right market is the DarkMatter, C# people. Or the DarkMatter Java people, where you can kinda point to the technical reasons - you can get stuff done just as quickly as you can in Java, and now it’s also fault tolerant, and now it has these great characteristics, or whatever the case may be. And I’ve wondered if that’s maybe a potential market that Elixir should be looking at. And it’s hard. You end up competing against solutions like Go. Again, just from a purely market perspective. I think Go has some really compelling features that Elixir doesn’t have yet - and maybe never will have. And that could be the difference between marketing to that crowd and not. I dunno. It’s though. I’m not complaining - maybe just being negative on my outlook, but it’s gonna be a long row to hoe. It’s gonna be a hard problem to solve for the community, of, how do we market to different audiences, what are those audiences looking for, and how do we pick a certain niche. And just say, ‘this is the one we’re going after, and how do we do that?’ ANNA: Well, I want to go back to something - maybe - let me know if you don’t actually want to comment on this - but I want to go back to what you said about maybe the Elixir community distancing itself from the Ruby community - I don’t know if you want to say more about that or not, but that’s interesting. CHRIS: Yeah, I can talk about that. Ah, I mean, I think it manifests itself in two distinct ways. One is where I’m not sold that that’s an audience that we’re gonna go capture immediately. Because, I don’t think we can beat them at their own game. I don’t think we can beat them at being the solution that gets stuff out the door faster, or is more productive, if that - you know, people like to throw that around, like ‘we’re so productive in this language’. Well, that’s like an unknowable thing. In terms of a comparison between languages, you can’t say one is more productive than the other. That’s like, an unknowable metric, but people do say that. And that’s purely in their heads - it’s whatever they’re comfortable with. But at the same time, I don’t think we’re gonna beat them at that marketing. So I think the people that want to leave Ruby that have alternatives have already done so, or are already going to do so. Like, I’m not sure that we need to do more effort there. The other thing to keep in mind is that a lot of people are coming to Elixir now that aren’t from the Ruby community. And how much do we ingratiate ourselves with those people if we’re still talking about Ruby - I mean, we’re doing it right now. If we’re always talking about Ruby, or we’re bringing Rubyists in to speak at conferences, or we have all these Ruby in jokes, or it’s - it’s funny to kinda poke at Ruby because it’s slow, or it’s funny to poke at Rails, or it’s funny to make comparisons between Phoenix and Rails, because that’s a thing people do, it’s a funny thing - and I’m not saying that it’s right or wrong or whatever, you know, but people make those jokes and those comparisons, and we have a bunch of other people now that have come from other languages - like, I know a bunch of people that have come from C#, and they don’t get all those comparisons. They don’t get the in jokes, they don’t get the baggage that’s happened. And a lot of times people will just be like, ‘I don’t get it’. I’ve had people literally tell me, ‘oh, I don’t get it. Is that like a Ruby thing, is that why everyone is hung up on this? Is this why people are upset, or really excited about this?’ And they don’t really have a reference for that, and I wonder how often we distance ourselves from other people because we’re - to some people I’m sure it feels like Ruby community 2.0. ANNA: Right, yeah, I totally get what you’re saying. I think one of the reasons we talk about the Ruby community so much - from the positives, at least, is the things that they’ve done well. I think there’s a lot that Elixir has taken positively, as far as building a community, if you think about it - Ruby community has done that really well, and I think we sort of - it’d only harm the Elixir community to not think about those same things when building a community, and all that - but I totally hear what you’re saying as far as the community defining itself - or starting to define itself, or continuing to define itself, right? CHRIS: I don’t know - what do you think about that? Do you think that’s a reasonable thing that we should be concerned about? Are we - am I making too much out of that? ANNA: Um, I think it’s good for a community to think about what defines the community - as the community grows, it’s good for it to have its own principles, and to think about how it welcomes people that are coming in and continues to support the people that are already there. I think that’ll happen over time - maybe that’s not the right thought process to have, but I think maybe - I’m not worried about the Elixir community trying to distance itself from the Ruby community, because I think it already is a separate community. I think Rubyists have come in, but like you said, other people already have started to come in. And as the community continues to grow, I think that will help further define the community itself. I think there will be a more natural definition between the two - not good or bad. Just that the community will continue to define itself and form and grow and have its own identity. I think, just like any other thing, it takes time. We’re comparing ourselves to a community that’s much older, and so, I think these things will inherently evolve over time. And I think that taking the good, and thinking about what we don’t like, or would do differently, and being conscientious about that, can only help to serve the Elixir community going forward. I dunno. Take that for what you will. CHRIS: I think you’re right - well, and to some degree, the whole thing is a little silly, because it’s about a group of people surrounded by a programming language, which is just always funny to me when we talk about language communities. It is always interesting to me how they grow and how they shape each other, and how they change - it’s a big part of why people - these aren’t technical decisions - these are human decisions. The fact that we’re sitting here talking about it now, points to the fact that it’s about human beings much more than any technical stuff. ANNA: Well, and, to that point, right, if we don’t have an environment that people don’t want to hang out in or contribute to, then your language - if your language doesn’t get used, your language dies, essentially. I think it’s good that people recognise the importance of that. But, yeah, it’s definitely a human - the language itself isn’t enough. The language can be amazing, but if nobody feels like they want - if they don’t feel comfortable communicating about it or engaging with the community, then chances are they won’t want to use it, right. So I think it’ll be interesting to see what happens. People will be coming in from all sorts of different languages, and seeing how they’re - and you know, it’s great right, how their different perspectives will help propel the community forward. CHRIS: Yeah. I’m really excited about that. I’m really interested to see what people do with Elixir. I always say this in my talks, and I’ve aid it on air before, I think, but these are so - it’s still so early. I think we’re jumping towards ‘what are the best practices’ or ‘how do we start to do this or that’ or ‘how do we solve these specific problems’ and ‘what’s the library I install that is the best’ and… I don’t know. To me, it’s still so early in the community’s life… I would be a little disappointed if this is all we could do - if we all said ‘alright, well, these are the best ideas everyone’s had, and we’re going to use those, and they’re distilled down’, and I don’t know - I would be a little bit bummed if everybody in the community just said ‘okay, here’s what we’re gonna do’. I think it’s such a great time to take chances and try new stuff, because it’s pretty low risk. And also, you might come up with the idea that is the brilliant new idea that will change the face of the industry. That’s really exciting to me. That’s really compelling. Because I think it’s a fun time. ANNA: I totally agree with you. That being said, how do you - I think the community is doing a pretty good job, actually. But how do we maintain for new people coming in who want - who are new to the language. A lot of it is ‘what is the best way to do this thing’ or ‘how do you scale appropriately’. Or, we’re talking about supervision architecture, and how does that apply in a way that’s actually effective? How do you know you’re not actually creating something that’s not gonna work, just based on the way you’ve set up your systems. So, it’s a balance, in a way. You just have to start pushing forward, and then still providing a little bit of that - because we don’t have - you’re right, it’s still evolving, and there’s still so much that’s happening, and I also would like to think that this is very early in the beginning, but people do have those questions, so, without setting things in complete stone, how do we also provide that guidance? Especially for people who want that - I think there are people who are just starting to adopt something for a new project, or companies that are just starting to adopt something. How do we do this in the best way possible, right, best practices, etcetera? CHRIS: That’s a fantastic question. Like you said, you have to have a balance. And I think, number one, one of the best places to point people - there’s a couple really good resources for newcomers. And obviously, people who are coming in - they’ve heard about the language - they’ve heard about the tools that make it really popular. I mean, Phoenix, Nerves… those are two words that attract people. People know those words coming in. They know what to go look for, and if you follow the documentation for those things - if you read the Phoenix book, if you read Lance’s book. Any of that. If you just go dive into those things, you’ll come out knowing what you need to know. The second tier of that is, pointing people at the stuff that has existed for a long time. All the knowledge that is wrapped up in the Erlang community, which is sometimes really hard to go get, or really hard to understand, but there’s really good knowledge in that, and there’s even more great libraries that are already in the Erlang ecosystem, and we can start to learn from those folks, because they’ve been doing this a lot longer than us, and they have a lot of really great libraries, and really great hard won knowledge about, like, what is it like to have failures, you know? It wouldn’t be an episode of the show if we didn’t talk about Fred in some capacity, so go read Erlang and Anger, and learn all that stuff in Erlang and Anger, because it’s got some great information in there, especially for us as Elixir people. Not all of it is as applicable to us, but the majority of it is - the vast majority of that book is. And so, if you’re new, coming in, there’s definitely things we can point to people. And I definitely don’t want to suggest that we don’t do that, but I do think there is an imperative for us as Elixir people to do two things. One is - if you’ve been in the community for a while, I just want to encourage people - go invent new stuff. Go invent your new thing that solves this problem, because you’ll learn a ton about it. And you’ll probably learn about why the library you’re using chose to do things the way it did, and you’ll have a deeper understanding of specific pieces of the beam or pieces of the language, you know. Like, ignore all the rules. Just go build stuff and go use Macros the whole time, and learn about how Macros work, and enjoy that. because, what? Maybe don’t ship that to production, but who’s going to actually be upset by that? Go learn about those things because they’re important, and go try out stuff, because you might find out stuff that’s really really good. Another piece of that is - I think we have to be willing to listen a lot to the experiences of people coming in from the outside world. We have a lot of this already from the Ruby community. And that’s not to say that it isn’t valuable, or it’s bad. You know, as we attract people in from C#, from Java. I mean, I have friends who are coming in from Closure. And a lot of people that are working here in town - there’s a startup here in town called Pylon, and they all have a background in Closure. They did Closure for very very large companies. They’re coming to Elixir now, because it’s - as they say, it’s basically easier to hire Elixir people than it is to hire Closure. And they have a ton of very very different sensibilities, than I definitely do. And I always suspect that a lot of the Elixir community does. They just look at certain libraries and opt to do it themselves, because they have different sensibilities coming from Closure. I think if we look at those other communities and listen to the ideas that they have as they come in, we’re gonna grow, and we’re gonna find solutions that we didn’t realise were there. Everybody has those blind spots. Everybody has those things that they take for granted now that they just do, and those are the best practices we had in XYZ framework or XYZ technology or whatever, but, it turns out, not everybody’s past experiences are the same, right? Listening to those people provides you a whole new set of insights. For instance, go look at the Haskell community. What are they doing in the Haskell community? What are things that Closure did really well? What are things that the F# community is doing? How is the F# community working with the C# community and what did they do wrong? How do we make sure we don’t make those same mistakes in the merger of Elixir and Erlang, and how do we do the things that F# and C# did really really well in the merger of F#? How do we take advantage of that? What did closure do really well working with the Java community? How can we be better about that? I think there’s so many other places to pull good ideas from, and I want to encourage people to take advantage of these things, to look at the alternative solutions, and to think about what it might be to have those sorts of things, or to lean into those kinds of ideas more. ANNA: Like you said, it’s still early in the community now, and there’s an opportunity to do that. And I think that there is a really interesting opportunity to not define the community going forward, but to bring in the things that you would like to see. Is there anything that you would like to see in the near future as part of the - brought to the community? CHRIS: I always feel like I have to be so careful when this kind of stuff gets brought up, because you run the risk of sounding overly critical, but I don’t want to do that. I don’t want to just be critical… I dunno. I’m curious to see what the alternatives to some of the well established libraries would look like. You know, there’s Racks that exists now, which is more of an alternative to Plug than it is to Phoenix, even. Um… I don’t know if it’s fair to have an alternative to Phoenix, because to me, it’s just the channels. And Plug does the heavy lifting in Phoenix. So Phoenix is like a template library in channels. But, you know, Racks is out now, and it’s an alternative to Phoenix, and I’m glad it exists just because it makes everybody better. I think it makes the community better, because having competition is a good thing. Having competition is great because it forces everybody to be better. I find myself reaching for Mobius a lot when doing database stuff, because most of the time I’m doing postgres anyway, and I really like Mobius. I think it’s a great tool. And that’s not to say that Ekto is bad, or that Phoenix is bad - those are great tools. I’m just interested in what an alternative solution might look like, just because I think it - it’s interesting. One of the reasons I’ve been working on a Raft implementation for so long is because I want to know what that looks like. I want to know what the community does that if that exists. And there are a bunch of others - and I got, like, subtweeted by some fancy distributive systems Erlang people complaining about all the Raft implementations that are out there, so I’ve been accused of reinventing the wheel as well, but part of me is like, ‘well, because I was really curious to see what would happen if you had a real Raft implementation that used a real database store, like Rocks or LMDB or stuff like that. What would happen?’ You know, there’s plenty of AP solutions out there in the world for Erlang and Elixir. You know, you can use Lasp - Lasp is a thing - uh, Reac. ReacCore is a thing. You can totally use all that stuff and build solutions that way. And it’s very interesting. I’m curious to see what people would do with a solution that didn’t look like that - that had different semantics. What would people do with that? If anything. And maybe the answer is nothing. I’m cool with that. I’m 100% cool with throwing my time into a ditch, and just walking away from it, because it’s interesting, it’s fun for me, just to see what people do with it. Just because it may or may not have an impact on the community. I don’t know. But, it’s fun. It’s interesting. It might get people to think a little differently about problems, and that’s kinda enough reason for me to do a thing. ANNA: Like you said, having alternatives doesn’t necessarily mean that the things that exist are bad. It’s just exploring other ideas - other opportunities, and differing perspectives - allowing for those differing perspectives to be expressed, which in the end, allows us to continue to come up with better solutions or improve on the solutions we already have. CHRIS: I don’t know that anybody would really argue that having just one solution in any given language would be the optimal way to go about it, because that very quickly would just lead to stagnation. We just wouldn’t progress because there’s no imperative to progress. So having that competition is a good thing, long term, because it’s gonna force us all to pick and choose and figure out which things work for which problems we have, and it’s gonna make us all get better. I dunno. That’s a good thing. ANNA: No, totally. I totally agree. And I think it’s clear, like, to your point earlier, especially on here, I think the intentions are always good. Like, you’re not trying to be - none of us are trying to be specifically critical. CHRIS: Not trying to slag anybody here… Or slag anybody’s time, or… ANNA: And I think we all recognise how much time and effort, etcetera, goes into open source software and maintaining open source software. It’s not - and that those tools definitely serve a purpose. It’s never intended to be negative. It’s just more of a discussion about what’s possible. CHRIS: So you were in Tennessee! ANNA: Yeah! CHRIS: You were down here in the very hot, muggy south. ANNA: It was so cool. I’m bummed that we didn’t actually get to record in the same place. CHRIS: I know… But we could not make that work due to schedules and technical stuff. ANNA: But I’ll be back in a few weeks, so we’ll - maybe we can make it happen then. CHRIS: So you’re going to be coming back down for the conference here, right? ANNA: No, I’m coming back in June after Stockholm. CHRIS: Ohh, nice. Nice. But you are actually coming down for the conference down here, too, right? ANNA: GigCity? Yes! I’m excited about that. CHRIS: Yeah, I’m really really excited. So, GigCity Elixir is happening - Oh, I better actually look it up, because I won’t know otherwise… October 26-27 in the Aquarium Conference Center in Chattanooga, Tennessee. This is super exciting for me. I’ve been here for a long time, and it has felt like I am the sole Elixir person in town for so long - which is not actually true. There’s plenty of people that have been in and around the community for a while - but… it has felt very isolating at times. So, it’s very cool. We’re having a conference here. And the speaker lineup is fantastic. I mean, I say that - which is very self promoting since I’m on the speaker list, but… I didn’t really mean to include myself in that… but yeah. I mean, Dave Thomas and John Hughes are gonna be here… it’s such a great feeling having a conference in my own town. Especially an Elixir conference in my own town. It’s a really great feeling. ANNA: No, I’ve heard - I’m really excited for folks that are potentially interested. I keep only hearing good things about the group putting this together, and I think they’re being really intentional about the speakers, and about the environment that they want to have and make sure it’s inclusive and welcoming… And I definitely encourage folks to check that out. CHRIS: And Chattanooga is a fun town. We’ll be down by the river at the Aquarium. ANNA: Chattanooga is awesome. I really enjoyed spending a few days there. CHRIS: It’s a - you know, it’s not the biggest city in the world. It’s not the flashiest city in the world. We’ve got a few things going on. ANNA: But it’s awesome! I loved it. I dunno. It was great. CHRIS: If you’re into rock climbing or outdoorsy things at all, it’s a great place for that. ANNA: Also really good coffee. CHRIS: We’re punching well above our weight - pretty great ice cream, pretty great coffee - basically everything you need. Burrito game is okay. We could be better at burritos. If you come out here, I will personally walk you to whatever coffee shop and/or ice cream parlor you would like to go to and get you both coffee and ice cream. So if figured I needed to give them a shout out, since that’s happening. So - you can say no to this topic - this is something Jeff Wise, friend-of-the-show Jeff Wise, suggested we discuss. I think he said, ‘what is our thoughts on standard keynote speaker lineup figures versus having more regional selected speakers?’ I don’t know if we wanna talk about that - he knew it was charged - so… ANNA: Yeah, ahh… CHRIS: We don’t have to talk about this - we can just edit it out. ANNA: No, it’s fine. I think it’s a balance. Right, I would like to think when I’m going to a conference, whoever is putting the conference together is putting a lot of thought into it about the type of conference they’re trying to have, and the type of information they want shared. And so, being really thoughtful, in that, if there are people who are really well known in the community, or people who do have interesting and compelling things to say - having them have a presence, but not forgetting that there are a lot of people in the community who aren’t very well known, but also have very interesting things to say. And I think you can definitely strike - if you’re intentional about it, you can strike the right balance. Because I think it’s important for multiple voices to be able to share their thoughts on things… So, in my ideal conference, you definitely have different perspectives from different parts of the community - and putting together a conference is hard, so I totally recognise that there is a lot of challenges, and like, you know, putting all that together. But that would be my take, is I would like to continue to see balanced perspectives - or balanced conferences in that they bring people together that have different perspectives. Whether they have different perspectives on a particular library technology or different levels of experience within the community, etcetera. CHRIS: So, along those lines of people who are coming into the community who are first time speakers, and giving new voices agency to be heard at these conferences, what are things that we can be doing better to provide mentorship, to provide access for new speakers? I always worry about - and this came up when we were talking about Elixir Bridge - putting someone in a situation without a support system - you’re basically putting a rocket on a launchpad, but you’re not putting any scaffolding around it as you try to build it, and you’re just sort of saying, ‘go build it’ or ‘hope you have a good launch, hope it all goes well for you’. So I’m always curious - what sort of scaffolding could we be doing - to one, be striking a good balance to be inclusive to reach a diverse set of speakers, and in turn hopefully reach a more diverse audience, and how do we give people who are new to speaking, new to the community, how do we give them the scaffolding so that they can be successful in that endeavour? because it’s one thing to give them - to give a new speaker an opportunity. It’s another thing to give them opportunity and scaffolding to be successful, because the opportunity does not dictate the success. ANNA: That’s true - that’s a really good question. I mean, I don’t know that I have a good answer to that yet. I mean, giving people the opportunity is important, and then allowing them to run with that a little bit. It’s a different model if you’re giong to be very intentional about providing that scaffolding. I think it’d be awesome. I think it’s important, but I also understand that’s a lot of overhead for a particular conference. Deconstruct is doing something like that - I don’t know if you heard? CHRIS: Yeah, I’ve been following that a little bit. ANNA: And that sounds awesome. But that’s very intentional, and made sure that that was very focused for first time speakers, and giving them the opportunity, and then helping them. So, I think that’s amazing, but I do recognise that’s a whole different overhead for a conference. So I don’t know that I have an answer for a general conference right now. I think I like the fact that conferences are not - it’s not the same people speaking over and over again. There are new faces with new ideas speaking, and I think that’s important, in addition to hearing the people who do have things to say, and have been involved in the community for a while. I think that it’s important to have a mix of people… I’d have to think about that. I don’t know if there’s a good answer because - putting on a conference is already a large endeavour. I think it would be great to have that scaffolding, or that support, but I don’t know what that would look like for conferences in general, because conferences are different. CHRIS: It feels like so much of what you need is mentorship. The other problem is - at least for me, I still don’t consider myself to be a super great public speaker… I’ve done a fair amount of conference talks, spoken at a lot of meetups… I still don’t consider myself to be very good at any of that. And I think a lot of it is, it’s just practice. You gotta get those 10,000 hours. I don’t know how to - and it’s hard. There’s no substitute for getting up in front of a lot of people and giving the talk - actually going through it and getting the beats right and - in so many ways there’s no substitute for that experience. because you can rehearse that talk for hours in front of a mirror or something like that. And it’s just different when you get up there and you see those people. ANNA: That’s true. And I think if you - when you’re first starting to speak, having someone help you with like, story arc and what you’re actually trying to say and what you’re actually trying to get out of the talk, and how to make sure that information is coming across as really clear, and like, because every talk - there’s a lot of talks that are a different way of telling a story about something that already exists, right? About an aspect of the language or about a library - it’s just, how do you want to tell that story. And I think it’s beneficial to have - if you do have access to people who are experienced speakers, and you can get feedback. I just don’t know the right way of setting that up that would be effective. because you have to have a whole set of volunteers that would be available, and I think that’s just a lot of overhead, and we all know that community work takes a lot of time and effort, etcetera, so, um… I don’t know what that would look like. I think mentorship is really key, but I don’t know how you would set that up effectively. CHRIS: So I have two questions, then, to follow up on that. One is, what are some resources that you have found to be really useful, as you’ve been doing more and more public speaking, as you’ve been traveling - as you globetrot every possible Elixir and Erlang conference? And then, two, along with your globetrotting, are there things coming up that you’re excited about that you want to mention to people? ANNA: Things in the Elixir community, or…? CHRIS: Yeah, just events, things you may be going to in the future, that you’re excited, that you might just wanna… ANNA: Talk about? CHRIS: Yeah. ANNA: I mean, as far as the speaking, I mean… Gary Bernhardt has a great blog post - I’ll try to find the link - about how to begin thinking about preparing a topic, that I think people, especially first time speakers, would find useful. I’ll try and find it and add the link. I - this is not going to be helpful to most people - I did a lot of theater growing up, from when I was a kid, through college. And I think that’s definitely helpful, but that’s not necessarily helpful to people who are starting to speak. I think a lot of - at least at speaking at conferences, I think a lot of what makes a good talk, is that arc - is that story arc. What are you trying to tell people? How clearly are you able to deliver that message? What do you want the audience to come away with? And having a clear idea about that is really important. And so, I think that Gary Bernhardt blog is really good. We should - CHRIS: Yeah, I found the link, and I put it in show notes, so we didn’t forget that. ANNA: And, I think, like you said, I’m not an expert. I could still become a better public speaker. Like, I’m continually looking at things and resources, and trying to think - how could I be better? I don’t think I’m any - necessarily amazing, right? And I would like to encourage folks that are thinking about it. If they have something they want to talk about, even as first time speakers, not to be shy about submitting. Even if something has already been talked about, you maybe have a different perspective that’s worth sharing. CHRIS: That’s the best piece of advise I could give. Is just - find something that you’re excited about, and give that talk, because chances are, someone is interested in it. ANNA: Yeah, and that’s what I tell people all the time - there’s so much information out there - it’s really the narrative you wanna put around it. because your perspective and how you explain something will be different than someone else, and what someone will get out of it will be different based on how you share that information. CHRIS: I added a book to here - I added a book to show notes called Show and Tell. You could honestly read the entire thing in an hour. It’s so so so short. But it is the book that has had the biggest impact on my speaking, and the way that I construct slides, and the way I construct talks. He really gives the framework, on how to construct slides, and how to construct the arc like you’re talking about. He talks - he basically goes in-depth on ‘here’s the ways that you do that successfully’. The talks that I have done that I felt came off the best are the ones that cleave closest to his rubric. It’s a really great book. And worth picking up. So I added that to show notes as well. ANNA: What about you? What are you - Show and Tell is something that you’ve read. Is there anything else that you lean on when… CHRIS: Show and Tell is really good… I would second the Deconstruct blogpost on how to prepare a talk… I would say my methodology is very different - like, I’ve attempted that workflow on how to prepare a talk, but that does not work for me. My mind does not work the way that that works, so I do different things - I think the spirit of it is totally correct, which is - you just get your ideas down, and you work the talk until it’s in the correct shape, long before you do slides or anything like that. But it’s - if you can follow that recipe, it’s a great recipe and you should totally follow it. ANNA: And I think it’s important to add that it’s not the only way. If that doesn’t work for you, that’s not the only way. CHRIS: Yeah, if that doesn’t work for you, it’s not - you’re not broken and you’re not hopeless. You’ll find another methodology. Mine is very different, but it probably doesn’t work for anybody but me, to some degree. ANNA: That’s fair. CHRIS: I’ll add one other book that I got a lot of value out of. It’s a little campy, but it’s got some good stuff in there. It’s called Do You Talk Funny, and it’s another book, and it has to do with adding a lot of humor to your public speaking to help bring people in and ingratiate them, and help tell stories that people will remember more. ANNA: Are you speaking anywhere or heading anywhere soon? CHRIS: Ahh… No. I’m speaking at GigCity. That’s about it. I used to submit a lot more talks, even when I wasn’t very excited about this stuff. Just because I thought it was… and I enjoyed a free conference, and being able to go and see the other speakers and that sort of thing. But I have kinda taken a step back. I only submit talks about things that I’m really really excited about. And if I don’t have anything that I’m really really excited about, I just don’t submit anymore. It’s just… too much stress. I get worried about the talk, worried about if my slides are in the right order, rehearsing the talk, dealing with the anxiety of getting up onstage, those sorts of things. Given the option, if I’m not deeply excited about a topic, I would much rather just go and be an audience member and not have that stress level. If I’m really excited about it, all of that anxiety and that stress is greatly diminished just by that excitement about the thing I’m there to talk about. And so it’s easier to get up there. If I’m not as enthused, it’s easier to kind of walk away from. But, yeah, I’m going to GigCity. I’ll probably wind up at ElixirConf at the end of the year, um… But that’s probably about it unless something else changes. You’re going to Stockholm? ANNA: Yeah. I’ll be there in a couple weeks. I’m excited about that. CHRIS: I am really jealous of - of all y’all going to Stockholm. So many of my friends are going to Stockholm, and I just - that sounds like so much fun right now. ANNA: Yeah. And I think I’m going to do an Elixir Bridge around the time of ElixirConf. We’ll see. In Seattle. We’ll see what happens. CHRIS: Cool, cool! Is there anything else you wanna bring up, or can we kinda wrap this one up? ANNA: I think we should wrap this one up. CHRIS: A’ight. Cool. Later. ANNA: Bye