EW S5E11 Transcript EPISODE S5E11 [EPISODE] [00:00:07] 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 will be your host. I’m joined by my sublime co-host, Sundi Myint, and my exquisite producer, Eric Oestrich. This season's theme is adopting Elixir. Today, we're joined by a very special guest. We're doing something a little out of the ordinary. We're joined by the President and Founder of SmartLogic, Yair Flicker. Hey, Yair. How are you? [00:00:36] YF: I'm doing great. Thanks for having me on the show. [00:00:39] JE: We're super-duper glad to have you on. We have a lot of questions that we want to ask you, especially around founding SmartLogic, and of course, adopting Elixir. After some time, of course, of SmartLogic being around. We wanted to break the ice with this question, which was, what was your first job ever? [00:00:59] SM: Paid job. First paid job. [00:01:00] YF: Sure. I'll tell you my first two. It was the summer of eighth grade. Maybe seventh grade. My neighbor owned an internet service provider and computer repair shop. The first summer I worked for him. I worked at the ISP. This is back in the days of dial up, 2400 BPS, something like that. Anyway, I was a customer service rep and helped people figure out how to get online. Help them figure out why Windows would not connect to the internet. These people would call in and I had to help them troubleshoot over the phone, without being able to see their screen and just figure out what was blocking them from being able to connect to the internet. That was the first summer. The second summer, I worked in the computer repair part of the business. This is back in the day when people would get a motherboard, a CPU, hard drives, video cards, ethernet cards and plug them all in. I would troubleshoot things like, BIOS, OS issues, broken hard drives, so on and so forth. And get these computers fixed up and return to the customers. Those are my first two jobs in middle school, high school. [00:02:16] JE: Wow, middle school. You were 13-years-old at the time? [00:02:21] YF: I think so. [00:02:22] JE: Wow. That was in Ohio, where you're from? [00:02:24] YF: Columbus, Ohio. [00:02:25] JE: Rock and roll. Sundi — [00:02:27] SM: That’s amazing. I wonder how many people actually have a — who were in the tech industry have a first job that was in tech. I feel like you don't hear that story too often. Eric, what were you? [00:02:40] EO: I was a Walmart associate as my first job. I think, right as I turned 16. My parents said, “It's time to get a job.” [00:02:48] YF: You’re one of those people greeting you when you walk in, or tell you where to get a shopping cart? [00:02:53] EO: No, it was in the hardware department, which I don't think I was supposed to be, because I eventually got moved out. You just zoned it. You just pull things forward to the front. [00:03:04] SM: Justus, what was your first paid job? [00:03:06] JE: Well, my first real job, I could not wait to get out of the house and get a job. When I was 14, I was just knocking on doors. And the local dry cleaners that my dad used agreed to pay me $5 under the table an hour to tag clothes and take customers. Although, when I was younger than that, I did do a couple of PayPal jobs, designing forum signatures for people in Photoshop. I only did a few of those and I was 10. All right, well that's happening. I did not know that about your first job, Yair. Because, I think almost a more interesting story is how do you came to — [00:03:45] YF: Hold on. Before we move on, we got to find out what Sundi’s was. [00:03:48] JE: Oh, I'm sorry. Yeah. We're new to this icebreaker thing. Yep. Sundi. [00:03:52] SM: I was a salesperson. Or I mean, a cashier, I guess technically at the local music store chain. I think in the Maryland area, Music and Arts is a pretty prominent name for renting music instruments and stuff. It was actually where I first rented my first instrument. That was how I got started in music. It was cool to go back as a teenager and rent other kids’ first instruments to them. I think it's nationwide now. Well, I know it's nationwide now, but I think it's even got a bigger push now for lessons and stuff. [00:04:25] YF: What was that first instrument? [00:04:27] SM: Violin. [00:04:27] YF: Cool. [00:04:28] SM: Technically, trumpet. Ah, that didn't work out very well. I did two classes and was like, “No, no, no.” I switched to violin. [00:04:34] JE: Eric also plays violin. [00:04:36] EO: Yeah, this was from Music and Arts, right there. No one else can see this, but on the video I'm pointing at it. [00:04:42] SM: Amazing. My 16-year-old self is really happy with this. [00:04:47] JE: Yair, tell us how you founded the world's best software development agency ever? SmartLogic. [00:04:52] YF: Sure. Well, first, I'll say that I came to study computer science. I got a BS and MS and CS at Johns Hopkins University in Baltimore, Maryland. I had a business partner in the company, John. He and I took all of our classes together. It was the end of our fourth year, towards a five-year degree. We had been rejected from some joint internships that we had applied for. It was the end of the school year, the academic year, and we had nothing to do. We said, “Hey, wouldn't it be fun if we gave this consulting thing a shot?” Without much of a plan, we just went down to the Maryland State Department of Assessments and Taxation, and filed a one or two-page form to create an LLC. That's really it. Not much of a plan — [00:05:53] JE: You didn’t have any clients or anything? [00:05:54] YF: No. No. What we did to start out was reply to all the people that emailed the Hopkins CS department, looking for kids to work on their applications. We would reply to them and ask, “Hey, would you consider hiring a company?” We got a good response doing that. We also spammed Craigslist at the time, 2005. People would post their jobs to Craigslist. I wrote a series of scripts to send automated emails to Craigslist ads. I've been copying some Craigslist URLs, hit the PHP button, or DotNet button, or Java button, or whatever it was, and an email would go out to those people. Of course, today, you'd get blacklisted. Back in the days of the early days of the internet, the wild, wild west, that worked extremely well. [00:06:44] SM: That’s crazy. It’s so interesting to think about that from a starting point. You said there was nothing — this was a summer thing? You guys had looked for internships and you didn't quite find anything? [00:06:58] YF: Yeah. Our thought was, we had a year left in school. If the whole consulting thing didn't work out, we could graduate and get real jobs. [00:07:06] SM: Okay. How do you come to that decision then? You're graduating, you're about to graduate, and you consider continuing doing this thing that you started, or as you say, get real jobs? [00:07:17] YF: Well, we were able to generate revenue right from the start. We were able to run the tiny company and complete our studies. John had one semester left, I had two. He was able to go full-time after a semester. We built up a little bit of a cushion, because we didn't have to pay anybody. We just collected some money in the bank account. When we graduated, we were able to make our first full-time hires. Things slowly picked up from there. [00:07:54] JE: This question just occurred to me, which is, was there any point after that initial founding of the company, where things were more challenging than they usually are? I've been a SmartLogic for almost four years now and it's always been smooth sailing. Some challenging times, but nothing was extremely severe. I'm just curious if you've had any times that were extremely rocky. [00:08:17] YF: There was one time when we were close to being unable to make payroll, before anybody on this call joined the company. Rest assured, we are in a good financial position. That happened once a long time ago, in the very early days. Since then, I would say, probably normal challenges that any company would face, whether it be slow times, lack of business. It happens. I think it happens to every company, every consulting company, or personnel issues, or lack of direction, stemming from me, or what have you. I don't know that the challenges we face are really unique to us. Yeah. Thankfully, things have been good the past couple of years, and looking forward to seeing what the future holds. [00:09:10] JE: How did you dodged that bullet at the time, or deal with the stress? [00:09:15] YF: Well, clients paid. You know how the business model works. Employees record time, we send invoices for the time and contracts being what they are, clients will decide when they're going to pay. If the company doesn't have enough cash built up to weather the ups and downs of when clients decide to pay, it can be difficult to make payroll. [00:09:37] SM: When did you make the transition from hands on the keyboard, coding, to more leadership style things from a day-to-day basis? [00:09:45] YF: A long time ago, probably over a decade ago — did not find it that difficult to transition out of coding day-to-day. I don't know if Eric has ever seen me write any code now. [00:10:01] EO: I think you were out of it when I showed up. Yeah. [00:10:04] YF: Yeah. It wasn't a conscious decision, I would say. Just over time, I decided to stop coding and focus more on some of the business operations. [00:10:15] SM: That does lead us into a little hint of our next thing here, is that Eric, you have been here for a decade. Justus has some questions for you on what that was like. [00:10:26] JE: Right. I was just curious what it was like working on software during the time of prohibition. Is riding dinosaurs as dangerous as it sounds? Also, was Socrates as annoying as they say? No, sorry, these are all terrible jokes. No, but seriously, though. Eric, you've been here longer than anyone else that’s still at the company. And you've known Yair the longest. What has changed the most, in your view, from in the last 10 years? [00:10:53] EO: Probably the size of the company. I think when I started, there were maybe 10 people. And then it's dipped down to seven. Now we're at almost 20, I think, whatever our official number is. Might be bigger than that at this point. Who knows? When I started, there may have been more offices before this. I'm not actually sure. I started at the ETC, Emerging Technology Center, which was in a school. That then we moved to the Cane Company, ETC. Stayed there for two or three years. I don't super remember. Then we moved to the Broom Factory. Up until now, we're totally remote. I guess, size and offices. [00:11:35] JE: I want to hear what Yair has to say about that as well. I also wanted to follow up on this, Yair being technical thing, because one of the first things I noticed joining SmartLogic, we do a lot of lunch talks. A lot of technical discussions at lunch, and Yair is a pro at asking the hard, technical questions, which gives him away as having those technical fundamentals. I'm curious, Yair, have you worked on that, asking hard, technical questions, or do they just occur to you and you're genuinely curious? [00:12:05] YF: I can't say that I do anything intentional to hone my question skills, especially as it relates to technical questions. I am a technical person. I am genuinely interested in the tech. Yeah, as a self-taught programmer, but then also later, classically trained. I've seen tech from all different angles. [00:12:28] SM: Sweet. That leads us into this question that we have around technologies that SmartLogic has used in the past and how we've decided to use certain technologies over others. I think Eric can jump in here. [00:12:43] YF: Can I say one thing? I know, there's always a question on how did you get into programming. I think we skipped over that, because I talked about Hopkins and studying CS there. I had many years of programming experience before getting into Hopkins. I started programming when I was maybe 10, 11, 12-years-old or so, because my father worked at the Ohio State University as a math professor. He would bring home computers that they were throwing out. These are old, massive clunkers. They had monochromatic monitors. It's just orange, fixed with text on a screen. I think it was running DOS, although it might have been running some other command line, shell, something or other. I would tinker with these things. I learned how to study the man pages, the manual pages, to learn all the different applications. And just poked around and had a great time. Columbus Public Library had free dial-up internet. I would sign in and I would use things like Pico and Pine, super old school email clients, telnet in and just send emails, and I don't know, do whatever kids do. Then I got into programming, because my — [00:13:59] EO: How close to the movie Hackers was it? [00:14:02] YF: Well, it wasn't a green screen. It was orange text. A little different. Anyway, my friend in middle school, sometime around then, gave me a book on QBasic. I brought that home and learned QBasic and then learned a whole lot of other programming languages over the years before going to college, and studying more programming languages. [00:14:26] JE: I mean, do you remember what you're doing? Were you having fun, or what were you doing really early on? [00:14:33] YF: Really early on, creating procedures, go-to, just jumping around and stuff like that. Then I remember creating a graphing tool. Y equals MX plus B. Then you could put in the slope, you could put in the B and then it would just plot a graph. I thought that was really cool. That was probably — [00:14:53] JE: You’re trying to make your homework easier. [00:14:55] YF: I don't think that was even for homework. I think I was just being a nerd. [00:14:58] JE: Okay. Just super curious. Because there's an app idea or something that you're like, “Oh, I got to build this,” that compels you to learn. [00:15:06] YF: Yeah. Later on in high school, I was very active in my synagogue and in the — it’s called the National Conference of Synagogue Youth. It’s a Jewish organization. I created a bunch of applications for them to help manage member databases and the different events they have. That was Visual Basic. I was creating GUIs, tying into access databases, deploying stuff to IIS, and just having a lot of fun. [00:15:33] EO: Wow. IIS. [00:15:35] YF: Yup. DLL hell. It's a thing. [00:15:40] JE: Talk about the early days of SmartLogic, I mean, you were saying PHP, or Java, or something like that. I mean, this is not at all what we do now. I think it's probably interesting to learn how a consultancy that's successful over a couple of decades evolves. [00:15:54] YF: Yeah. Well, when we started out, we took anything we could get. A lot of PHP, C#, Java, basic HTML, CSS, JavaScript applications, maybe some Python, maybe some ASP, .NET. I don't really remember. Anything people would pay us to do, we were happy to do. We were capable, like everybody at the company is right now. We were able to learn any language and get up to speed relatively quickly. That was fun. We had our first foray into Ruby on Rails back in the days of Slashdot, if you remember what that is. [00:16:35] JE: No, I don't. [00:16:37] YF: It is a precursor to Reddit, I would say, and a precursor to Digg. Linking news sharing website, but Slashdot was more or less exclusively focused on nerds, on people in tech. Kept reading all this stuff about Ruby on Rails. I remember like, “Hey, we got to check this thing out.” We hired an intern from school, one of my friends at the time, and we created a time tracking application; one of many that we have created over the years. We do not use homegrown time-tracking software anymore, because it’s terrible. That was our first foray into Rails. This was pre 1.0. I think it was point 0.8, 0.9. I forget what it was. Then we rode the Rails for a long time. Then what was it? Four years ago, five years ago, I forget what, but we had our first foray into Phoenix and Elixir on a very small application, two-week application. The thought there was if Elixir didn't work, then no big deal. We could just execute in Rails and keep in the Rails land. [00:17:46] JE: I'm also curious about, I think that every entrepreneur, it's the maker versus manager distinction. You have to learn a lot to be an effective leader, manager of people. I'm curious, when in the evolution of the company did you start diving into the literature on business and management and sales and all the different aspects? I mean, probably the very beginning. Also, was there a point where you realized, “Okay, I have to do this myself”? [00:18:16] YF: I've been reading books for a while. Sometimes reading books alone, without any structured study around it does not take me, at least — does not get me very far. Over the years, I've tried a ton of things, whether it be management roundtables, or peer-to-peer roundtables with other CEOs or people in tech, whether it be going to conferences, focused not just on technology, but also on business, working with business advisors who work with lots of other folks running companies. I hadn't found the perfect thing for me, but I keep trying. I make sure to be intentional about my own professional development, so that I can hopefully be a good manager, or at least, lead the company in a good way to provide an environment where everybody learns and everybody is empowered to do good work. [00:19:15] SM: One of those business decisions was, at least it seems to me, that one of those decisions was to move more in the Elixir direction. I'm curious as to — we've talked a little bit about this first project, but when did you start seeing a business opportunity there? When did you start saying, “Okay, the direction seems like we should move to Elixir”? [00:19:35] YF: Sure. Back in the mid to late 2000s, when Rails hit the scene in a major way, and companies that hitched their wagon to the Rails train did extremely well. That was the vibe I got a couple years ago with Elixir, that Elixir was going to be a big thing. Not necessarily the next big thing, but a big thing. There's tons of space out there for many different programming languages. It just seemed like — my intuition told me that it would be good for us to get by on this Elixir thing. Also, as a programmer, I love functional programming languages. In my mind, you can write really beautiful software. Not to sound cheesy with functional languages. I knew that that would be a good direction to go, and that we would be able to attract the type of people to the company that I want to work with, people with an academic bent, or the same philosophies of programming that I have. I think that has worked out as I've expected and out. [00:20:46] SM: Have you seen that as a hiring advantage? We've talked about this a ton, I think with other folks, but it's interesting to see it from the inside. [00:20:53] YF: Yeah. I think it helps us focus our hiring efforts. I think Elixir, because of its functional bent, because of its ability, because of the ecosystem, it attracts a super high-caliber developer, and the type of developer that's attracted to Elixir is the type of developer I want to work with, like you three, and everybody else at the company, day-in, day-out. [00:21:19] JE: Okay, we're all taking a moment to blush. Maybe you can get a little bit more into the details of the narrative there. I'm curious, what the early conversations, if you remember any of them were like, around it. I mean, you were probably having conversations with Dan, about introducing new technologies, about selling clients on the new technology. Do any of these specific moments stand out to you? [00:21:42] YF: Most of our clients don't really care what technology we use. That's definitely not true for 100% of clients. There are definitely some clients that find us and want to hire us, because of our expertise with Elixir, React, Rails, whatever it is. By and large, most of our clients don't really know what the back-end technology is. They just trust that we can do the job well, and that we will be able to execute. Early on that first project for Stanley Black & Decker, where we used Elixir, they could care less what the back-end language was. It was for the marketing department there. They weren't coming to us because we had expertise in this or that language. They came to us, because they thought we could do the job, and we did. — [00:22:29] EO: As far as I know, that app is still running in Heroku somewhere. [00:22:32] YF: It is. [00:22:35] JE: I'm also curious about, maybe, technologies that have come up over the years that we passed over that did not meet the bar, or the criterion, whatever the standard was at the time. Do you remember what any of them were? Could you talk about why? For example, we're not writing JavaScript in Elm. [00:22:56] YF: What is Elm? [00:22:57] JE: Okay, that's a good one. Elm is a JavaScript framework, or is it a framework, or is it a DSL, Eric? It's a functional DSL, I think. [00:23:05] EO: I believe it's a language that compiles to multiple back-ends? I think it will spit out as JavaScript and possibly, something like OCaml. I'm not sure on that. [00:23:16] JE: People know a lot of — not a lot. A handful of people in the Elixir community are huge Elm apologists and hear about it a lot. I think when I first arrived here, some of the folks that were excited about Elixir were excited about Elm as well. [00:23:34] YF: Yeah. Well, what I can say is it sounds lovely. It really does. Is it the most pragmatic thing? I don't know. That's not a loaded question. I genuinely don't know. I know, I haven't heard about it a lot. [00:23:47] JE: What about other, I don't know, emotions in the company — to move things in a certain direction? I'm sure at some point, someone was like, “Let's start doing things in Node.” Or did that never come up? [00:23:59] YF: It’s come up and not really a lot. There hasn't been a big push for that. Just like there hasn't been a big push for Mongo. On the contrary — [00:24:08] EO: Stay away. [00:24:09] YF: — The types of clients we have work with relational data. Anytime somebody talks to me and they have a vanilla web application, and some developer chose to use Mongo, I want to apologize for developers all throughout the world. Why would you use a non-relational database for relational data? I just don't understand. I still don't understand. In Mongo’s defense, I have not installed Mongo on my computer. The notion of document storage, I just don't understand. It just is not something that I comprehend for relational data, specifically. As far as other technologies, other things that I'd say we avoided intentionally, do you remember a couple years ago when Twitter rewrote their whole front-end interface in some really heavy JavaScript libraries, like a meg or two to download, back when there was a lot? There was some really heavy JavaScript framework, like Adobe Flex. It just had such a terrible experience for the user, because you're waiting there for Twitter to load, when really, all I want is some HTML, some CSS, and the least amount of JavaScript in one file. Not across 15 files. Those types of things, we avoided. I forget what that technology, what that library was. [00:25:33] SM: It wouldn't make Twitter load really fast with a very light load that we've already seen works, is that LiveView? [00:25:40] JE: Oh, let's talk about Live View. What's your take on LiveView, everybody? Yair? [00:25:45] YF: I don't know that I'm qualified, or not to have an opinion here. You tell me. [00:25:51] JE: I've already run into at least one mess. Eric. Eric has strong feelings, though. [00:25:55] EO: Yeah. At least for the foreseeable future, I don't think our projects will be using it. I don't know. I want to make sure that the things are figured out before we put a big project on it. [00:26:11] SM: I mean, jokes aside, it's an interesting point though. People are looking at Elixir more. We don't know where they're coming from, but I see a lot of noise around LiveView. This season, we are talking about adopting Elixir. People are trying to make this argument to people of Yair’s status in their companies. “Hey, Elixir. Bring in Elixir. It could be fast. We could write a Twitter clone in 15 minutes.” This is the thing, the shtick, the pitch, essentially. I don't know. What would we say to the folks who are trying to get Elixir in there in-house, advice-wise? [00:26:45] YF: I think with a lot of the things we've tried at the company, it's been small experiments, small changes, and building incrementally from there. An Agile approach to agile software development. We don't make big radical changes. It's more small course directions, small changes that over a long period of time add up to a lot. Much like we tried Elixir on a two-week project. Well before then, we tried Rails on an internal application that really didn't matter if — it wouldn't matter if that project was a complete failure, because it wasn't for paying clients. Things like that, starting small; if it's writing a new microservice in Elixir, or if it's writing new parts of an application in Elixir and integrating with the older software. That's generally an approach that I like. Hey, small experiment. If it doesn't work, no big deal. Move on and just try something else. [00:27:51] SM: Yeah. I know a lot of companies who are doing, like, “We do professional development days.” I know companies have weeks like that, or days where they all go off and either try new technology or new project. Anyone out there who gets the opportunity, I highly recommend you try something in Elixir. If you want to try something in LiveView, that's a thing. I know personally, it's been harder for me to find actual regular Phoenix tutorials because everything is Live View right now. I'm actually like, I would like a regular Phoenix tutorial, please. [00:28:23] JE: Yair, for people who are listening, who are maybe in your position, but in Rails consultancy, so people who are still doing the same thing that we were doing, let's say six or seven years ago — but who don't want to be locked into that groove. What is your — I guess, what do you have to say to someone in that position? What benefits do you think that they would get from taking a look at Elixir? Or let's say, a startup that's trying to decide — “What are we going to build our MVP in?” Why might we go the Elixir route, from a business perspective, over the Rails route? [00:28:54] YF: In my mind, it's a matter of the people that you want to work with and who you want to attract to work with you to build a company. It seems to me that Elixir attracts a certain type of developer that understands the benefits, whether it be functional programming, or the myriad benefits that Elixir brings. Rails is great. There are a gazillion use cases for Rails, much like Elixir, and there's a ton of overlap there. We still use Rails on some projects, not any new projects, but some of the long-running clients that we've had, some for a decade or more. We're still using Rails there. I think it's a great choice. What I keep hearing, day-in, day-out from everybody on the team is how Elixir scales really well. The messaging, the gen servers, scalability, all that stuff is great, how stable it is. It's not necessary to deploy updates all the time. All that stuff in my mind offers a lot of business benefits. Again, I'm going to bring it back to people. I think the Elixir world attracts a certain type of developer. That is the type of person I want to work with. Which is not to say that I don't want to work with Rails developers. Certainly not what I'm saying. I mean, there's great talent there, too. I like the Elixir world. [00:30:21] JE: For this non-technical person who just heard you talk about scalability, I feel sometimes, people don't really know exactly what that means. Could you maybe just give them an idea of what it means for something to be scalable and why that's a good thing? [00:30:37] YF: Sure. I would put the question back on all of you. Does Elixir scale in most use cases? Or in what types of use cases does Elixir scale better than Rails? That's a technical question. I would think, if a non-technical person is making technical decisions based off of the capabilities, the perceived capabilities of the tech, I would question that line of thinking, or why a non-technical person is getting mired in that. You can talk about the talent pool, or how many Elixir or Rails developers there are. I don't know. If you're able to use fewer developers, because your application skill is better, then there's some obvious cost benefit analysis right there. Is talent more expensive? I don't know. I haven’t pored over. I don't have great data on my fingertips. The data out there on-pay sucks, to be honest. As far as the scalability thing, I would put that back on you three. You tell me. [00:31:43] JE: Yeah. I think that you, in not so many words, from a non-technical perspective, it's basically how much bang do you get for your buck, right? I always use the example of Discord, putting a million people on one box, or a million connections on one box. That's the canonical example. Or I think of Instagram, being able to get to a million users, or whatever with eight developers on the team. That's what I mean when I say scalability. As opposed to certain social networks right now that are struggling to scale to millions and millions of users and they basically have to throw money at the problem by just giving Amazon Web Services all of their venture capital dollars. [00:32:25] YF: Yeah. [00:32:26] SM: Cool. This episode, as we mentioned, is a little special. We were able to source from inside of SmartLogic, burning questions that all of our employees had for a year about the company. We said that we were talking to him today and here we are. One of our first questions here is, how are you able to keep Dan and Eric for almost a decade in an industry that almost always encourages folks to hop around? [00:32:51] YF: First of all, Dan and Eric, thanks for being around for so long. It's been a pleasure working with you both. What can I say? Well, first of all, let's see what Eric says. I'll try to give an answer. I think we're reasonable people, three of us are reasonable people. The company has not had wild swings. Hopefully, Dan and Eric have felt security at the company and we're not going to go off a cliff anytime soon. Hey, the company's been around since 2005. There's some evidence to that. I hope that folks at the team, Dan and Eric and everybody else continue to be challenged professionally and continue to grow in their career. I'll say, when that stops, it's time to move on. We've had a lot of changes in the past year alone, whether it be management structure, growth, types of projects, size of projects. It feels like it's never really a dull moment. Hopefully, that's worth something. Also, for a small business, there's a lot of flexibility that comes with that. Not a lot of wild swings, I think. I like to think that the small changes, the small incremental changes, versus wild swings, is something that the people at the company, that work at this company like. Certainly, there's a whole other class of people that like the wild swings, and I'm sure that's exciting for some people, but that's not really the vibe at SmartLogic. [00:34:24] SM: Eric, do you have a follow up to that? [00:34:26] EO: Yeah. Being a consultant, there's definitely a benefit to being at a consultancy that can say, I've done my 40 hours, I'm turning off, and using the rest of my time to go work on side projects, or whatever. Being able to go to a bunch of conferences, when that was the thing. That was fun. All that fun professional development stuff. [00:34:50] JE: Which leads us to another great question that we have here, which is about developer happiness. Yair, how do you think as a leader in technology, about developer happiness and how it impacts the success of our projects? [00:35:03] YF: I think that without happy employees, you can't really have happy customers and happy clients. That charity starts at home. If we're not taking care of our staff, or folks, then how can we be expected to take care of others? That's always very much on my mind. I think the two are just interconnected. I always tell clients, or prospective clients, when we have a pissed off client, then that goes right back to the employees. The team picks up on that. It's impossible not to pick up on that thing. When we have happy clients, generally, the staff are happy. Everybody likes to do good work, likes for their work to be appreciated. The two go hand in hand. Really in my mind, they're inseparable. For my part, I'm not really doing much, if any client work these days. More of my work is behind the scenes and trying to make sure that we have systems in place, to try to ensure employee happiness. Not every day is perfect. Not every month is perfect, but that's life. Hopefully, we're going in the right direction and continuing to make those minor course corrections to get us in a happy place. [00:36:25] JE: For me, this brings up what I think is one of our core values, I think, in an official way, but it's definitely live it, or I think, you live it, Yair, which is trust. Can you talk a little bit about trust? I think you wrote out those core values, maybe my first or second year here as an official thing. I think that trust was right at the top of the list. Anyway, it always occurs to me that that is the main thing that we try to do at SmartLogic. Can you talk about that? [00:36:50] YF: Yeah. I have a couple of thoughts there. One time, years ago, we did do some marketing research project. Hired a consultant to talk to our clients. One of the exercises they did was to ask the nine or 10 clients to use three words that describe us. Then they put those words in the tag cloud. The biggest word, the one that everybody used was trustworthy. What stood out to me was that companies want to work with people they trust, trust to do the job well, trust in the service provider’s ability to execute. At the end of the day, we're people working with people. If you don't trust the company, then you're not going to hire them. The second thing I'd say is that most of our business these days comes from referrals, leads, people that know of us, know somebody at the company, myself, or have crossed paths with us. I don't think people make a referral unless they trust that the company to whom they're referring the business can do the job. If people in the community didn't trust us, then we wouldn't get referrals. Yeah, it's not something that I've been super intentional about. It just happened. Then, yeah, I had that epiphany years ago when I saw that tag cloud. Since then, we have been more deliberate about, “Hey, we got to be trustworthy, we got to engender trust, we got to do the right thing, do right by clients. Then that'll just beget more business.” [00:38:28] JE: I just want to add on to this, because it ties in very nicely to my hiring process, actually, at SmartLogic. I remember, I wasn't really looking for a job, but I saw the ad on Technically, and the office looked really nice with the lights and the natural lighting and the plants and everything. I remember, I would get on the phone with you and I think Dan and Eric and I would ask everybody the same questions to see if there'd be discrepancies. Like, people can't lie consistently, especially among a group. I would just see if there would be — — But everybody had the same lines and they were all totally consistent. To me, it just blew me away. Because I'd worked in startups for so long, where there's so much duplicity, for lack of a better word. [00:39:10] SM: Let’s say, Kool-Aid. [00:39:12] JE: Yeah. And I love startups. I love that environment. I love the intensity of it. Coming to SmartLogic, there was a real authenticity and consistency that breeds trust. That was before trust was a word on the wall, which I don't know, it's still not. I mean, we're remote now, so there's no wall. Yair what makes a good meeting? [00:39:33] YF: I'm so glad you asked. Who asked that question, so I can give them a virtual taco. [00:39:43] SM: I believe that was Melvin. [00:39:46] YF: I think a good meeting starts with good preparation. What does good preparation mean? To me, the hallmark of a meeting, for which the leader has prepared, has prepared well is a good, detailed agenda. If you've seen my agendas, and I know the co-hosts on this call have seen my agendas, they are super detailed. Full complete sentences, detailed. Full complete sentences, which can be read and understood out of context. [00:40:19] EO: Be verbose. [00:40:20] YF: Be verbose. This actually ties into one thing. You didn't ask, but I'm going to tell you, what is my favorite programming language. It is, and probably will always be C, as in Charlie. Why is C my favorite programming language? Because there is no margin for error in C. You have to be so explicit and so clear, because you are a layer or two above the CPU, which is really just a dumb thing that does what you tell it to do. If you are unclear in C, then you're going to get pointer errors, you're going to get buffer overruns, and you're going to get zero-day hacks, and yada, yada, yada. It's important to me to be clear and precise. A good meeting should start with a good detailed agenda. One person leaving the meeting and just running through the agenda items, the agenda should be shared beforehand, so that anybody can add agenda items. Whoever adds an agenda item should put their name next to the agenda item, so it's clear who brings that agenda item to the meeting and discusses it. Then finally, the meeting should start on time, not late, and should end early or on time. Then finally, there should be some series of action items coming out of the meeting. What is an action item? It is assigned to a person. It has a date, a deadline and comes with a complete sentence, which very clearly details what the action item is. That's it. [00:41:56] SM: I have to say that once we went super remote, because of the curse that was 2020, I started bringing in these agendas. I started writing agendas this way. Yair did a lunch and learn on how to write a proper agenda. I do a lot of volunteer work outside of work. I have a lot of one-off meetings with people, follow-up, everything's async, everything's email. I will say that the agenda writing has bled into that and everything is more efficient. Time is so much more valuable now, even though we technically got a lot of time back by not having to commute anywhere, but your home time is super valuable. I'm just making much better use of my time with these effective agendas. I just didn't think it was going to affect my life this way. I will have to say, I do appreciate how that's — [00:42:45] YF: Sundi. It makes me so happy to hear that. [00:42:48] SM: It’s a side-effect I was not expecting. [00:42:51] YF: Yeah. I've been involved in nonprofits and organizations over the years. I remember one time, I vividly remember, we were supposed to have a board meeting. The day before I asked, what's the agenda for the meeting? The ED, the executive director said, “Oh, there's no agenda. We’re just going to get together and talk.” I said, “Let's cancel the meeting. If there's no agenda, why are we meeting?” I think, agendas and preparation before the meeting help ensure that yes, you're going to make the most of your time and make significant forward momentum. As you all know, I love agendas and I'm a stickler for a good agenda. [00:43:32] JE: Yeah, that's definitely one of the things I've learned best here. I also love cancelling meetings. That's one of my favorite things to do. Yair, we are going to close up here and we're going to give you a moment to plug anything you want. I have one last question I want to ask. I remember my first company lunch, I asked you this. I remember your answer. I don't know if you remember your answer, but I remember your answer, because it was the funniest thing I've ever heard. I want to ask you, what is your vision for the future? Where is SmartLogic going in the next three, five, 10 years? [00:44:01] YF: Oh, I'm not sure. Maybe back then, it was taking it a day at a time, which probably isn't that great. Now trying to take it a few months at a time. Again, I just want to help build a company, an environment where people are challenged, people are growing, people enjoy their work. I feel a lot of personal responsibility for everybody on the payroll. I take it very seriously, the well-being of everybody that chooses to work at the company. That's at a high-level. I think more pragmatically, we need to figure out how to grow marketing and sales, so that we can get more business, so that we can hire more folks. If we hire more folks, and we have more revenue, then we can do more fun, community-focused programs and community-focused events. I think we do a lot of that. I'm always happy and excited when we kick off some new community initiative. I like to talk about those. Anyway, more revenue to me means more employees, which means more new challenges and more ability to do cool stuff in the community. Justus, what did I say a couple years ago? [00:45:11] JE: It was really close to the same. My question at the time was, where do you want the company to be in 10 years? You said, without thinking about it, you just said, “Oh, I hope we're still around.” I was like, I just thought that was so funny. Yair, as long as I've known you, it really has always been about the people. As far as I can tell, that has always been consistent. You've always been focused on employee well-being. I don’t want to say happiness. I don't really like that word. It's always been about employee well-being and yeah, you've done a tremendous job at it. I wouldn't still be here if it wasn't for that. Thank you. Yair, do you have any final plugs, asks for the audience, where they can find you, etc.? The time is yours. [00:45:50] YF: Thank you. First of all, thank you to the four of you. Sundi, Eric, Justus, Rose. I think the podcast has exceeded all my expectations. It's something I look forward to every week, listening to the podcast. You all are the real MVPs. Hat's off to you. Keep up the good work. Everybody at the company loves it. It's a great value and benefit to the Elixir community. Keep up the good work. Again, hats off to you. Thank you all. Yeah. My only plug, SmartLogic, you know what we do. Custom web and mobile application development. We help you build products. We help you get to market quickly, and in a reliable, consistent manner. Always happy to chat. Whether it be your business opportunities, projects, whatever it is, feel free to reach out. I'm always happy to have a conversation with anybody, and look forward to hearing from you. [00:46:49] JE: Thank you, Yair. [END OF CONVERSATION WITH YAIR] [00:46:51] 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. We'll learn about how they're using Elixir. Hope you enjoy it. [MINI-FEATURE SEGMENT] [00:47:12] SM: Hello and welcome to our new mini-feature segment of Elixir wizards. My name is Sundi Myint. Today, we're speaking with Jake Johnson, Director of Software Engineering at TaxJar. Hey, Jake. Welcome to the podcast. [00:47:22] JJ: Hi, Sundi. Great to be here. [00:47:24] SM: Glad to have you. Can you tell us about TaxJar and your background in Elixir, how you got started? [00:47:32] JJ: Sure. Let me give you the elevator pitch for TaxJar. TaxJar is a sales tax compliance platform for high-performing e-commerce businesses. I'd say at a high-level, we provide sales tax calculations, reporting and filing with a best in-class customer experience. We help all these businesses stay ahead of the curve with a lot of automation. That's where I think we truly excel as a technology company. We're trying to automate as much as we can, like filing sales tax returns with APIs, instead of paper, PDFs. Also, categorizing thousands of products and emergence catalog with machine learning, and doing so with confidence. Then on top of that, we're building highly performant and scalable APIs of our own, using Elixir, of course, which powers calculations for entire e-commerce platforms. You can check out our API and our documentation over at salestax.dev. We were able to get that domain. We use Elixir for our most mission-critical services that absolutely can't go down, where things like high-performance and the ability to scale quickly is an absolute necessity for e-commerce merchants. [00:48:44] SM: Awesome. Your end-consumer is not an average everyday user, but a company? [00:48:49] JJ: Right. Yeah, we are a B2B software as a service company, providing solutions for online merchants. [00:48:55] SM: Cool. How did you decide to use Elixir? Was it something that you had done before in your previous background? Or was it something you decided on as a team? [00:49:04] JJ: That's a great question. We decided on it as a team, I think, back in 2017, 2018. We chose to use Elixir for three reasons. One, reliability on top of the Erlang VM. Speed, as well as ease of use. I think, first of all, I don't think you can beat Erlang’s crash and restart model for error handling. We've never had an issue with the Erlang VM. It's something Elixir and Erlang, it's built to scale with us as we grow, as we onboard and go past 20,000 online merchants and onboard entirely brand-new e-commerce platforms. Then on top of that, we love using Elixir as a language. Traditionally, TaxJar started in 2012, has been a Ruby shop with Rubyists, talented Rubyists. Elixir reads like Ruby, it makes us feel at home. We also like the things like pattern matching, which makes the logic that we have around things like tax rules, a lot easier to follow internally in our system. Also, things like pipes, which, of course encourages simpler, more functional code style. [00:50:05] SM: Awesome. What was your background in programming? How did you get to this position? [00:50:13] JJ: Yeah, so it goes way back. Back in elementary school, I actually got a crush on a girl who was obsessed with the Backstreet Boys. I really wanted to impress her, so I created the Backstreet Boys fan page on AOL Hometown using some HTML and some in-line JavaScript. And a few carefully curated 90s style GIFs. GIFs or JIFs. GIFs. GIFs. Then afterwards, we ended up dating for a few months in the fifth grade. I think I'd call that a success. Ever since, I just enjoyed web development. I think I actually got serious about programming in high school. Mainly C, C++, and I was in the robotics team, and got an internship that led to my first real job. That was writing some PHP and Perl. Many different languages, but it all started there. [00:51:03] SM: I don't think we do awards for this, but that is hands-down, that'd be the best origin story I've heard so far. [00:51:10] JJ: Yes. Yeah. It was all for a girl. It paid off. [00:51:14] SM: Amazing. Jumping back to TaxJar a little bit, as a Director of Software Engineering, I'm guessing you have something to do with the hiring in Elixir and whatnot. Do you see any perks and challenges? Or just perks, no challenges, or the opposite? [00:51:29] JJ: I would say, it's mostly perks. The great thing about TaxJar is that it's a remote-first company. We've always been remote. We're fully distributed across the US. We have a lot of perks as well, including a $1,000 a year budget for personal development. We have a lot of other perks listed on our website. I'll just say that we have a stellar team of engineers working with Elixir every day. It's been a pleasure for me to recruit some of those new engineers, who are excited to write Elixir full-time, always get opportunities like that, and give them a way to solve any challenges and just make e-commerce easier for everyone. We have a fairly streamlined process now for onboarding new engineers. Typically, it's a short round of interviews. Then everyone attacks, or goes through a mutual assessment program to find out if TaxJar is a good fit for you. You'll also have the chance to work on a small project in languages like Elixir and then collaborate with your future teammates, which is generally a good experience for people to go through it. [00:52:26] SM: Yeah, that's definitely really good to know. I myself was on the job hunt last summer, and finding full-time Elixir roles was a real struggle. It's always good to hear about more companies using it full-time like this. When you're hiring for Elixir, do you search for an experienced Elixir engineer, or an experienced engineer, or a junior engineer and you onboard them? What does that look like for you? [00:52:49] JJ: I think up to this point, historically, we've tended to hire mid-career, towards senior level engineers that may have a background in Ruby, or Elixir. I think over the course of this year, and next and into the future, we'd like to just encourage more mentorship internally to help level up our more junior engineers. I think that will pave the way to, for additional, more junior level positions in the future. I also say that we want to create flexibility within TaxJar internally as well. If folks are interested in diving deeper into programming and building a career out of it, there's no reason why you can't apply for these positions internally as well, if you're coming from another team. [00:53:29] SM: Always great to hear. Awesome. Do you have any resources other than peer programming that you recommend to people who are learning? [00:53:37] JJ: Yeah, for sure. Internally, when we get folks started at TaxJar, we're building something out called Engineering Academy, which is going to be a collection of resources and wiki articles to help get you up to speed quickly as an engineer. We're going to talk more about our processes and establish some best practices and provide some technical information on how to get things running locally on your computer to start coding, writing code with TaxJar. [00:54:02] SM: Amazing. This last question is just for fun. If you weren't a software engineer, what would you be? [00:54:07] JJ: Yeah. That's a deep question, for sure. I think I'd be open to architecture, urban planning. Sometimes I ask myself, if I didn't grow up in the information age, what in the world would I possibly be doing? I think earlier, the 20th century, probably some form of writing, maybe some print design. Then I was also thinking about it, in the Middle Ages, what would I do? I think I'm pretty good at archery. The combination of archery and maybe leather working. All I know is that right here right now, building software and leading teams is I think it's my true calling. [00:54:39] SM: That's amazing. I don't think anyone's ever thought about it with that context. I love that. I love that. Thanks again to Jake Johnson from TaxJar for joining us 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'd 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:54:59] JE: That's it for this episode of Elixir wizards. Thank you again to our guest, Yair Flicker, my co-host, Sundi Myint and my producer, Eric Oestrich. Once again, I'm Justus Eapen. Elixir Wizards is a SmartLogic podcast. Here at SmartLogic, we're always looking to take on new projects, building web apps in Elixir, Rails, React, infrastructure projects using Kubernetes and mobile apps using React Native. We'd love to hear from you if you have a project that we could help you with. Don't forget to like and subscribe on your favorite podcast player. You can find us on Instagram and Twitter and Facebook, so add us on all those and join us again next week on Elixir Wizards for more on adopting Elixir. [END] © 2021 Elixir Wizards