EW S6E11 Transcript EPISODE S6E11 [INTRO] [00:00:06] AH: Welcome to Elixir Wizards, a podcast brought to you by SmartLogic, a custom web and mobile development shop based in Baltimore. My name is Alex Housand, and I'll be your host. Today, we've got a super special treat for you, as we rounded up a collection of many features we've recorded this year. We're excited to highlight four talented Elixirists, with diverse backgrounds and experience that are working on exciting Elixir projects in FinTech, food services and gaming. [CONVERSATION WITH TYLER] Let's kick things off with our first mini-feature, where we'll be talking to Tyler Clemens, Senior Software Engineer at Jackpocket. Welcome to the podcast. [00:00:42] TC: Hi, thanks. Happy to be here. [00:00:44] AH: We're happy to have you. Tyler, how did you find yourself a software engineer? What led you here? [00:00:50] TC: Yeah. I probably have more of a traditional, went through school. I originally went to school for networking. Got in, got my associates in networking, got a job in that, started working with that. It was just really boring to me. A lot of sitting around and looking at logs, setting stuff up. Anyways, I got frustrated with software not working well, or having bugs. That led me down the programming path. I went back to school and got my bachelor's in computer information systems. [00:01:19] AH: That's awesome. What was the first language that you programmed in? [00:01:24] TC: The first one I programmed in, my first job in programming was in C #, so .NET. I did a lot of C and C++ as well, converting stuff over. [00:01:33] AH: Nice. That was also my first job was in C #. How much better do you like Elixir than C #? Not hating on C # too much, but opening the door. [00:01:45] TC: Yeah. I've heard it's gotten better, since then. I've heard C #, or F # as well has a functional thing to it. I love Elixir. I've been working with Elixir. I have my 2017 ElixirConf shirt on. I've been working with Elixir for several years now. I love it. I bounce around back to Ruby, which I think a lot of Elixir developers do, or a lot of companies are doing. Yeah. I've decided years ago, it's definitely my career trajectory to keep working with Elixir. [00:02:11] AH: How did you find Elixir? I mean, it's relatively small still. It's, I would say, more obscure than a C #. How did you find it? [00:02:19] TC: Yeah. That's actually interesting. I had a friend that went to San Diego RubyConf. I forget when that was years ago. There was actually a functional track during that conference that talked a lot about functional languages. Elixir was one of them that came up. He got into it, played with it. That by osmosis, got pushed on to me. He was always talking about it. I started exploring it, and the rest is history. I just started digging into it and trying to find a way to work with it professionally. [00:02:50] AH: Which you're doing now at Jackpocket. Could you give us a brief elevator pitch for what Jackpocket does? [00:02:56] TC: Yeah. I just actually started working at Jackpocket. They're, basically, the first and I think, only licensed app in the United States to offer people, players, an easy way to order official lottery tickets. They're basically, their big mission is to make it convenient, fun, but also, still responsible to play the lottery. Instead of walking into a store and buying a lottery ticket, you can do it right through their mobile app. [00:03:25] AH: Fascinating. I had no idea that anything like that ever existed. I've also however, only bought lottery tickets once in my life, so I can't say I'm probably the target customer. How is Jackpocket using Elixir? Is it your primary working language, side projects, anything like that? [00:03:42] TC: Yeah. Jackpocket is, I think, taking a good approach and using the right tools for the right job. They're using a mixture of languages. They're doing Java and Kotlin, Rust, Elixir, Ruby. They're all over the place as far as what they're using. As far as Elixir, we're actually doing a lot of back-end OTP processes, which got me excited about it. It's not necessarily just like for lack of a better word, a standard website you're building. We're doing a lot of background processing, dealing with image processing, scanning the tickets and matching them up. Yeah. [00:04:17] AH: That's really cool. Truly, like a jack of all trades going on, right? I mean, you threw out Kotlin. Everything under the sun. Do you think that there are some inherent perks, and on the flip side of that, challenges to being an Elixir engineer, whether that comes to hiring other engineers, or being hired yourself? [00:04:39] TC: Yeah. Recently, going through the interview process, I was surprised how many companies are actually out there using Elixir. I think, that's growing every day. It is a little bit of a challenge to find them. You have to find the right people that are working with these companies, or hiring for these companies that are doing Elixir. That's definitely, I guess, both a challenge and a perk, right? It's growing, but also, it's still hard to find. One of the things as a software engineer is the whole, picking the right tool for the job is a big thing. I think, Elixir is starting to be realized as a good tool for several jobs out there. Its growth has definitely taken off. [00:05:18] AH: I would a 100% agree with you. One of the things that I really came to love about Elixir, when I first started working in it, was the vast wealth of resources, particularly within the community. I feel like, the Elixir community does a really awesome job of documentation that's thorough and clear, and not obtuse, one might say. What are some resources that you turn to when you maybe need some help? [00:05:45] TC: Yeah. Elixir Slack, amazing. Amazing community in there. I mean, you're talking with the guys that are building the stuff. There's not, I think, a better resource than that. That's awesome. Books, everything from Elixir in Action. There's a ton of resources are out there. Another thing is Elixir School. It has a smaller subset of things on it, but it's growing and has some really good documentation on there. To your point, the standard documentation is actually amazing. Just go in there and read. I've definitely taken advantage of that. [00:06:15] AH: Yeah, absolutely. I think, that everybody here at SmartLogic definitely enjoys the wealth of resources that the Elixir community makes available to us. It might be a challenge, I guess, going backwards, but speaking about how the community is growing, but it's still rather small. How do you onboard folks in Elixir? What is a good starting point, do you think? [00:06:37] TC: Yeah. What I've found over the years is a lot of Ruby engineers, I think we can all agree that a lot of Ruby engineers are coming over to Elixir. I'm seeing it at the conferences, a lot of people are either — have worked with Ruby and Rails and are coming to Elixir, or maybe they're porting something over, or they're taking advantage of something that Elixir does better. I think, the syntax of whatnot, and how it's more familiar to a Ruby developer. I've been part of training Ruby developers and bringing them over to Elixir, and that has worked really well. Then also, just trying to find people that you can teach. As long as you're not on a rush to get somebody right now on the ground running, that's a good avenue, I feel like. [00:07:15] AH: Absolutely. You mentioned you've been training people. What has been one of the bigger challenges of training others? [00:07:22] TC: With Elixir, it's got some quirks to it that I feel like – I've always said that Elixir has a steep learning curve in the sense of there's a lot of stuff going on at first. There's these processes and pattern-matching and whatnot. Once you get over that hump, I feel like, it's easy to understand things and you can open things up. Whereas, object-oriented programming, something like Ruby, I feel like, has a little bit easier to get into, but can be harder to master in my opinion. The bumps, pattern matching, for sure is weird to look at, and dealing with processes that are this weird thing that you don't deal with a lot. Those are two things for sure that you have to explain a little walkthrough. [00:07:58] AH: One of my favorite things when I was learning Elixir was pattern matching. I thought, “Man, that's cool. I like that.” [00:08:04] TC: Yeah. It's awesome. [00:08:05] AH: To end on a fun question, if you were not a software engineer, what would you be? [00:08:10] TC: I love photography. That's my other passion. I would say, programming is my first passion. Photography is my second. It would probably be something with that. I think, I'm fortunate to be in a career that I love waking up and going to work every day and being an engineer. I feel like, I could get something similar with photography. [00:08:27] AH: Yeah. You absolutely could. Start that side hustle, as they say. Make a Elixir app that displays your photography. Who knows? The world is your oyster, Tyler. Well, thank you so much, Tyler, for joining us today. It was great talking to you. [CONVERSATION WITH ILAM] For our next mini feature. We'll be talking to Ilam Amuzu, about his journey from a career in public education to learning functional programming and becoming a software developer. Welcome to the podcast. [00:08:58] IA: Thank you for having me. [00:08:59] AH: It's great having you here. You are passionate about adapting Elixir as a programming language. I wanted to ask you, what your first programming language was. Mine was technically, Python. [00:09:12] IA: Yes. Mine was Ruby. [00:09:15] AH: Delightful. You had probably an easier transition into Elixir than some others. [00:09:23] IA: Yes. That's actually how I got into it, is one of my, I guess, call my mentor some sort, was teaching intro workshops on Elixir. He sold it as syntax-like close to Ruby and a good way to start exploring functional programming paradigms. [00:09:40] AH: How do you like the functional programming compared to other languages? [00:09:46] IA: To be honest, I'm not sure I'm the space where I can even speak to a comparison. I will say, there are, I don’t know, key advantages to either style. I do appreciate this statelessness of functional programming and the focus on functions as a way of transforming data. [00:10:03] AH: I think, yeah, that's key. I think, my brain personally works a bit more functionally than object-orientedly, which is a word I'm going to make up right now. How did you find your way into programming in general? [00:10:18] IA: Well, in general, I transitioned into this field. I’m a former educator, and went to a local software school called Turing. That's actually how I ended up getting into Elixir to begin with. My transition started from the education side and exploring software in that space with students, and went to tool up and get some skills myself. In that space, started learning Ruby and through this mentor, was connected to Elixir. [00:10:46] AH: Awesome. Do you have a desire to move back towards your education routes at all one day, to teach other people the benefits of programming? [00:10:57] IA: It's always in the back of my head. Actually, yes, that's something I've thought about and keep in mind. I think, even some of the work I'm doing now, I'm always trying to integrate the educational aspects from some of the skills I learned in my previous career. [00:11:11] AH: I think it's really important that you are only as good, I think, as how you can help others. If you can explain what you're working on and if you can help others understand it, that matters a lot. What do you think are the pros of adopting Elixir as an early career developer, as a first language? [00:11:30] IA: I would say, I guess, in a sense for me, then as an early stage developer, early career developer, I would say that Elixir is a good language for you to start out with, if you're trying to explore functional programming, because of the developer-friendly syntax that it brought over from the Ruby community. That's really what helped me make my way through, because when I started trying to explore Erlang, I had to take a quick pause and gather myself. I would say, I honestly have the range of experience necessary to make certain comparisons, but the syntax is pleasing. There's also a huge focus from I guess, on my mentors around scalability, reliability, concurrency. I'm not sure that those are necessarily the most immediately relevant to an early stage developer, but it really is about the ease of access and the intimate community around it. [00:12:17] AH: I think, what you're saying hits home for me very, very real, the syntactic sugar. It's fun to pick up Elixir. I personally really loved learning about pattern matching when I was first picking it up. Do you have a moment where you thought, “Oh, this is awesome”? [00:12:35] IA: What really clicked for me was, I don't know, I guess, there was – We're building out a small fun time application on the side, find these mentors. This is going to sound really goofy, but the pipe operator and just some of that syntactical sugar, while we're trying to build out, it made the process engaging in this, let me see, is minute. Engaging, because on a 24-7 basis these small pieces end up adding up. I would say that a lot of that, as you spoke to earlier, syntactical sugar as part of the minutiae of daily development really got me excited, by continuing to dig into Elixir. Then past that point, it was about, at least on my side of the street, the small community I had access to where it felt approachable and not necessarily as daunting, as some other languages. [00:13:29] AH: I love the pipe operator. I would like to just ditto you on that. What are some resources that you used to learn Elixir, whether it be tutorials, or books? [00:13:41] IA: The Pragmatic Bookshelf books were pretty useful, especially starting out to get a sense of the concepts and some examples and definitions. Beyond that, I found the Code Flow: Thinking Elixir course to be really helpful, specifically around the test-driven exercises. I don’t know, at least for me, it helps to have this practice and experiment. It helps to have these exercises to integrate the new knowledge to that practice. [00:14:07] AH: Yeah, absolutely. I think, you spoke to something a minute ago, that is the community around you. The community you work with is a resource in and of itself. What do you think are some things that maybe the Elixir community, which is smaller, could do to make itself more approachable for an early career developer? [00:14:29] IA: Yeah. It definitely is smaller. For me, that can be a pro and a con. There's ways in which a small, intimate community can be more welcoming, especially if you're just trying to learn something that's overblown. That can be a pro. It’s a con in the sense that if it becomes homogeneous, or insular, that becomes an issue. I would say, efforts to increase the diversity in the Elixir community. Beyond that, also increasing the range of available materials and opportunities to engage in Elixir are ways in which we could continue to grow the community. As far as making it more appealing, or not even appealing, necessarily, but making it more accessible to early stage developers, it's those small wins – They say the worst thing you could do is always trying to learn something new, is the – I see this people who teach guitar all the time. You start trying to learn the guitar and they'll make you play these complex chords. The best thing you can do is teach somebody how to do a couple of strings that are going to impress their friends, that'll keep you coming back more and more often. I would say, creating opportunities for early stage developers to get wins with Elixir as a language. [00:15:35] AH: I totally agree with you. I think, the intimacy of the small community that is Elixir has been, for me, very welcoming. As a developer, I wish there were more women, but that I think is going to be true of – all right. I have one last question for you. Not Elixir related. If you were not a software engineer, what would you be? [00:15:57] IA: That's a great question. I think I like to be a superhero, but I'm not sure that's on the table. If I wasn’t a software developer, I would be probably – Actually, you know what? I’d be something of a itinerant teacher, walking forward, spreading knowledge. [00:16:15] AH: I love that. Do you have one thing in particular you would want to teach? [00:16:20] IA: I love literature. That would be my go-to. [00:16:25] AH: One last question to end it out, what's your favorite book? [00:16:30] IA: Ooh. See, I should prep for that considering my answer. My favorite book, let me see. It actually is – it's more of an academic, philosophical book, I guess. Peau Noire, Masques Blancs by Frantz Fanon It's one of my favorite books. [00:16:42] AH: I am going to take your word for it that it’s fantastic, because I have no idea what that is. Ilam, thank you so much for joining us today. It’s been such a treat to talk to you. [CONVERSATION WITH ELISE] [00:16:57] AH: Next, we'll spend some time chatting with Elise Navarro, a Software Engineer at Zingeroo. Welcome to the podcast, Elise. [00:17:03] EN: Thank you so much. It's a pleasure to be here. [00:17:05] AH: It's a pleasure to have you. I think you are the second lady engineer that we have the pleasure of talking with on the mini-feature, which is – [00:17:12] EN: Wonderful. Happy to continue that count. [00:17:15] AH: Always love it when we can bring more into the fold. How did you get started in programming? I noticed, I think, on your LinkedIn that you got your start more in business. How did you find your way into this profession? [00:17:28] EN: Yeah. I mean, if you wanted, we could have a completely separate interview about my background and my transition into programming. I'll try to keep it short. Started the first several years of my career working in digital media, on the data and analytic side, within global advertising agencies and saw what my growth trajectory looked like in that industry and in that career, and decided to make a change. Started doing some research, was very curious about programming; had some friends who had similarly pivoted into that career fields and decided to pursue a coding bootcamp. In the fall of 2019, I attended a coding boot camp. Then also, on top of that, decided to leave Chicago where I'd been for several years, moved to Denver, where I'm located now. Then it was job hunting. Then global pandemic comes into play. A lot of different factors, or things that hurdles for me to jump over, but was able to land a contracting job with a local Denver-based startup. Was mainly working on the front-end, and React and Redux. Then that contract ended. In the spring of this year, started with Zingeroo. I'm fairly new to the company and obviously, to Elixir, but have been so, so happy, not only with the team and the company, but also just being able to learn the language and the beauty of it, really. Yeah, that's my background and a little bit of how I ended up to get here. [00:19:08] AH: I love, it was just life change, and then another life change. Then the world decided to do its thing and you're just riding it along. [00:19:17] EN: Exactly. I have learned so much about myself, how resilient I can be, being able to really work really hard, and even in the midst of setbacks. I've also found that the community of engineers, not only here in Denver, but all over, especially when it comes to females in engineering have been incredibly supportive and really, really helped me to get where I am today. [00:19:46] AH: We've got to support each other where we can. Yeah. I would agree with you. The female engineers that have been on my path have been absolutely – I can't think of the word. I'm so sorry. [00:19:59] EN: That’s okay. Yeah, life changing. [00:20:01] AH: Wouldn’t be here without them. [00:20:02] EN: I mean, exactly. Yeah. Yeah. They're game changers, and they've paved the way for us. [00:20:07] AH: I know you're new to Elixir and to Zingeroo, but what are your overall thoughts so far working in Elixir, versus your previous contracting gig? You said it was more React and Redux? [00:20:16] EN: Yeah. I'll also add, my coding bootcamp was obviously, just fundamentals of programming, but that was in Ruby and Rails. It is nice to have somewhat of a similar syntax with Elixir, although it's functional programming, versus object-oriented with Ruby. There's just so many built-in functionality within Elixir that makes it feel like magic, that I think I'm still trying to wrap my head around and really, I see how it works, but I want to really understand the nuts and bolts of why. We're also using Phoenix as well as the framework. There's again, a lot of awesome things built in there. We can get into a little bit more, too, about what Elixir, or what Zingeroo specifically using with Elixir. So far, it's been really great. I think that again, there's enough people on the team, or just within the Elixir community that have been super helpful. There's plenty of resources to get up to speed. [00:21:15] AH: Zingeroo obviously uses Elixir. Can you give a just a quick pitch for what Zingeroo does? [00:21:22] EN: Yeah. I guess, that would probably be helpful, what is Zingeroo. We have not yet launched our product. We're in the very early stages as a FinTech startup. It is essentially a competitive trading app that aims to make the stock market more accessible, educational and social. What does that really mean? We basically want to help users create financial literacy through play. We've identified opportunity within the existing FinTech space and the plethora of trading apps that are out there. A little bit of lacking when it comes to the social side, or the play, or competitive side, if you think about industries like fantasy sports, or even sports betting, how much competition is underlining in those apps and in that business, as well as right now, the industry, so much of that social side is also siloed. People are having conversations on Reddit, or Twitter, or looking at the big names in day traders that are the ones to follow, and just hear what they do. We want to combine all of those things into a single product. Making it competitive, educational, social, and yeah, more fun. [00:22:44] AH: I like that a lot. I was just having a conversation with somebody about financial literacy, and you don't get most of it growing up. You have to figure it out yourself. Yeah. I like that. [00:22:56] EN: Those are not the things that you're learning, even if you study finance in university, a lot of it, you come out of still not fully understanding. [00:23:04] AH: No. Absolutely not. How do you think Elixir benefits Zingeroo in building out this new FinTech product? [00:23:12] EN: That's a great question. Obviously, with Elixir and being a FinTech product, we need to have security and speed, be two of our top priorities. We're a real-time money trading. Having the security of our user’s financial data and making sure that the trades are being executed as close to real-time as possible. Elixir helps with that, obviously, being really known and strong in terms of one, reliability, speed, things like fault tolerance. Then obviously, scalability. Right now, we haven't launched our product yet, but knowing that Elixir will be able to withstand as we grow, and from user one to hopefully, user 1 million, so that it will be able to scale with us. The other thing that we really like about it is that there's not much sprawl when it comes to relying on a lot of third-party libraries. I know that in a recent episode, you talked about Oban. We use things like Oban to coordinate our async workloads. That includes things like processing our trading jobs, or account openings, or just the user going through our KYC, or know your customer flow. Having Oban jobs to be able to handle and queue up those workloads, it's really helpful, too. [00:24:28] AH: Yeah, for sure. I think that this is now my second job, where I've gotten to work in Elixir. I think, it's probably underestimated how versatile it is. It's nice to hear about it being used in a really cool way with a FinTech product. [00:24:42] EN: Yeah. It's always nice for me to again, being new to the language and to uncover the fun, little features. Again, like I said, it's things that seem to work like magic, that don't require a lot of extra work. [00:24:56] AH: Yeah. You mentioned this a bit ago and I just wanted to circle back around to it quickly. As somebody who's new to working in Elixir, you talked about the community of Elixir developers and female developers as well. What are some other resources besides the community that you found extremely valuable? [00:25:15] EN: Speaking specifically to Elixir? [00:25:17] AH: Yes. [00:25:18] EN: Yeah. I think that the amount of obviously, being new to just engineering as a whole, I've had to rely a lot on online resources. A part of our onboarding process actually, is doing a online tutorial, especially if you're somebody coming in to our team who has no Elixir exposure, like myself. Spending the time to, whether it's on YouTube, or Udemy, or Free Code Camp, or any of the million in one resources available online. Leveraging all of those. We were very fortunate early on, when we were building our product, we actually worked with a consultancy agency that was able to help provide us with several engineers. This was early on, when our team was much, much smaller. Being able to work with some of the members of that team who were truly Elixir experts, and to be able to shadow them, or pair program with them, or review one of their PRs, and be able to ask any and all questions that came to mind. Now that we no longer work with a consultancy agency, and have our engineering team that we've been building out, it's so, so helpful to internally rely on my peers. Again, me being the most junior member of the team, being able to just very easily, even in those distributed network of employees, to be able to easily ping a colleague and hop on a call, or pair really quickly, or get a better understanding of how something's working on the back-end, and to make sure that we're not siloed in what we're doing day-to-day and have a broader understanding of what everyone's doing. I think just leveraging my peers, within Zingeroo as a company, but then also leveraging any of those outside resources, articles, blogs, tutorials, things like that. [00:27:10] AH: I think, we could probably have a whole other podcast episode about the value of pair programming. [00:27:15] EN: Yes, definitely. [00:27:17] AH: To put you on the spot for one final question, if you were not a software engineer, what would you be? [00:27:24] EN: I love this question. I am a big advocate for people having side hustles, or passions outside of their day job. I know for a lot of engineers, those passions include building their own products. For me, in my past life, when I was living in Chicago, I was a Pilates instructor. I was very involved in the fitness community in Chicago. Taught Pilates while I was working in advertising. I would wake up super early and teach in the morning before going into work. I loved every aspect of it. When people talk about being in a flow, or never feeling like you're working, because you're having so much fun, I definitely found that when I was teaching. I'm also finding that too, in engineering, even with this transition being new to the industry, I've been super, super happy. I will say, I do miss teaching on the side, so I've got to find a studio here in Denver to teach at. [00:28:21] AH: I understand that. There's something about the flow of physical fitness, too, especially going in and out of working out and then going to work, it definitely helps your mindset. [00:28:30] EN: Absolutely. [00:28:31] AH: I like that answer a lot. That's great. It's easy, breezy. I've always told people I would love to be a paddleboard instructor. I mean – [00:28:38] EN: Funny. Yeah, I actually live by one of the few bodies of water in Denver. I live by a little lake and people paddleboard all the time and I've always wanted to try it. [00:28:49] AH: It's very fun. Highly recommend. [00:28:51] EN: Good to know. Good to know. [00:28:53] AH: Elise, thank you so much for joining us today. [CONVERSATION WITH JEREMY] [00:28:56] AH: We're going to wrap up today's episode with our final mini-feature, Jeremy Neal, from Clover Food Labs. Welcome to the podcast. Jeremy. [00:29:05] JN: Thanks for having me. [00:29:06] AH: Thanks so much for joining. Just to dive right into things, how did you become a software engineer? [00:29:12] JN: Pretty traditional route. I went to undergrad for computer science eventually, after bringing out a bunch of stuff. From there, I got my first internship, ben job at a research lab in wildly different stuff. I didn't really touch web programming for years. I eventually, needed to go somewhere else, because universities are interesting places, but they don't pay particularly well. I went to a startup and it's been a startup after startup after startup. [00:29:36] AH: I did a research internship program once when I was in college, so I totally understand what you mean. It can be really interesting, but not maybe the best place if you need to make a living. No hate to people that work at universities. How'd you find yourself working in Elixir? It's not a super common language. It's a pretty small community. How'd you get here? [00:29:58] JN: I initially looked at it, I don’t know, maybe a year or two before I actually started using it at SmartLogic. Phoenix framework had just come out. It seemed pretty interesting. I didn't have anything concrete to really begin with. I saw it as neat, but moved on. Then when I was working SmartLogic, picked it up there. I've been using it since as my go-to to back-end language with LiveView and stuff, taking over more and more parts of the stack from here, so it’s nice. [00:30:24] AH: We've been – well, I should say we. Sundi and I have been very interested in working in LiveView, but haven't really found any good use cases yet. To go off the script a bit, how have you been using LiveView? [00:30:38] JN: Pretty much anywhere where I need a fairly basic responsive UI. Instead of pulling in React, I'll just use LiveView as far as it can get me. do think it's a little bit harder to use it for customer-facing apps, particularly, because I think there's some expectation that you have better offline support. LiveView does, like you go offline, it just doesn't work at all. That's a bit of a struggle for stuff like that. I think, the biggest thing I built on my own with it is basically, a grocery list/pantry thing for just my own needs, because I cook a lot. I wondered, do I have this one esoteric ingredient? I can just go on my phone, look it up and it’s like, “Oh, yeah. It’s in the basement.” Pick it up. [00:31:19] AH: That's fantastic. I would use that. I think about this problem constantly in my house. It's just like, you have multiple grocery lists floating around on pieces of paper. That's excellent. [00:31:30] JN: Yeah. I just bought a house this year. I have stuff in multiple places. I have bulk storage in the basement, because there's a ton of stuff I'll just buy huge bags of and it doesn't fit anywhere. Then I have a shelf for spices, then things are just wherever they are in various cabinets. It's surprisingly easy to lose track of things. That's you end up with seven bags of bay leaves. [00:31:51] AH: My thing is I buy parmesan. I'll put it on the list. I won't know if I need it. Then, I'll end up with multiple bags of parmesan. If you publish it, maybe I'll use it. [00:32:02] JN: I'll think about it. [00:32:04] AH: One day. Navigating back to the script, what is the elevator pitch for Clover Food Lab? [00:32:10] JN: I've been there for a month and a half, so I’ll work on my elevator pitch. Basically, we want to make me lovers love vegetables. One of the few ways that we can as individuals have an impact on climate change is reducing our meat intake, just a little bit. We think it's the lion's asking – that's not the right idiom. A big task to ask people to just stop eating meat entirely, but if you can get them to swap out a meal a day, or two a week or something like that, that's a really good start. The idea is we – like a farm to table fast food restaurant, essentially. The service is like McDonald's. You go in, you place your order, you get it, you go sit in your table, in and out. It's all locally grown. I think, we source produce of pretty much the highest quality we can find. The reason that I work there, there in Boston, I live in Baltimore, is because our entire tech stack is stuff we had to build ourselves. When you only have a dish for a certain amount of time, because you only have that ingredient for you bought this many crates of it, when it runs out, we need to let people know like immediately, “Hey, you can’t order that anymore forever. Though, I guess next year.” A lot of restaurant systems don't support that. They assume you're going through standard distributors, your menu’s pretty static. That also means that what we have in store has to be reflected online immediately. Someone could be looking at the menu and think, “I want to get this thing,” and oh, we just sold last week. [00:33:30] AH: I love this, first of all. It's something I think about quite frequently, when I'm thinking about what I want to cook and picking out food at the grocery store, trying to minimize that. This is incredible. You mentioned that Phoenix and Elixir has become your personal choice for writing back-ends, but is Elixir used at Clover Food Lab? [00:33:49] JN: Yeah. We have a couple main components. We have our whole kitchen expo. If you've ever worked in a restaurant, there's a bunch of behind the scenes stuff. That's all a Django app. Then for online ordering system, the back-end for that is in Elixir with Phoenix and the front-end is in ClojureScript. [00:34:07] AH: Cool. Sundi and I have previous restaurant app experience. What have been some unique challenges that you think Elixir works really well and solving, that are more restaurant space specific? [00:34:24] JN: I think, online ordering is a really good, but I guess, it's not super restaurant specific. In our case, you have people ordering stuff that has to reconcile with our back-end systems. We have our own databases that are split between on the ordering system and the back-end system. Those have to communicate. Then we have to connect to Stripe, and all of this stuff has to happen directly. If we drop something in the middle, we have to recover from that. There's network latency. Any number of other things that are going to happen, we need to be able to handle that as seamlessly as possible and Elixir’s really good at that. Also, really fast. Requests that would otherwise, take a long time, happen a lot quicker. [00:35:04] AH: Yeah. I think, that was our experience as well. The speed at which Elixir operates in was really well-suited to a restaurant app for everything that you mentioned, including also, if a POS system goes down, what do you do? It's just a lot of panic. Elixir handled it quite nicely, I would say. [00:35:21] JN: There's a lot of secondary things that need to happen, too. Using gen servers or tasks, or anything like that makes it a lot cleaner, I guess, to express those ideas of places an order, there's a bunch of stuff we have to do after the fact. We can just send them a messaging, call your orders in, it'll be ready in however long. Then, we can cleanly take care of all the other things that don't need to be on thread. It's not a nightmare, like most languages I've used that offload tasks. [00:35:48] AH: Yeah. It's always nice when the magic is so hidden to the customer. They don't know all that work that's going on in the background. We're going to keep it that way. Then, they're just going to eat their meal and be happy. Full of vegetables. I have one last question for you. If you weren't a software engineer, what would you be? [00:36:07] JN: I’d be a baker. I mean, I've worked in kitchens and restaurants and front of house, back of house. I wouldn't really ever choose to do that again. It's exhausting. You have a bunch of scars, no experience. You don't end up actually making a lot of stuff that you want to make. You make what other people want. Bread is way simpler. Everyone likes bread. You don't have to do too many kinds. You can just figure out what you like. Someone’s going to eat it. [00:36:29] AH: I love baking, so I love this answer. Do you make sourdough? If so, can you teach me your ways? [00:36:35] JN: Yeah. Yeah, I can. Not as hard as people say. I'm surprised you haven't picked it up in the past year. Wasn't that the whole thing? [00:36:42] AH: I know. Well, to be honest, we've gone through multiple failed starter attempts and have been very disheartened. I don't know if it's a flour, or a water, temperature, or all combined scenario. C’est la vie. But I really do want to make sourdough. It's my favorite bread. [00:37:00] JN: It's amazing. It’s delicious. It’s what? Three ingredients. Salt, water, flour. [00:37:05] AH: Crunchy. Yummy. Well, before I go down a bread path too much, because I could talk about bread for a long time, Jeremy, thank you so much for joining us today. [00:37:16] JN: Thanks for having me. [00:37:16] AH: 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. [END OF EPISODE] [00:37:32] AH: That's it for this episode of Elixir Wizards. Thank you again to our mini-feature guests Tyler, Ilam, Elise, and Jeremy for joining us. Elixir Wizards is a SmartLogic production. Today's episode was hosted by me, Alex Housand. Our producer is Sundi Myint, and our executive producer is Rose Burt. We get production and promotion assistance from Michelle McFadden and Ashley Stotts Here at Smart Logic, we build custom web and mobile software and we're always looking to take on new projects. We work in Elixir, Rails and React, Kubernetes and React Native. If you need a piece of custom software built, hit us up. Don't forget to hit like, subscribe and leave a review. Follow @smartlogic on Twitter for news and episode announcements. You can also join us on the Elixir Wizards Discord. Just head on over to the podcast page to find the link. Don't forget to join us again next week for our final season episode on BEAM Magic. [END] © 2021 Elixir Wizards