EW S6E5 Transcript EPISODE 5 [MESSAGE] [00:00:00] EO: Hi, everyone. We hope you're enjoying our new season on BEAM magic. Before we get started on today's episode, we want to let you know about a special event we have coming up. The first ever Elixir Wizards Conference is this June 16th and 17th. All online, two afternoons, a mix of talks, panels, and of course, the hallway track. As a podcast listener, you can get a discounted ticket by going to smr.tl/conf-podcast. We'll put that link in the show notes. Hope to see you then. [EPISODE] [00:00:34] JE: Welcome to Elixir Wizards, a podcast brought to you by SmartLogic, a custom web and mobile development shop based in Baltimore. My name is Justus Eapen and I'll be your host today. I'm joined by my solar co-host, Sundi Myint. See what I did there, Sundi? [00:00:47] SM: Hello. Yes, I did. [00:00:49] JE: And my pioneering producer, Eric Oestrich. How are you, Eric? [00:00:53] EO: Doing good. [00:00:54] JE: This season's theme is BEAM Magic. Today, we're joined by none other than Francesco Cesarini. How are you, sir? [00:01:02] FC: Hi. Thank you for having me. All well. [00:01:04] JE: Are you glad that I didn't try to use the Italian accent on your name there, because – [00:01:09] FC: Very, very relieved. I've been out of Italy for over 30 years. When people hear me speak, they react saying, “Hey, you don't have an Italian accent. What’s wrong here?” Going back, when I left Italy, I used to have a really strong American accent when I spoke English. Then yeah, picked up the Swedish accent when I spent 10 years in Sweden. Now, yeah, British accent. Been in the UK for 20 years. It's messed up, but no one can actually place me in Italy. [00:01:38] JE: You're in the UK right now? Are you in London, or somewhere else? [00:01:41] FC: We're in London. Yeah. Have been based in London for a while. [00:01:44] JE: Rock and roll. That’s super cool. We wanted to get to know you from a background perspective. Where did you get into programming? How did you first break into the field? [00:01:54] FC: I started coding on a Commodore VIC-20 when I was 12-years-old, 10, 12-years-old. I upgraded to Commodore 64. Then in high school, we were doing Pascal on Apple IIe. That's what got me passionate about the subject. When I moved to Sweden, I moved there to study and ended up taking a degree in computer science. Yeah, that was the route. It started with turtle graphics on the Commodore VIC-20, over to Basic. Yeah, and ended up with Erlang in uni. [00:02:26] SM: How did you pick the computer science field at that age? [00:02:30] FC: You follow your interest and the things you're passionate about. There were two things. One was economics, the other was computer science. Having moved to Sweden, economics required a certain proficiency in Swedish, which I didn't have. Yeah, I think computer science instead. Then, I ended up mixing the two together, by becoming an entrepreneur. [00:02:51] JE: I want to hear about how you became an entrepreneur. I also want to hear first, about your first job out of college, how you got it, what it was. [00:02:59] FC: My first job, it was an internship. I'd come across this obscure programming language in universities, one of our assignments. It was called Erlang. It was the only place you could use it was Ericsson, long before NP released as open source. I basically picked up the phone, I cold called Joe Armstrong and asked him if he had an internship for me. Two weeks later, I visited them at the computer science lab. It was actually an interview and I got an offer and the rest is history. [00:03:33] SM: Clearly, the interview, or that friendly visit turned interview went well. [00:03:38] FC: Yeah. He offered me a thesis project. After six months at the computer science lab, it was amazing. I was there with Mike, Joe, Robert, [inaudible 00:03:45] at the Downing distribution, [inaudible 00:03:48] Decker and a lot of really, really bright minds. From there, I joined Ericsson’s training and consulting arm. Erlang was, they were beginning to pick up Erlang in quite a few key projects, within Ericsson. Both wireless and fixed broadband, as well as packet switching projects. They needed a department which would help these different units come up to speed with Erlang and basically, start projects with a 100-plus developers, as that's how they used to run projects back in the days. That's where I started my actual career, after having graduated. [00:04:21] JE: This is an internship at Ericsson. [00:04:23] FC: It started with an internship with Joe Armstrong at Ericsson. Ended up in a job with the training and consulting arm. [00:04:28] JE: Okay. How long were you there? When did you decide to move on? [00:04:33] FC: I was there for about four years. Yeah, would look at moving abroad. Having an experience to moving abroad for a while. Every time I got a job offer abroad, my partner Ida, couldn't get a Visa, or it was some rural village in the middle of Ireland, where she couldn't get a job. When she got a job offer to move to UK and move to London, actually got a phone call. I was in Montreal, say, “Hey, I got offered a job.” They're moving my whole department to London. Other option is redundancy. I go, “Are you crazy? Take it.” This was, I think, a Friday. Yeah, I flew back to Stockholm on the weekend on a Monday. I handed in my notice and we moved to London a couple of months later. [00:05:17] SM: How does that timeline interact with the story of the founding of Erlang Solutions? [00:05:23] FC: I was actually planning on taking a few months off in between jobs, settling into London. I’ve never took a time off within uni and my first job. No gap year or anything like that. My plan was let's go in, let's find a house. I needed to get my driver's license. Let me get my driver's license. I needed to finish off the writing of my thesis project, so let me do that. I had all of these things I wanted to catch up on. We basically move, flew over to London on a Saturday in November. On Monday, I don't know how they managed to get my partner's phone number. She was getting cryptic voicemails on her work voicemail saying, “Hey, this is Patrick. Call me. We need you.” Basically, they were looking for me. They managed to get hold of me on the Wednesday saying, “Oh, Francesco, we need you in this project. It's urgent.” I ended up agreeing. Within two weeks, I had three consultancy offers and a permanent job offer, even though I've not gone out and looked for any of it. Thought okay, there's a business case, you set up my own company, which I ended up doing. It was completely by accident. I wasn't planning it, but it happened that way. [00:06:37] SM: Who was it that was calling you, contacting your wife to find you? It was just people who knew of you? [00:06:41] FC: It was Ericsson UK, it was Ericsson Ireland, Ericsson projects all over. Because at the time, there was one pocket in the UK and that was T-Mobile UK. [00:06:52] JE: Let me get this straight. You quit your job at Ericsson, you fly to London, you immediately get consulting contract offers from Ericsson. This is how you start Erlang Solutions. [00:07:02] FC: Yes. [00:07:03] JE: Do you have any founding partners at Erlang Solutions, people that came on early? [00:07:09] FC: No. It was only me for the first two and a half, three years. It was only me. Then 2003, I started getting sub-contractors onboard. 2000 for the first summer interns, the first office. 2005, I got a partner who joined me on the business side and he helped me to expand to about 25, 30 people. With him, we opened the Stockholm office. We opened the Krakow office. He stayed on until around 2010, when he sold his share of the company to the Trifle Group. Then we got another CEO onboard, and he helped us expand to where we are today. [00:07:47] JE: I think that this career path of leaving a company and starting your own thing with that company as your first client is actually more common than we hear. I'm really glad that you're telling a story. I was wondering if you can zoom in on those years of transition between you being a solopreneur, you hiring your first sub-contractors, and then you hiring your first full-time employees. What were the transition steps that forced you to grow the company? [00:08:12] FC: I was never forced, but there's so many opportunities. Initially, it was only me. I had one customer, which would then allow me about once a month to take on training gigs, consultants, short-term consultancies, code reviews. I started developing my own training material, which ended up opening a lot of other doors. You start developing a contact network. You start knowing everyone in the space. You're just sitting on a customer and you're looking for more people. You basically ask your friends to join you on a sub-contracting basis. I think, 2003, I started teaching at the IT University of Gothenburg, which was Chalmers. Got asked by a friend, Thomas [inaudible 00:08:51], to come in and teach undergrads, the second-year students Erlang. It was really interesting. Erlang was the second language they were learning in an IT and management program. Java was the first one and then Erlang was the second one. There, I came across some really bright students and offered them a summer internship. This was 2003, 2004 they came over for the summer. We got an office. We helped them find a home. By the time the students graduated in 2005, they came over, they did their thesis project with us. At the time, Sweden was still recovering from the IT crash, the dotcom crash. It hit the telcos really, really badly. Ericsson had shut about 50% of its workforce, in conjunction with the IT crash of 2000-2001. [00:09:41] JE: Weren't they also acquired around this point? [00:09:45] FC: No, they weren't acquired, but they spun off their mobile headset. They had a foray into mobile phones and were market leaders, but they struggled to stay on top of the market. After all, who would want games on their phone? Who would want the color screen, or even colorful phones? No. A phone has to be black. It was adapted to the male businessmen. The actual algorithms were optimized for a middle-aged male voice, because they were the only users who could get, who would be using mobile phones. They lost market shares to Nokia. [00:10:22] JE: Around 2005, you've got a handful of people in an office together. We're talking about maybe three, four or five people, something like that. [00:10:29] FC: Yeah, exactly. Yeah. [00:10:31] JE: I want to know what work you're working on. Then, you mentioned that you've hired a business partner and this business partner helped you scale from three, four or five people to 30, 40 people. Okay, so what I'm curious about is, can you just take us through that story, and especially the key elements that the business partner brought, that allowed you to scale in order of magnitude in just a few years? [00:10:55] SM: Maybe, also, a little bit about your mindset at the time. Were you hoping to scale? Did you like to stay at the size you were at? That's also very interesting. [00:11:03] FC: Definitely hoping to scale and definitely hoping to create a product company, more than a services company. You learn with time, it seemed almost impossible to actually make money off a programming language. It's a programming language, especially that there was a huge transition at the time, is something which people expect and expect free of charge. It's very similar to tooling. It's something people will not pay for. It was very hard to capitalize on that and make money off that. Yeah, we focused very much on services. Training, consulting, software development. At the time, I think we were called, initially when it was only me, it was called Cesarini Consulting Limited. I think that the first lesson I learned in market is never ever name a company after the founder. Not a services company, because everyone will be asking for that Cesarini guy to come in and deliver your training course, or do the consultancy. It makes it hard to expand. That's when I did my second marketing mistake, which was we rebranded to Erlang Training and Consulting. My lesson learned there was never name a company after the services you provide, because right after you've named it, you're going to start adding new services. Indeed, probably two months after the rebranding, we started providing in-house systems development on behalf of our customers. A few years later, we rebranded again, and we then renamed the company Erlang Solutions, which again, never name a company after the programming language, because there's so many emotions associated with that. It makes it really then hard to scale beyond that programming language. Luckily, Erlang has now become an ecosystem of languages. I mean, there are probably 35 languages running on the BEAM. I've stopped being surprised when I interview people and I realized, “Oh, we got this flavor of Erlang in production, or we've got Lua in production.” Yeah, they're all of these dialects. It’s not just Erlang or Elixir, but there are a lot of different dialects, which are being used and have been used in production out there. [00:13:09] SM: I don't think I knew there was that many. That's really cool. I thought there were five or six. [00:13:14] FC: Over 35. Every few weeks, a new one pops up. [00:13:18] JE: Wow. Wow. How many folks do you have over at Erlang Solutions nowadays? [00:13:23] FC: Past the 100 mark. We are recruiting. If you are looking for a job with Erlang and Elixir and the whole ecosystem, please do reach out. We've got a distributed Americas team. That was one of the offices I helped set up. I spent a lot of time traveling to and from American and figure out, when do we put an office? Where do we put an office? After probably three years of researching and building my contact network and getting clients, we realized that America is so big that having an office in any one single location doesn't really make sense. What you want is a distributed team. Then we've got offices in Budapest, in Hungary. In Krakow, in Poland, Stockholm, Sweden and headquarters in London. We are looking at having about 25 to 30 developers per office, which I think is a good size, which each office can handle and try to give each office as much independence as possible to operate and run on their own. [00:14:22] SM: Those are such fun locations. Justus, we've got to talk about Elixir around the world travel. As soon as we can do that again, just hop over to hang out with all – because we've talked to people from all over at this point. It's so cool to think about. [00:14:39] JE: One thing I do try to do when I travel is visit the local agency. When I was down in Sao Paulo, I visited Plataformatec. In this community and people are so hospitable, you can just show up at the office and be like, “Hey, I'm an Elixir developer and –” [00:14:51] SM: I want to say hi. [00:14:52] JE: Yeah. I want to say hi. [00:14:54] FC: We've now become a completely distributed company. That was a big change, which initially was forced upon us last year. More than anything, more than being forced upon us, it was being forced upon our customers. Many of them actually went in and accepted and realized that, “Hey, guess what? You're working remotely and then providing services remotely, works really, really well.” As a result of it, I think, we took the step and we became a fully distributed company. That's helped us as well recruit talent. You will find offices, but they won't be as crowded as they used to be. I think it's going to be a mixture of working remotely/coming into office, whenever people feel like doing it. It's worked really, really well. [00:15:38] SM: It's really funny, too, because the way that we interact now, these conferences that we’re attending are virtual, and you obviously know, you're organizing a ton of them. It's just so interesting to see all the people that you can come across now. You're not limited by location anymore. I've been attending Elixir meetups in, I think, the Birmingham one is the one I go to most often. SmartLogic folks have been talking at the Denver one. I've had people from Brazil coming to my DC Elixir meetup. There are no boundaries and it's great. [00:16:10] FC: The first meetup we did after lockdown, let's try to get all of the London crew back together and on a Zoom call and have a few presentations. Again, I got blown away. Around 200 people registered for that meetup. In the chat I went in and let us know where you're from during the talk and as you're joining. Hi, from South Africa. Hi, from Mauritius. Hi, from Kenya. Hi, from India. People all across Europe, all the way into Brazil, stretching out to San Francisco, across the states, South America and San Francisco. People were joining from all over. It's removed boundaries and it's really opened up the ecosystem to everyone. It's been wonderful. Tomorrow, I'm actually keynoting at ElixirConf Africa. I wish I could be there in person. Africa has a very, very warm place in my heart. Hey, virtual is better than nothing. [00:17:07] JE: Yeah. A little bit of context for the audience. We're recording this on May 6th. By the time this comes out, ElixirConf Africa will have been a month past. I think everyone in the community is super-duper excited that there is a ElixirConf Africa. Is Tracy Pendo organizing? [00:17:23] FC: Yes, yes. [00:17:25] JE: We're definitely trying to have her on the show. Look out for that. You do a lot of work in the conference space. I wanted to hazard and guess and say that Code BEAM is the biggest thing in terms of conferences that you're responsible for, Francesco. Is that right? [00:17:40] FC: Well, the biggest conferences are actually Code Mesh and Lambda Days. They're more functional programming conferences, intersecting with distributed systems. We're looking at basically, getting the word of adding Elixir out to the wider functional program and community distributed systems community. Yeah, we do it together. Yeah, there's always been an openness towards all programming languages. Yeah, we have a strong belief that we can learn from each other, and that together, we're stronger. There's a lot of Scala, Clojure, Haskell on top of Erlang and Elixir. F# and quite a few obscure languages as well. [00:18:20] JE: This is amazing to discover. First of all, having emceed ElixirConf America and Lonestar ElixirConf and seeing the amount of work the organizers put in, it seems like an overwhelming amount of work just for one conference. It sounds like you're – I mean, you mentioned Lambda Days, Code Mesh, Code BEAM, ElixirConf EU. [00:18:41] FC: I'd say, we probably have six major conferences per year. We used to have what we call lite conferences, which were single-day, single-track events as well, and we're doing five or six of those per year as well. [00:18:55] JE: Wow. How big is the team working strictly, or specifically on conferences? Because we talked about your growth from three to 30? I'm curious about this growth from 30 to 100 and how much did hosting conferences play a role in that growth curve? [00:19:08] FC: The team at its full potential is about six people, in total. On every conference, you'll have probably two or three people driving it forward and planning on it. It takes months. I mean, we're already planning and signing contracts for 2022 right now. It's a dream team. They're just passionate about what they do. The impact they're having on the community and on the ecosystem. That's really what drives them and gives them the energy to do have – yeah, this many really high-quality events every year. [00:19:38] JE: Yeah, I was going to snarkily ask when you're going to invite me to emcee. Now that I know that you host six, I might as well just – [00:19:45] SM: Go for gold. [00:19:46] JE: Yeah, yeah. Go for gold and then we can negotiate from there. Anyway, I'm just putting you on the spot. No big deal. The serious question is, how has organizing all these conferences played a role in the late stages of your growth curve? [00:20:02] FC: The reason, I think, we started organizing conferences was again, it was – we did our first one in 2008. It was the Erlang Exchange. We used to have the Erlang User Conference, which was arranged by Ericsson. It was very academic in nature. It was single-track, single-day, death by PowerPoint types of talks. All male lineup. One or two women in the audience, if you're lucky. Those were the days. What they were doing is they were catering for existing users. They weren't really helping expand the user base. Because all of the talks were all very advanced, about very specific libraries. Also, being single-day, single-track, they couldn't expand, because that was the venue Ericsson had. We ran our first event in London, Erlang Exchange in 2008, over two days, three tracks, where we had beginners tracks, we had advance track. We tried to cater both for new users, as well as existing users. 2009 in March, so right at the height of the financial crisis, we decided to sail the ship straight into the storm. We ran an event in Palo Alto. The first Erlang Factory in Palo Alto, we did that maxing out our private credit cards. It was a really interesting time. Because, yeah, we didn't have company cars. I mean, the financial crisis, there was no money in circulation. People were buying and selling services, but they just weren't being paid. Even our larger customers weren't being paid by their larger customers, so they weren't paying us. Maxing out our private credit cards and getting good credit from the hotel. We managed to pull off the first Erlang Factory, the first conference we ran on our own in the US. It was fantastic. It was for the first time, the European Erlang community met the American Erlang community. It was two very different communities solving very, very different problems. You had the speakers in Silicon Valley talking about cloud, talking about deployment at scale, they were talking about billions of users. That was the year WhatsApp was founded. It was right at that point. Then yeah, you had the Swedes and European community more talking about deploying to servers, doing their products. Very different presentation styles. Very different approaches. Despite that, they all got on like a house on fire. It was a wonderful experience. That's where everything started. What these events helped do was build community and increase the adoption, increase the user base. We were able to get out the conference talks on YouTube, on Vimeo. It was actually on Yahoo Video, if anyone's old enough to remember them. Ask your grandfather. All of these use cases and case studies out there, when we got SAP to come in and talk about the usage of Erlang. Reddit went wild. It was every time, when you found a new enterprise company using it, we managed to get the video out there. You saw others go in and look at it. That really helped expand the community and expand adoption. As we saw the community expand, that helped Erlang Solutions obviously expand. I always used to tell them, a company with 10 people is very different from a company with 20. A company with 20 is very different from a company with 40. You hit a certain limit. We were at around 80 for about five years. We were really struggling to go above it. Not because of lack of work, but it was just organizational. Yeah, it was really, really hard. I think, the way we've addressed it now was to empower all the different offices, to start growing themselves and taking responsibility for recruitment, for sales, for yeah, and trying to give them independence. Because again, growing a company from 10 to 20 people is easy. Growing it from 80 to 160 is really, really hard. [00:24:07] JE: In this growth curve, how did you balance a focus on sales and did recruiting drive sales, or the sales drive recruiting? [00:24:16] FC: Initially, recruiting drove sales. We became a catalyst for people who were passionate about Erlang, and later on the Elixir and the ecosystem as a whole. That's great, but at the same time, it also poses challenges, because someone who's passionate about Erlang wants everyone to adopt Erlang, or even Elixir for that matter. It’s not necessarily a good consultant. What we do is we help our customers with the adoption of the BEAM. Passion is a very, very important part of it, but you also need your persuasion. You also need soft skills. Initially, it was basically recruiting really, really smart developers and good people, but not enough consultants. We started changing that about five years ago. As a result, now, it's become much more sales-led, because it becomes harder to recruit. Also, you get the right people onboard who want to go out and help customers. Obviously, they want to also make sure your Erlang and Elixir spread, and that we create a healthy, stable ecosystem. It was finding that balance and that helps. In the last five years, I'd say, it's being much more sales-led. [00:25:27] SM: The question that Justus said that I really wanted to ask you has a story to preface it. When we were at Code BEAM, we were hanging out in the Tucan lounge afterwards. It took me a little while to put it together, but when you're in a Tucan lounge and you're not in the same bubble as other people, you only see their profile pictures. Your profile picture had a particular angle that made me realize that I had seen you before, like I've been working with you for the conference. I had seen you before and I hadn't quite placed it. Then when I finally did, I had freaked out, because it was from this Erlang programming language video that Computerphile put out on YouTube. I watched it early 2020, right after I had figured all this stuff that you laid out in this video, I figured all that stuff out for myself. Immediately after watching this video, I said, “Darn, if I had just watched this video two weeks ago, I would have saved myself so much headache.” Audience, I was working in Elixir, but it is a video about Erlang. My question was just like, that was such a helpful video for me. That was a turning point in my understanding of Elixir. Justus asked this question all the time to people on the on the show. What was a turning point for you where it clicked? Watching that video for me was that turning point for Elixir. I was curious as to how you came up with the examples? How did that opportunity come about? I mean, that was so life-changing for me. I’m just so curious. [00:26:51] FC: For 20 years, we were repeating, “Oh, Erlang is scalable. Erlang is fault-tolerant.” But not quite understanding why it was scalable. Not understanding why it was fault-tolerant. Then we'd meet people who’d give you a rant on Java and say, “Erlang’s great. It solves all these problems.” You agreed with them, because that's what you've been saying. To say there was one single event where it clicked, it doesn't. It’s an ongoing conversations and understanding the theory behind it, which makes you understand why Erlang is scalable, why Erlang is resilient. It's taken me probably 20 years and formalizing everything I know into two books. There are some things you just do, just because you've always done them that way. Realizing that it's the right way and why it’s the right way takes time. The fact that 20-years-old, we're doing things we used to do 20 years back, back in the mid-90s; is proof that when the computer science lab invented Erlang, they were onto something. Just to sum up, I think what made it hopefully clicked for you is the fact that you've got processes. Processes don't share memory and they communicate with each other for message passing. That means that you can – a process can terminate. If it does, you restart it and you recreate its state. You focus the whole let it crash. You focus not so much on preventing that crash, which is what you're doing to all the other programming language. You focus on making sure that the state you recreate is the correct state, because most likely, it was a corrupt state which caused it to crash. Then, once you've got that, yeah, okay, then you understand the whole supervision and you understand the approach on creating supervision trees. What again, took me probably 10 years to understand, we did it. We did in our sleep. Took me 10 years. Is that if you have no shared memory, all of a sudden, location becomes irrelevant, because you could have two processes running on two separate machines, in two separate data centers. Again, communicating with each other in a transparent way. That is the programming model, which gives Elixir its strength, which gives Erlang strength and all the other BEAM languages their strength. [00:29:05] SM: You mentioned the people – saying to people all the time, fault-tolerant, and it's very scalable. I definitely, before I really started diving into layers behind how Elixir works, and the fun things that gets from Erlang, I used to say the same things to my friends. They were like, “What do you like about Elixir?” I was like, “Oh, it never really fails in production. I wouldn't really know all of those things.” It's actually funny to me, because when they asked me how does that work? I just send them your video. I just don't bother. I'm just like, “Watch this video. It's 10 minutes. It'll explain the crash mentality and I don't have to do anything.” [00:29:40] FC: Exactly, exactly. It takes some mental adjustment. Also, don't use the word let it crash with your managers. They freak out, because yeah, that associate crashes with something bad. All it means is that you're taking care of the errors. You are taking care of the errors, but you're doing it in a different way. [00:29:57] SM: Maybe Justus wants to talk a little bit about our fun let-it-crash moment on Friday with the nerds. [00:30:05] JE: This was a make-it-crash scenario. We were learning how to program Raspberry Pis from Frank Hunleth. We were curious if we could just make it crash by infinitely generating atoms. Yeah. We just generated atoms, until we ran out of allocation, memory allocation. [00:30:23] SM: We were just curious, like what would happen? We were watching it live updating in the Live View dashboard. Then honestly, the Raspberry Pi just restarted. [00:30:32] JE: Just like that. I think a lot of people, when they get to know Erlang for the first time, their first complaint is about the syntax. I have a feeling that you have some feelings about this that you'd like to share. [00:30:48] FC: You're lucky you're on the other side of the link, because I'll probably be kicking you under the table here. Yeah, I think it was very fashionable to moan about the Erlang syntax, but I think it's just human nature. People have to moan about things. People moaning about the syntax actually completely missed the point, which is the syntax is just a wrapper around the language. It's something which a semicolon here, a full-stop there. It’s something which it'll take you one or two days to get over. You actually start looking at the semantics of the language, which is what's critical. You asked me what I think about Elixir. I think Jose did an amazing job, because using a Ruby-like syntax, he lures in a lot of Ruby developers with this false sense of security, this false sense of similarity. “Oh, look. This looks familiar. It's a Ruby-like syntax. Oh, I understand this.” The truth is, you still need that huge mental shift when you need to start thinking concurrently. That's the hard part, when you need to start thinking in terms of no shared state, when you need to start thinking in terms of supervision trees and restart strategies. Anyone who says, “Oh, Erlang is hard to learn, because of the syntax,” actually completely misses the point. The hard part is not the syntax. It's a programming model in its approach. It's just as hard in Elixir, as it is in Erlang, or any other programming language. The learning curve is steep with both languages. It's just that the perception with a syntax you're not familiar might be steep at first, and then you level off. Versus Elixir, which might be flat at the beginning. At the end, it becomes much, much steeper when you start getting into OTP, restart strategies and doing some of the serious software engineering. [00:32:35] SM: Do you have any resources that you like to point people to when they're trying to wrap their head around this new way of thinking? [00:32:41] FC: One is the Erlang masterclasses, which we did at University of Kent. Yeah, we can post a link later. We were lucky, we actually got access to professional recordings in the studio. It was me and Professor Simon Thompson and Joe Armstrong. Together, Simon Thompson did functional, Joe Armstrong did the concurrent programming and then I did OTP. Follow up with discussion. There we cover, I think a lot of the high-level. I've got two books, Erlang programming and designing for scalability with Erlang OTP, which again, I would recommend. I've tried to explain that approach in there. It's documenting everything I know. It's documenting the whole approach. Yeah, if you really want to understand what's under the hood, that's what I really recommend. [00:33:30] JE: Specifically, the programming Erlang book? [00:33:32] FC: Both. Yeah, because I mean, there's – I go in and explain, how you need to think and reason concurrently, how you need to think in terms of error handling and provide use cases and case studies and anecdotes, as to why we do fix in a particular way. [00:33:48] JE: Should you read programming for Erlang before you read designing for scalability? [00:33:52] FC: No, you don't. I think, it completely depends on where you are. I think, Designing for Scalability, it focuses on OTP. By explaining how OTP works under the hood and the rationale behind it, I show everyone how to use it. The largest audience actually for Designing for Scalability, is actually the Elixir community. You don't need Elixir to understand what's going on. The examples are in Erlang. I promise, you won't go blind when you see the syntax. [00:34:18] EO: I read Designing for Scalability fairly early on in my learning Elixir. I can confirm, I did not go blind. [00:34:29] JE: We want to be respectful of your time. This has been a tremendous episode. We barely even got to scratch the BEAM and the magic stuff. I think that we would love to have you back on the show. We also want to give you the last – the remaining time to plug anything you want, ask the audience for anything that you want, where people can find you, etc. The floor is yours. [00:34:52] FC: Well, A, we are recruiting. If you want to work with Erlang, Elixir, the BEAM and the ecosystem as a whole, you reach out. We were posting it into our job site. I also wanted a plug for the RabbitMQ Summit. RabbitMQ, I think, is one of the – It's a virtual conference. We're running it in US time zone, the 13th and 14th of July. ElixirConf EU, we hope is going to be our first in-person conference of the year, the 9th and 10th of September 2021 in Warsaw. Code BEAM San Francisco, which we're doing at the Computer History Museum in Mountain View in California, the 4th and 5th of November 2021. Those are the events we have planned for the rest of the year. Yeah, I think we've been seeing each other on Zoom for too long. I really hope to meet you in person, either in Warsaw, or in Mountain View. [00:35:46] JE: Hey, thank you for joining us on Elixir Wizards. Before we close out the show, we'd like to share another quick mini-feature interview with you. It's a brief segment where we showcase somebody from the community that's working at a company using Elixir in production, and we'll learn about how they're using Elixir. Hope you enjoy it. [MINI-FEATURE INTERVIEW] [00:36:08] AH: Hello, and welcome to the mini-feature segment of Elixir Wizards. My name is Alex Housand. Today, we're speaking with Jeffrey Utter, Senior Software Engineer at Bleacher Report. Welcome to the podcast. [00:36:20] JU: Hi there. Thanks for having me. [00:36:21] AH: It's great to have you here. What got you started in Elixir? It's not entirely common, right? How'd you find it? [00:36:29] JU: I'm a Ruby expat, like many of us are, but not all of us. I was working in Ruby and looking for a challenge, particularly something that was better at concurrency and I was interested in functional languages. Yeah, Elixir was the natural choice. [00:36:47] AH: That's awesome. How did you find your way into programming? Was it through Ruby? [00:36:51] JU: I started in probably my early teens, I’ve always been interested in computer and technology and whatnot. I had a friend whose mother taught computer science at a university and we had to do one of those interview someone about a career you might like to have things. I asked her and she said, “Go talk to this other fellow.” I'm from upstate New York, which is the boonies. He lived in the boonies for the boonies. I went out and I talked to him and he was a big open source Linux person in the '90s. I remember, this one piece of information which stuck with me is he said – he'd written some driver that was used in cash register machines, I think McDonald's used it or something. They had some issue with it and they called him up to fix it, but he was about to leave town for a conference and he said something like, “For $10,000, I'll take two hours and look at it and that's it.” They were stuck. They had to had to go along with him. I think he fixed it in a half hour. I was like, “Okay, so there's money in this computer field sometimes.” As a 15-year-old or something, that really piqued my interest [00:38:04] AH: Right. Absolutely. Maybe even free McDonald's. [00:38:07] JU: Right. I'm not sure if that was part of the deal, but could be. [00:38:11] AH: How did you make your way to Bleacher Report then? [00:38:14] JU: I've had a few drivers before Bleacher Report. The one prior to Bleacher Report was with Communication Service for the Deaf, and we were an Elixir shop there. I was looking for something new. There's a really small, but strong Elixir meetup group in Kansas City that I went to, and I had a friend there who worked for Bleacher Report, and they were hiring and it worked out. [00:38:32] AH: That's really interesting about your previous experience. Could you just speak a little bit to that and the organization? [00:38:39] JU: Communication Service for the Deaf, the company as a whole, they did a lot of services for the deaf community, mainly really centers and I forget the right names for these things now. Let's say, you're a person that's deaf or hard of hearing and you need to make a phone call, you call a person that either you can type to them, or you can sign, if you have a video chat thing. They relay your call to a hearing person. That's their main business, but they have a lot of other endeavors that try to help out the community. We worked on a platform that coordinated interpreting services between businesses that needed them, for example, schools, or pharmacies, or something like that, and the interpreters that provided them and the people that needed the services. It's like a scheduling billing platform. [00:39:27] AH: Wow, that's fascinating, and really incredible. I'm based in DC and around the corner from Gallaudet University, which is an entirely deaf and hard of hearing school. It's really, really incredible. I know a little bit about Bleacher Report, but could you give just a little elevator pitch for us? [00:39:45] JU: Bleacher Report started as primarily a sports news aggregator. The idea was, you follow your teams and you get the breaking news about your teams and the players and games and whatnot, faster than anyone else. That's how we started. I think that was in 2005. It's been a while. Now, we've expanded to be a platform to help our users share their sports moments together. That can be anything from breaking news, to sharing social things around events, sharing information with your friends, re-sharing news, or just having some side chat about a game, or something like that. We have live video in the app, so you can watch some live events and games, and also a community component where you can communicate and share ideas, criticism, what are their compliments about your teams. It's centered around a certain community. You can find the other people, maybe not your real-life friends that have similar interests as you. [00:40:47] AH: Cool. Almost a social network platform of sports communities. I can't say I'm a huge sports fan, but I know that people love sports. Are you a big sports fan and are employees at Bleacher Report primarily big sports fans? [00:41:02] JU: I myself when I started was not a huge sports fan, both between the job and my wife's whole family's avid Kansas City Chiefs and KU basketball fans. Now, I am too. As I've worked here, I've had more appreciation for the sport and the whole environment around it, from community and everything, media that goes into making sports happen. Now I'm a little bit more of a fan. At Bleacher Report, you get the whole range. Some people are there for the sports. They are sports people, so they want to go work for a sports company. Other people are engineers, or whatever their role may be that are there, because it's a great place for that and you don't have to love sports to work for Bleacher Report. [00:41:46] AH: That's good to hear. Could you speak a little bit to how you're using Elixir at Bleacher Report? Is that the primary working language right now? [00:41:54] JU: Yeah, mostly. A large part of the time we were at Ruby shop initially. I think, Elixir was introduced in about 2015. We've been doing that for five or six years. Now it powers all of a section on our back-end. All of the new stuff, the social stuff, a lot of the live video stuff is powered by Elixir. The live game stats and that stuff is powered by some DotNet, a part of the company that's a little bit separate. Also, the betting portions are over there. Yeah, most of the app back-end is in Elixir. [00:42:30] AH: That's awesome. Do you think that there are some specific perks and/or challenges to hiring in Elixir, specifically, maybe for Bleacher Report? [00:42:41] JU: Perks-wise — I think, Bleacher Report's probably a good example of this. I think that in Elixir, you can get pretty far with a small team. It seems like the language empowers people to be productive and also build maintainable software that lasts for a long time. Not to say that there's no bugs, or technical debt, or anything like that. I think, compared to other languages I've worked in, it seems like fewer people can get more done. Also, if you're sticking to the main path of doing basic Phoenix applications, you don't need a ton of knowledge about OTP, or concurrency, or anything like that. I think there's a soft introduction to Elixir, where you can be productive. Historically, a lot of the stuff you've done at Bleacher Report has, we haven't done a lot of distributed – needed to do a lot of distributed Elixir stuff. You can get really far just using the basic tools that we get out of Elixir and the BEAM and everything. [00:43:46] AH: I would absolutely agree with you. I found Elixir by chance. I think what you said about feeling empowered in working in it is definitely true. If you were not a software engineer, would you be a sports star? [00:44:01] JU: No, not me. I try to run a little bit, but that's about it. I'm not terribly good at it. There's probably two answers to this question. There's the practical answer, and then the not practical answer. The practical answer is I would probably be a musician and music teacher. I've got a few degrees in music. I play the double bass and I have a undergrad in music ed, master's in jazz studies and a doctorate in performance. Somehow, I found my way into programming. I've taught a little bit adjunct at universities and whatnot. The other related thing, which I like to do would be to build musical instruments, particularly archtop guitar, jazz guitars and mandolins. I have no skill in doing such a thing. My father was a nurse. But before that, he was a cabinet maker for many years. He's actually made some guitars in his retirement. Part of what we like about software engineering is that we get to create something that didn't exist. We have to put some value back into the world. It'd be nice to do that with something tangible. Musical instruments would probably be what I would like to do. [00:45:11] AH: Absolutely. Well, I mean there's still time. Another quarantine hobby. Well, Jeff, thank you so much. It was great to have you on today. To all of our listeners, if you or your company are using Elixir in an interesting way and want to come on the show for a mini-feature, we would love to have you. Reach out to us at podcast@smartlogic.io with your name, your company's name and how you're using Elixir. [OUTRO] [00:45:40] JE: That's it for this episode of Elixir Wizards. Thank you again to Francesco Cesarini for joining us today. Elixir Wizards is a SmartLogic production. Today's hosts include myself, Justus Eapen and my co-host, Sundi Myint. Our producer is Eric Oestrich and our Executive Producer is Rose Burt. We get production and promotion assistance from Michelle McFadden and Ashley Stotts. Here at SmartLogic, we build a custom web and mobile software. We're always looking to take on new projects. We work in Elixir, Rails, React, Kubernetes and React Native. If you need a piece of custom software, hit us up. Don't forget to like, subscribe and leave a review. Follow @SmartLogic on Twitter for news and episode announcements. You can also find us on the Elixir Wizards Discord. Just head over to the podcast page to find the link. Don't forget to join us again next week for more on BEAM Magic. [END] © 2021 Elixir Wizards