Rectangle EW S7E2 Transcript EPISODE S7E2 [EPISODE] [00:00:07] AH: Hello, and 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. I’m joined by my co-host, Sundi Myint. Hello Sundi. [00:00:21] SM: Hello. [00:00:21] AH: And my producer, Bonnie Lander. This season's theme is Impact of Elixir, and we're joined today by a special guest, Angel Jose. Welcome to the podcast, Angel. [00:00:31] AJ: Hi, welcome. I feel welcome. [00:00:34] AH: Great. We always want to be welcoming here. I'm glad you feel welcome. Before we got going, we had a brief conversation about hot takes, rants, and obsessions. I want to kick off with that. What's your favorite type of taco? [00:00:46] AJ: So, my favorite type of taco is a very specific taco that I greatly miss. So, it is TJ or Baja, like Baja California style taco. In Tijuana, your taco is always like carne asada but grilled in mesquite, or over mesquite, with some fresh yellow corn tortillas, some guacamole in there, and a little bit of salt, and some salsa, and it is perfection. I moved to Denver away from LA about two years ago, and I cannot find my favorite type of tacos. So yes, it is sad and yet is something I look forward to when I visit LA and drive down to Baja real quick and go get me some TJ tacos. [00:01:25] AH: Absence makes the heart grow fonder. So, what's the worst taco you've ever had? [00:01:29] AJ: Anything with a hard shell. [00:01:30] AH: Good answer. Good answer. [00:01:33] SM: Strong agreement there. So, the hot take is it that you can't find the taco of your dreams in Denver? Or is there something else that's a hot take around tacos for you? [00:01:43] AJ: It's probably just a rant by this point. I really wish there was good tacos in Denver. There's tacos that just will like – alright, I wanted a taco, find a taco, eat a taco, but nothing that I'm like, “Wow, I ate a taco.” [00:01:56] AH: It gets the job done. But it's not a taco that wow’s you, it’s just a taco. [00:02:01] AJ: Have you all seen the Taco Chronicles on Netflix? [00:02:04] AH: Excellent show. [00:02:05] AJ: I can probably say, I've probably crossed off about five of those spots. So, yeah, the quality of taco is very important to me. I haven't been able to find that here yet. [00:02:15] AH: Maybe you should do it. [00:02:18] AJ: Maybe. Be the taco you want to be. [00:02:21] SM: Put that on a T shirt. [00:02:22] AH: Yes, absolutely. [00:02:24] SM: It’s your first merchandise item. [00:02:27] AJ: There you go. That's on Elixir in Phoenix. [00:02:30] SM: We're talking about tacos and I'm thinking about how we're recording this right before ElixirConf, and I haven't been to Austin I think since Lonestar Elixir 2019 with Alex. We had some good tacos in Austin. [00:02:45] AH: Had some excellent tacos. I still dream about the – I had a taco that had a mole made out of Nutella. It was life changing. I talk about it still. [00:02:58] SM: So, excited. Are you planning on attending any kind of versions of ElixirConf, Angel? [00:03:04] AJ: Unfortunately, I had pre booked a vacation and it landed right on the same date. So, I will be bumming it in Cancun for a week during ElixirConf. [00:03:14] SM: So, sad. [00:03:18] AJ: Eating tacos. Yeah, so I will greatly miss Elixir, but I think I'll be alright. [00:03:23] SM: Yeah, you'll survive, right? [00:03:25] AJ: I'll manage. I'll find a way. It'll be hard. But I'll find a way [00:03:28] SM: Shed a single tear. Dive back into your taco. [00:03:34] AJ: Exactly. I really was looking forward to in-person ElixirConf and NervesConf and all that, but it just didn’t – the calendar didn't line up. [00:03:41] SM: It's still a weird year. So, we'll call it 2022. [00:03:46] AJ: 2022. There you go. [00:03:48] SM: Exactly. So, ElixirConf, NervesConf, how has your engagement been in the Elixir world? How do you center yourself in the Elixir world? [00:03:56] AJ: I started writing Elixir a couple years ago. I was working at a startup and we were writing chat box in Ruby. And we had a few issues with performance, just a couple of things that put code logic behind it, kind of messy already, and the CTO at the time, we were a super small team. There were three engineers. So, CTO at the time was like, “Hey, I've been looking at this cool language called Elixir, and it seems like it does what we need it to do, and it seems like it's fun to write. Do you want to learn it?” I'm like, “Sure.” I was, you know, interested in it. I started looking it up and it was fun. It was really fun to write. So, we started carving out pieces of the Ruby path into Elixir. Yeah, that's how I got my start just writing simple chat bots. [00:04:40] AH: I actually recently did a PD day where I wanted to learn more about Phoenix channels and I wrote a little chat bot thing. I feel like I know exactly what you're talking about. We often, I think, ask the question how did you find yourself programming in Elixir? And the answer, I would say probably, I don't know, eight and a half times out of 10 is, “Well, I was programming in Ruby, and then I found Elixir.” What were you doing before working in Ruby? How did you find yourself on the software engineering path? [00:05:10] AJ: It was a little bit later on. I started actually learning to program like actual programming at 32. About seven years ago, now. Before that, at the time I started learning to code, I had a small car dealership, which is kind of funny that now I work for Cars.com. But I had a like a small car dealership. Before that I grew up like in the construction trade, my dad's a contractor, so then I just worked in the family business, and then we grew that out. I was always like tech inclined. I like tech. I like messing with, like, whatever I could optimize in the business with tech. And then there was always this itch of like, I wish – all I knew was IT, so I wish I was in IT and some type of tech field, tech world. The construction business moved on. I moved away from that, opened up a car dealership, and it was a lot less fun, a lot more work than what I imagined. I imagined driving a bunch of cool cars, and just like selling them when I got bored of them, and that's not at all what the business is like. One day, I was browsing, I don't know, one of the tech blogs, and I saw like an advertisement for bootcamps. I clicked on it, and then down the rabbit hole until I started researching, researching, researching, and then I went to a bootcamp, an online, fully online bootcamp and that's how I got started. [00:06:27] SM: We love talking about these kinds of like bootcamp resources. Do you want to shout out your bootcamp? How was that experience for you? [00:06:33] AJ: It was cool. I mean, this is 2014. So, there were a few like, of course, GA was around, they were pricey. I didn't really do GA. The bootcamp that I went to is not around anymore, for good reason. They got bought out by really good, good people. It used to be called the Fire Hose Project and they were teaching Ruby online. You went through a couple Ruby courses, and they would walk you through it. I didn't realize at the time I was probably one of the first students, probably like second or third, somewhere around there. I had a lot of like can holding from the founders just because of course they really wanted to build their brand up. It was really nice. I still keep in touch with both of the mentors, but one of them more than the other. Yeah, he's been a mentor even way past, like I mean, seven years later, I can still reach out to him for help., and I do. [00:07:19] SM: Yeah, that's really, really amazing. I did GA as like a part time thing at some point in the network that you kind of create after that is super awesome. I've always appreciated that. I still am friends with folks I took those courses with, and I know several other people on the team at SmartLogic have done those kinds of things and are still in touch with their cohorts, too. [00:07:40] AJ: Yeah, I enjoyed it. I think you can learn a lot of these things for free online. There's no denying that. I like the mentorship aspect, but one piece that I try to talk to folks about when they asked me about the career path is the bootcamp, like whether it's a bootcamp or a program, finishing almost gives you permission as a new engineer to feel comfortable enough to go ask for work. I think that that's what the bootcamp did for me. It's not like you learned so much in 12 to 6 – you learn a lot. But once you start working, you realize how much you don't know. I think what it gives you is the permission, like, “Hey, I finished something. It's okay for me to go and start applying for work.” Because I've seen it and other folks that do their self-course and there's so much more advanced that I was at that point, and yet they still don't feel they're there yet. They're qualified to go ask for work. I thought it was great. I did the bootcamp, finished it, and then got super lucky. I was working maybe about two months later. [00:08:36] AH: What do you think was the biggest transition for you in terms of going to a bootcamp. What was the kind of mind transition of going from a construction business to a car dealership to a bootcamp to having a job in tech? What made you excited to go to work at your job in tech? [00:08:57] AJ: It was completely different. It was like nothing I'd experienced. I came from a background where you just don't have this type of work and I didn't really know anyone that had this type of work, where you're free to be creative, you're free to kind of direct how you're going to implement something, of course with guidance, right? But there's a lot of freedom involved with engineering, there's a lot of freedom involved with like being able to think through solutions and think of like problems at a higher level. That was fascinating. That was super interesting. It scratched the itch of kind of the business owner side of me, which is like you're trying to solve things. But it didn't compare to any other type of work that I knew about. It was completely different. It's got its challenges. I try to mentor new engineers now, whether it's internal or external. One of the challenges with folks that don't have backgrounds in this type of work is just knowing how to manage their day, the environment of not someone telling you, “Hey, here's 10 tickets, do this. Here's 10 things to do, do that.” That freedom is kind of hard to navigate at first. So, it makes it a little bit challenging. We just recently onboarding 20 new engineers, and I'm trying improve that. It's a challenge. It's a challenge when folks aren't used to it. But I loved it. I thought it was one of the best parts of coming into software engineering. [00:10:09] AH: That freedom you talked about is so challenging. I struggle with that every single day, like in work, but also in life, whenever you have a day off, or it’s a holiday and you're like, “I'm going to be productive, I'm going to do laundry, I'm going to do dishes, I'm going to clean the house, I'm going to make the bed, I'm going to do all these things.” And inevitably, you'll do none of them. [00:10:29] AJ: It just happens. You’re like, “Wait, I had a free day. What happened?” [00:10:33] AH: “What did I do? I did nothing.” Equally is important, though. How did you find yourself at Cars.com? Because I want to know about Cars.com in general. It's one of those businesses that you sometimes forget has a whole backside to it, right? [00:10:52] AJ: Oh, yeah. I spent my time with a chatbot, that company startup, it kind of got swallowed up by like a new idea. There was a change like in the founders and ownership. So, then I ended up like in this whole different world that had nothing to do with Ruby or chatbots. We were now a blockchain company, and I was writing integrations and stuff like that. I was still writing it in Elixir, but connecting them to like these blockchain listeners. That did all right. But I needed to change. I was very into the startup world, so I wanted to see like a little bit of a bigger scale on what we could do. It just so happened about two years ago, Cars.com started re-platforming. So, they were coming – cars is like a 20 plus year-old company, right? They're one of the original dot coms. So, they've been around, they have traffic at scale. I mean, if you want scale, they've got it already. They went through like just some, I guess, leadership decisions where, we're going to move away from the old platform, we're going to move away from all these enterprise contracts we have from microservices scattered across 20 years of development, and we're just going to go all in. We're going to re-platform from the whole thing. It wasn't like they took, “Oh, let's test out Elixir and this little piece right here.” They said, “We're going all in, everything, Elixir.” They hired the team for it and they continued hiring. Obviously, they're Chicago based, they're only going to find enough Elixir engineers in Chicago, so they started recruiting outside for remote roles. This was pre-pandemic. It just so happened, I was looking around that time, I saw a post in Elixir Slack, and I applied and I got the job. That's how I ended up there. [00:12:23] SM: I can't think of another story where somebody was like, we had a huge thing running at scale, and we just decided we're going in on Elixir. I mean, that must have been such a huge – can you describe the size of the engineering team and the percentage using Elixir and all of that, so we understand that makeup? [00:12:42] AJ: Sure. I think at the time when this project started, we were maybe, of course, a very few full-time employees that knew Elixir, so a couple that transitioned from the old platform that was Java based or JavaScript depending on what they were working on. A few of them transitioned over, hired a couple, so maybe 10 FT’s at first, and then a lot of contractors. So, hired dockyard, hired a couple other folks to help with that. But the goal was always to grow the internal team. Then the internal team grew, probably 50, 60 plus engineers, just full time. Then again, augmented with like contractors. We had Early Solutions for a bit, TestDouble, just different different companies that write Elixir that we would probably be familiar with. The pandemic kind of pushed back the deadline for launch a little bit, because we didn't know what was going to happen. Once things settled down a little bit, then the launch date kind of got reactivated. We were building everything in what was like a non-production environment. We had traffic flowing in to our existing production and the same amount of traffic flowing into our non-production environment, so we could kind of see how things were running. Yeah, I mean everything. From the platform, the website itself, to like all the data pipelines, all the API's, pretty much everything got rewritten in Elixir and we flipped a switch. Pretty much, like that's the story, you flip the switch on it. [00:14:07] SM: Yeah, I mean, I'm so curious too, on the Elixir stuff, obviously. But then also, I just recently bought a car and I've been hearing for like the last four or five months about how crazy this car market is. You're talking about how the pandemic affected your deadlines, but I'm also curious how it affected your business. [00:14:27] AJ: Yeah, to be honest, the past pandemic time, there was an uptick in the car business and then as soon as like the uptick hit, then there was like a shortage of cars and vehicle manufacturing. So, then there was an uptick in demand also because there weren’t enough cars. So, from a platform and advertisement platform standpoint, we've been super busy. Super, super busy. [00:14:50] SM: Yeah, I can totally see that. I think my dealership people were telling me that some used cars were going for like 10, 20k over their price that they drove off the lot with, which is not how cars appreciate or depreciate, that's not how that works. So, just to hear about that it's just like crazy. And to hear how it affects even like the engineers working on the systems that support this market is just also fascinating. [00:15:19] AJ: Yeah, it really is. I mean, our visitors are north of like a million and a half daily, that's just on the Cars site. Auto.com, which is like a subsidiary of Cars, or they're owned by Cars. In the middle of re-platforming, we're like, “Hey, we're going to like work with the Auto team and how about we just rewrite their platform in Elixir also?” They reuse the back end, but they just wrote templates that kind of reskinned that for us. So, auto.com looks different than Cars.com. But under the hood, it's using a lot of the same back end that we use. So, that's like two sites in production. The part that was fascinating to me when I got into Cars.com was to realize what the business actually is: it’s a huge ETL pipeline of different data points. The way a listing gets into – when you search, it's a combination of so many feeds, that it's just incredible. Because a dealership doesn't – if you can imagine a dealership with thousands of cars in their lot, they're not going to sit there and upload pictures for every single car and upload the details. So, they have contracts with these data providers. What we do is we parse all these feeds, so we have like a data provider that gives us like, all the info on the VIN, and then we have another one that gives us probably like the pricing and anything around that. Another provider will give us photos. And another provider will give us links into a specific dealership. So, we're taking all these like datasets, and aggregating them and processing them, and then that all gets converted into a listing that a user can actually look at. It's ridiculous how much data we process. It is ridiculous. But it is fun, it's also super interesting. Decisions you make have a huge impact because of the scale that we're at. Think about it. If the LiveView process crashes on a smaller website, you probably don't notice. Just blip, recovers, if you did extra server work, sure, you did some extra server work. When you're processing about 7 million LiveView requests an hour, and like something crashes, you're having that crash across a huge, huge coverage. We have to account for that. That sometimes puts a heavy load on the server side, where usually traditional JavaScript front end, you're putting that on the front end, like on the client side, right? Now, all this extra processing, you're crashing and repeating, crashing and repeating, crashing and repeating. That's on the server site now, so we have to be mindful of these things at the scale that we're working in. [00:17:47] AH: What portion of Cars.com and Auto.com are been LiveView. There are some, I would say, some strong feelings over here at SmartLogic about LiveView. I would say not really positive or negative, just like strongly want to see a good use case for it, right? Want to see it work. [00:18:05] AJ: We're learning. So, I mean, to be frank, our whole front end right now is LiveView. So, if you go on Cars.com right now and you do search, that's all LiveView. Now, that doesn't mean that we're thinking that was the right choice or the wrong choice. We're just, again, because of the scale we have, we're learning some things about LiveView that maybe you couldn't learn about unless you have this type of volume. So, our kind of feeling right now is LiveView, a no brainer for internal tools. Think about it for external sites. Think about it. Give us some really good thought if that's the right choice. Right now, it's running and it's serving us well. But there are definitely some things that we're like reevaluating and just making sure it's in the right place for us. [00:18:53] AH: Just badly like – what were the lessons learned? And you already answered the question for me. [00:18:59] SM: Yeah, do you have any tidbits of advice for some folks who might be interested in maybe trying any new technology? Things to look out for? Is there a stopping point where you get to and you go, “Okay, no, this isn't working. I need to turn around.” Or is it just like, it sounds like you guys have all been all in on whatever new technology, you just go all in on it, which is I mean, frankly awesome, but I'm wondering if there's like a strategy involved there. [00:19:24] AJ: Yeah, definitely. I think there was a lot of research done into Elixir, so there wasn't a lack of confidence in the language itself, maybe lack of experience just because it's a new team built up of new folks learning Elixir. From the scale we're in, I think a lot of good research was done before I came in. I came in when the decision was made already. But the way it was explained, they kind of leaving the monolith, leaving the mana repo. They thought Phoenix with its umbrella apps was the right choice for that, keeps knowledge spread evenly across the engineering team rather than like in silos. I think that, that was not a hard choice. Once we got into production and now we were learning, this is when we're starting to see like, “Okay, this can improve, that can improve.” It just depends, right? Like if I'm writing a tiny app for myself to learn, it's not a big deal. Even for most startups, whether you go with Ruby, Node, Elixir, whatever, Python, it's not going to have the huge impact. At Cars scale, yeah, it has an impact, it matters. I'm guessing, just to try to go back to your question, it would be seeing your team's interest, just if there's enough support for a language, enough of a community, enough resources out there. We thought Elixir was at a good point for it, and it has, it’s come through. [00:20:36] SM: That kind of leads me into my next question. I mean, so we're talking about the impact of Elixir, it sounds like since your team has gone all in on all things, all Elixir, all day, where do you think your team would be without Elixir? I mean, what do you think the makeup of your environment would be? [00:20:51] AJ: That's a hard one. Because I don’t know. I think a lot of the choices that we're able to make are because Elixir is so robust, not that there weren't buyers, right? Things that we needed to fix once we flip the switch in going live in production, just like any large deploy. But when we kind of looked back and thought about, “Okay, there's things missing. There’s things missing that were on purpose missing, we just didn't get to build them.” So, those are like the known issues, right? It performed. It's not an easy feat to perform with the traffic that we have. And it just performed and, yeah, we needed to up some instances of a couple of things. But it handled itself very well. It gives you a lot of confidence with the impact that Elixir has on just having a sturdy, reliable system. This is one of the things that we're trying to get to, which is okay, great. We wrote a web app and ETL pipelines, and we wrote it with like the base knowledge of Elixir, right? We started about two years ago. We might have not written with like, the ultimate patterns. To be honest, we don't use a lot of OTP in the app right now. We’re starting to, but we don't leverage a lot of it. So, we haven't even used the languages like core strengths yet. And yet, it's up and running and it's doing fine, and it's a joy to work with. Now, we're trying to get to that next level, which is okay, we're in production. Now, let's go and see, okay. There's a reason Elixir is so powerful, which is, aside from its syntax and its beautiful way of handling pattern matching and all that, that's the Erlang OTP layer underneath it. What can we leverage there? So, it's still exciting, right? Because there's still like, a lot of opportunities. It’s not like, “Okay, we built it. Okay. It’s working to maintain.” No. There’s still a lot to learn within the framework or within the language itself. I think that's the impact that it's keeping us still up and running. But the engineers are so excited, we're so excited about seeing what else we can do. [00:22:40] AH: I was kind of wondering, like, what if you could speak to it? Have there been tangible, already seen benefits of flipping that switch to Elixir, right? I mean, there were precursors for wanting to make a change, that the whole site was based upon, whether that was like heavy traffic, plus downtime, plus X, plus C, right? And have you already seen some serious benefits of this switch that have been noticed by, we'll call them, the business people? [00:23:10] AJ: I think so. I mean, I don't have figures on numbers. But I know they're saving a ton of money. But I just don't don't have figures on that. But I know like, you know, 20-year-old company with a bunch of contracts, enterprise contracts. I'm sure they're saving a ton of money. I can give you like a specific example that was interesting to me. So, I always think of things in the terms of the consumers. So, if we write our code, but no one uses it, then, like I had fun. But yay. I like to think in the terms of the users. Before, when a user would make an update to a listing, or some type of update would come through the pipeline, the customer support team was waiting for things to kick in, and they would know, “Oh, let me follow up in one or two days. Three days, I'll start making some noise.” Right now, with our non-optimized pipelines yet, like we're working heavily to optimize them a lot more, we can expect to see that on site within about 5 to 10 minutes. We're going from like the expectation of a customer seeing something on site two to three days later to now, like okay, here. A lot of times, if it's not like a change that requires a lot of post processing that we do, like re enhancements, we call them, then it could literally be like almost instant for them. [00:24:18] AH: It's really great when your changes not only have an impact on the outward consumer, but also the internal consumers as well. I'm sure the customer support team is like, “Thank you guys so much.” We want to keep customer support happy. [00:24:33] AJ: Absolutely. We're doing a decent job of that. So, the way we're organized, we're organized into like product combination of product engineering and design. The specific team that I'm on, one of our customers is our internal customers. We're like interviewing them and it's a new process. We're starting to learn it and maneuver our way around it, but actually interviewing like our sales reps and our customer support folks and seeing, “Okay, what's valuable? What's not valuable?” And again, the fact that Elixir is easy to work with makes it, like, “Okay, yeah, we can get there. We can do stuff.” [00:25:04] AH: That's feasible. More than plausible at this point. Have you guys thought about how you're going to, as you start to ramp up what you're doing and your engineering team, how you're going to onboard non-Elixir engineers? That's something that I've experienced as a previous non-Elixir engineer. I mean, it was kind of trial by fire, I would say, going into the environment that I was going into, not this current job, I would like to make that disclaimer. It's hard to onboard anybody into any new language, right? [00:25:36] AJ: I just recently became an engineering manager about a couple months ago, and I've got my first two like hires and we're learning. But both of the hires that I got, I had one that was coming from a Ruby background, maybe two to three years’ experience in Ruby. And then one that's just straight coming from like a non-engineering background. So, learned Ruby, and Node in a bootcamp. We're trying different things out. One of them is providing resources. We were just able to get access to the Elixir OTP course, give them resources like that, but also making it part of their day to learn. It's not just like, “Here's a resource, hopefully, after you get out of work, you can figure this out.” No, this is part of your day, to try to go through this course and learn it. We paired them up for their first two weeks, like an assigned pair programming buddy like that way they could go ahead and observe and then we put them in our business support for two to three more weeks. And that was not so much they can solve tickets and take bugs, but they could get exposed to like the different pieces of the tech stack and be able to explore and just like do a little bit of the initial research spike. I'm not sure if that's the right approach yet. These are like two, we're getting some feedback from them. That's at least to kind of get their feet wet. But it always comes down like until you're writing it, until you're like actually trying to tackle and solve something, it's knowledge, but you need to find a way to put it into practice. So, now. what we're trying to do within the teams is see if we could label some tasks like beginner friendly, something within that, that someone with just coming into the platform, whether it's senior or junior, mid, but they're new to Elixir, like they can take on those things and start practicing that. But aside from that, we have some very solid Elixir folks on the team. So, PR, feedback, everyone's super friendly. So that's good. [00:27:17] SM: I mean, I'm so excited that this came up in this way. This is actually my first week as an engineering manager at SmartLogic. We've been talking about all of these things for the last few months and we're scaling on our team and everything and how to bring new people on in a way that makes sense is always a question on top of everyone's mind. I know that when I was first learning Elixir, one of the first things I did was like onboard into smaller tasks, a small feature that really helped me get a feeling of ownership over the thing that I was working on, and not just feel like I was doing onboarding stuff for a few weeks. I have definitely been in that environment before where I just went to onboarding after onboarding after onboarding, and two weeks passed, and I was like, “I haven't done anything yet.” So, that's nice. That's nice that you're getting them into some stuff and hopefully they'll get some beginner tickets soon. [00:28:11] AJ: It's a careful balance, right? You're afraid to drown them too quick, but like what you mentioned right now, is something that's been on my mind and I've touched on it, which is I also want you to get a win. I want you to feel like I've accomplished something even though I'm new, I've accomplished something. Because getting a personal win is just such a boost. It’s like, “Oh, I can do this, then I can do the next one.” So yeah, I can't say I've found the right balance yet, but I'm working on it. I'm trying to figure it out. [00:28:37] SM: I'm also curious if the folks that you're finding are brand new to programming or brand new to Elixir? There's a little bit of a difference there, that onboarding process. [00:28:48] AJ: Definitely. So, the two that we hired right now are one and one. One of them is new to Elixir. She's been writing Ruby for a bit and Ruby on Rails proficient, and now new to Elixir. The other one is new to programming. He was actually a former Cars employee who was an accountant like manager and then went to school after hours and got his Master's in Software Engineering, and then was able to now get into an engineering team. So, it's like such a cool like story to have him on board. [00:29:17] SM: From Cars.com and another aspect of the business to a developer at Cars.com? [00:29:22] AJ: So, unfortunately, he got furloughed during the pandemic. Then he applied to the one of our partners, like the subsidiary of cars, which is Dealer Inspire, went to work on the Dealer Inspire team kind of like in a QA type role, finished degree, and then applied for engineering back into Cars.com and got hired into the engineering team. [00:29:40] SM: That's so amazing. What an inspiring story of like supporting your own people. I mean, obviously, some sad circumstances in there as well, but I mean, to have them on the team now, that's so cool. [00:29:54] AJ: Yeah, I am happy about that. Cars is pretty good about that. There's another fellow engineer that she's started also from from a different, I think she was on like the tech support type role, and went to a bootcamp, and the company, she was like a first intern, the company carved out an internship for her, so that she could be on engineering team after bootcamp. Yeah, she's still one of our engineers actively contributing right now. [00:30:18] AH: I love this. It's great to have people from all sorts of backgrounds. [00:30:21] AJ: Definitely. [00:30:22] AH: Everybody brings in their own special expertise, experiences that contribute something new to each team, and that's wonderful to have. [00:30:29] AJ: It's funny, sometimes we've gotten stuck on things, and she uses like all her connections for like her tech support days to solve things for us. She's like, “Wait a minute, like, I'm stuck. I need access to this. I know someone who works in that department. Hold on.” She just solves things so quickly for us. It's amazing. [00:30:45] AH: “Let me just ring them up real quick.” [00:30:47] AJ: Yeah, she's cool with them. [00:30:48] SM: Tech support. You have to have some mad problem-solving skills in tech support. So, props to her. [00:30:55] AJ: Yep, she's been great, Amy, shout out. Props to you. [00:30:59] AH: Amy. You're great. [00:31:01] AJ: There you go. [00:31:01] AH: Let's do another one for – I feel like we're kind of tiptoeing around this question that's been in the back of my mind and centering the theme of the season, which is Elixir’s impact. What do you think is the impact of Elixir on onboarding? And on new engineers? I know for me, personally, I found Elixir, much more enjoyable to learn when I was learning it versus when I was learning C Sharp today. Do you think that your new engineers are maybe having a better experience than they would if you were using a different language? [00:31:36] AJ: I think it remains to be seen with the two new ones that we had. I'm fairly confident they will be, but it's still to be determined, I guess. From my own experience, when I started writing Elixir, I was only writing Ruby, maybe what, two, three years at that point. So, it's not like I have a lot of deep background in programming. One thing I really enjoyed about Elixir, as a newer engineer was less magic, more like in your face. Here's what you can look at to, what's going on. I can look at a function and whatever came into the function, that's what I've got to work with. When I'm trying to debug or understand something, I can focus on a very specific piece, rather than wondering, “Hey, that this value come because of the instance? Did it come because of a class instance? Did it come from somewhere else that, I have no idea. Is this active record magic or is this something in my code?” Not that Elixir or Phoenix doesn't have a little bit of that sprinkled in, you can definitely sprinkle in some macros and some magic into Elixir as well. But it's not the norm, right? So, for the most part, I can point a new engineer or myself at a piece of code, and here's what you got to understand. Here's everything. What comes into this function? Here are the options. We're pretty good about writing tech specs. So, here's like can come into this function. Here's what we expect out. Focusing on here, understand this piece, and then we can move on to the next. I think that's the simplicity of like – that’s more the functional programming, rather than Elixir, but Elixir uses it, makes it very easy to teach. I don't have to cover a bunch of other outside topics for you to understand this piece of code right here. [00:33:11] AH: I think that was 100 percent my experience in learning it, as well. It feels very clear and precise when you start off, which is great. Just in general, for anything, I would say. Do you think that there are any ways that Elixir has impacted the programming community as a whole? Have we yet to see that? [00:33:32] AJ: I'm not sure. I mean, I think when I started, I went to like a RailsConf, and I thought the community was awesome. I got a very similar feeling, just smaller, when I went to my first ElixirConf couple years back, which is there's excitement. Now, if you look at like the Elixir Slack job posts are daily and a couple multiple day. People are starting to write about Elixir, people are starting to recognize what's happening with the language, the advantages of having like such a solid stable foundation with with Erlang. I think the impact is already happening, but there's still a bunch of opportunities. I just got my first Raspberry Pi and I started learning Nerves. That's been in the backburner for a long time, and I just like, “Okay, fine. Let me buy a Raspberry Pi.” So, I went to buy one. I'm just getting to Nerves right now, and so I started digging into it. And there's a whole other like application impact of the language in a whole different field, like an IoT. I think there's a lot to still come with what Elixir is going to do in the community, the programming community. [00:34:34] SM: Awesome. What do you really hope to see? What is your ideal, you want to see this from the Elixir language or the Elixir community in the next 5 to 10 years? [00:34:44] AJ: More people knowing about it, more people writing it, understanding it, enjoying it. I think I would love it if I could see some bootcamps or initial courses from the get go taught in Elixir. If you've ever tried to debug JavaScript, even understand some of – once you get into frameworks with Ruby and then you would compare that to how you could explain that in Elixir, it would be nice for new engineers. I would love to see like the new – you’ve never written a line of code before, we're going to teach you how to program with Elixir. That would be super interesting. But yeah, I mean I just wanted to keep going. I wanted to keep going. [00:35:21] AH: Maybe you could have like a combo bootcamp, taco shop type a deal, and I'm not really sure what the rewards program could be. But there's got to be like a free taco situation in there. Maybe like you eat 100 tacos and you get a free course. [00:35:37] AJ: Hey, you know what? You're onto something. [00:35:43] SM: So hungry. [00:35:43] AH: Tacos will always bring people to the table. [00:35:46] SM: Next ElixirConf, because I can't make this one. We should have like a little taco hangout table. [00:35:54] AH: I love that idea. [00:35:54] SM: Just have happy hour. Put 10,000 tacos on the table, invite everybody. Jim Freeze, if you're listening this, please. [00:36:04] AJ: I do have a question but I do want to call myself and Sundi out and say that when we went to Lonestar Elixir, one morning we didn't want to eat the provided for you breakfast, and so we we took an Uber to one of the drive thru taco joints in Austin to get some delightful breakfast tacos and we rolled on up to the conference center with just foil wrap breakfast tacos in our purses. [00:36:30] SM: Everyone knows is eating bagels in here you have your breakfast tacos? [00:36:33] AJ: Somebody made this breakfast taco 30 minutes ago. [00:36:38] SM: You got to do what you got to do. When I travel, I think about meals where I eat the hotel food or the conference food as like a wasted meal. I'm like, “Okay, I'm here for three days. I have nine meals or whatever.” I make sure I optimize each one. I have to eat the new thing. Alex and I found barbecue one night. We found tacos the other night. We were looking for good margaritas another time or like a combined time. There's a strategy involved. [00:37:08] AJ: Think that's one of the major goals of traveling anywhere, even if it's for a conference, like go eat the good food that's there that you don't have by your house. [00:37:16] SM: And sometimes the conference travel can be tricky because you want to go to the places where the other people are going. And maybe that's not like the spot that you had picked for that night, but you want to – you have to balance seeing people versus food. I used to have the struggle when I used to go to New York. I would go for three days, two nights to visit for work on a few jobs back and no one ever wanted to eat. I wanted Korean barbecue. I wanted hotpot. So, I always had to dedicate one night to going out with all the friends and I might not eat that night. You never know. New Yorkers, they be crazy. But then the second night, I'd be like, none of you talk to me, I'm going to eat my food. If you want to eat the food with me, fine. But I'm going. Strategies. All about strategies. [00:38:00] AH: You’ve got to stick up for yourself and the food that you believe in. [00:38:05] SM: Yes, exactly. [00:38:06] AJ: When I went to Chicago, right before pandemic for like an event that the company had, I made sure to sneak away and go try Chicago's taco neighborhoods and found some amazing carnitas, by the way. Chicago has some good tacos. [00:38:18] AH: I recently had my first Chicago style hot dog, which iI was wary of. [00:38:23] SM: Here, in DC? [00:38:24] AH: No, I was in Chicago. [00:38:25] SM: Okay. I was like, “Excuse me.” [00:38:28] AH: I was wary of it. But I was like, “I'm here. I've got to do it.” Because if I'm going to do it, it's got to be in Chicago. I was a little wary about the whole tomato – not the whole tomato, sliced tomato and a whole pickle on a hotdog. But I kind of loved it. So, I would like to give a shout out to the city of Chicago for coming up with a great hot dog. [00:38:47] AJ: For having good food. [00:38:48] AH: Exactly. Cars.com is still headquartered in Chicago, yes? [00:38:52] AJ: Still headquartered, but everyone's remote right now. [00:38:54] AH: Is there a plan for people who live in the Chicago area to eventually go back to an office? Or is that kind of too far away to speculate on? [00:39:03] AJ: They’re playing it, I guess, based on the circumstances, but at least the whole engineering team, regardless of where they live is now fully reclassified as remote. So, engineering team, there's no expectation of that. [00:39:16] AH: What have been some ways that you guys dealt with the remote working situation? At least for me, I love working from home. I get to walk my dog in the afternoon, I get to cuddle her if I'm having a hard day. But the rain shift into working remote is kind of hard. I think it makes planning your day, like we were talking about earlier, even harder, because it is very easy to be like, “I want to go sit on my couch right now.” How have you migrated to a fully remote environment? [00:39:45] AJ: So, before pandemic, we were a hybrid remote just because of hiring Elixir developers across the US and then some contractors outside of the US. So, there was already some kind of pattern of working with folks that are not in the same office that you're in. But I think the hybrid environment has its own challenges. And then when everyone went fully remote, it almost like eliminated that barrier that the hybrid environment created. It just forced everyone like, “Oh, wait, I can't just go over there and talk to you. I have to write it down. I have to put it on Slack.” I think the main things to get used to or like instead of the DMs, put it on the public channel, just in case anyone else has like something to talk about. Within those specific teams, hopefully, you're creating a good culture where people feel like they can talk with each other. Not always easy, right? We just went through a whole launch of the whole platform. So, there was some crunch time in there and we're trying to move away from that mentality of crunch, because it's easy to kind of get in that mode, or the expectations for other people to be in that mode, and we're trying to like make sure we're not 100% there yet, but creating the vibe of like, we're no longer in crunch. we still want to deliver, of course, but we want you to get better. We want you to learn, we want you to do that. We do like the tech all meetings. One of the managers does a very good thing, which is like the coffee hour on Thursdays and so you'll just open up a Zoom and it's like, just come hang out have coffee. We're navigating it, I think we do a decent job at it. But the social aspect of it is a little bit tougher one. [00:41:16] AH: I think probably everybody is struggling with the social aspect of it. It's not the same to sit in front of your computer and have a margarita virtually with your coworkers even though it is still good. [00:41:27] AJ: Margarita is still good. [00:41:29] AH: Margarita, great. Seeing your coworkers, also great. Not being able to clink glasses, not the same. [00:41:34] AJ: Exactly. [00:41:36] AH: It’s just not the same. [00:41:37] SM: I do get screen fatigue, like my eyes physically are hurting after a while. But I do like it just because I don't feel that like anxiety about having to schedule in some stuff. I used to have this rule of like no more than one or two things per day that I could do physically where I would be physically located. That kind of came from college. If I was at my university and then I had to travel to my internship, no more than those two things. I can't travel to a birthday party, like a city over. That was just too much for my brain. So, having the virtual happy hours and socials has been nice because I don't have to leave. But we’re developers, we’re lazy sometimes. The other thing though, is that I used to really organize all of the happy hours and the meetups, and I have never had a break like this in my life. So, I’m well rested. [00:42:31] AH: In order to be your full self, you have to be fully rested, Sundi. [00:42:35] SM: This is true. [00:42:36] AH: Coming from somebody who's tired right now. It's just what it is. Angel, I wanted to end on a fun question and it was, have you bought a car on Cars.com? You could still answer, but I wanted to change it to after working at Cars.com, do you have a dream car? [00:42:57] AJ: Interesting. I just moved to Colorado two years ago and I was always like, I grew up a city kid engineer. I moved from like being outdoors to like sitting in my office and wanting to be an engineer. I definitely gravitate towards the indoors. But moving out here has really made me appreciate the outdoors. I'll drive out to the mountains and I'll see like these people with a cool SUVs with like the big tires and the tent on top, and that they keep going. I don't know if they do or they just posting on Instagram. But it seems cool. So yeah, I think that would be like my dream setup right now. A nice SUV with some good off road equipment that I can take into some remote trail, and then realize I'm really cold and I want to go home. [00:43:40] AH: I was looking at those car pop up tents recently because my partner and I have a Subaru. They're expensive. Wow, they're expensive. But man, they're so cool. I feel that. I feel that desire deeply. Even though I feel like my dream car is probably like a Volvo, which is pretty lame. Shout out to Volvo though, you make great cars. [00:44:01] SM: Well, I was never a fan of driving. So, it's just not something that I thought about. But I did recently get a Subaru Crosstrek that I'm very happy with. But I got it just now. So, if I wasn't happy, there’s something wrong, right? [00:44:19] AJ: Well, the Crosstreks are fun cars and Subarus are all over here. Actually, we just sold our Outback just because we wanted to get something a little bit bigger. We have a nice German Shepherd puppy that keeps growing and we want to fit her in the car. So yeah, we were thinking of something a little bit bigger. So, we just sold the Subaru, but Subaru nation here in Colorado, by the way. [00:44:38] AH: Yeah, I have a 70-pound dog. So, the Forester that we have is perfect for her. She needs to fit. How old was your Subaru Outback by the way? Did it have like hundreds of thousands of miles on it? Because I feel like that's kind of the standard for Subaru. [00:44:52] AJ: I wasn't that cool yet. I was just getting there. I was just getting there. It was 2013 with 111,000 miles, so not too bad. [00:44:59] SM: I think Eric also just got a Subaru. So, I guess the Wizards, we’re a Subaru fam over here. [00:45:06] AH: Strong Subaru product endorsement. Subarus are great cars, everyone. [00:45:12] AJ: Subaru, interested in rewriting your platform to Elixir? [00:45:17] SM: So good. Angel, it been great having you on. Do you have any final plugs or ask for the audience? [00:45:22] AJ: Plug is, I just want to keep working with cool Elixir people. We're doing some interesting stuff. I think Cars, we're trying to do a much better job of letting the community know of like the cool things we're working on. So hopefully, this helps give us that start. So, thank you so much for having us over. Hiring all the way from principal to junior engineers, as you just heard, so if you're interested, cars.com/careers or just reach out directly to me, and yeah, I'll connect you and get started. [00:45:53] AH: Yeah, it was delightful to have you on, Angel. Thank you so much for joining us. I'm glad you got to teach us. [00:45:57] AJ: No, no. Thank you so much. It was so fun. And the nerves are starting to settle down now, right on time, right when we're ending but the nerves are slowing down [00:46:04] AH: Just like life, right? Of course, but you did great. You were a great guest. So, thank you so much for joining us, Angel. I really appreciate it. [00:46:11] AJ: Thank you. [00:46:12] AH: So, everybody that's it for this episode of Elixir Wizards. Thank you once again, Angel, for joining us. It was really delightful to get to talk to you. Elixir Wizards is a SmartLogic production. Today's hosts include myself, Alex Housand and my co-host, Sundi Myint. Our producer is Bonnie Lander and our executive producer is Rose Burt. We get production and promotion assistance from Michelle McFadden. Here at SmartLogic, we build custom web and mobile software. We're always looking to take on new projects. We work in Elixir, Rails, and React, Kubernetes and more. 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 more on the impact of Elixir. [END] © 2021 Elixir Wizards