Elm Town

Elm Town 71 – Embracing wins with Lindsay Wardell

Episode Summary

Lindsay Wardell tells how she persevered to write her own story as a programmer and shares her views on JavaScript frameworks & fatigue.

Episode Notes

Lindsay Wardell tells how she persevered to write her own story as a programmer and shares her views on JavaScript frameworks & fatigue.

Thanks to our sponsor, Logistically. Email: elmtown@logisticallyinc.com.

Music by Jesse Moore.

Recording date: 2023.11.06

Guest

Show notes

[00:00:20] Sponsored by Logistically

[00:00:49] Introducing Lindsay

[00:01:54] Getting started in computing and programming

[00:06:06] A break in Brazil

"How to teach programming (and other things)?" by Felienne Hermans

[00:09:27] Getting back into programming

Functional and Object-Oriented Programming on Software Unscripted, hosted by Richard Feldman...again

[00:18:55] Why Elm?

Juralen

Functional and Object-Oriented Programming on Software Unscripted, hosted by Richard Feldman...yet again. Seriously, it's good.

[00:28:06] The road to NoRedInk

Wikifunctions

Views on Vue

S08E014 Modern Web Podcast - Elm with Richard Feldman

[00:33:05] JavaScript fatigue

[00:38:04] Standardization around Vite

[00:41:13] The challenge of legacy code at NoRedInk

noredink-ui

Elm Land

elm-pages

[00:46:22] Star Commander

Star Commander (GitHub)

Elm Town 63 – Opening the doors of functional programming

[00:53:47] What are you excited about?

[00:55:50] Picks

Lindsay's picks

Nuxt

NaNoWriMo (National Novel Writing Month)

Blood on the Clocktower

Babylon 5

Jared's picks

Battlestar Galactica

S2E2 - "One Moore", Portlandia

Feel It All Around by Washed Out

Episode Transcription

[00:00:00] Lindsay: I kept suggesting, you know, we should just put some Elm in this code, it'll be better.

[00:00:03] And then I kept telling one of my coworkers, I've hidden an Elm component somewhere in our code, and I hope you find it. Uh, just to see what would happen..

[00:00:13] Jared: Hey folks, welcome back to Elm Town. I'm your host, Jared M. Smith. We'll be visiting with Lindsay Wardell today,

[00:00:20] Sponsored by Logistically

[00:00:20] Jared: but first let's talk about our sponsor, Logistically. At Logistically, we make intuitive software to help logistics teams make better decisions and improve efficiency. Logistically pays me to record Elm Town episodes, as well as pays for production and hosting costs.

[00:00:37] We build the front end for all new features in Elm. If you're interested in our mission and enjoy writing Elm. Please drop us a line, elmtown at logisticallyinc. com. I'll put a link in the show notes.

[00:00:49] Introducing Lindsay Wardell

[00:00:49] Jared: Now, Lindsay Wardell. She is a programmer, writer, and mother, who works as an engineer at NoRedInk, who typically talks about functional programming, Elm, Vue, and Vite.

[00:01:02] She is the host of the podcast, Human Side of Dev, and a podcast guest on Elm and Vite on Elm Radio, hosted by Dillon Kearns and Jeroen Engels. Functional Programming with Elm on PodRocket, hosted by Paul Mikulskis. Functional and Object Oriented Programming on Software Unscripted, hosted by Richard Feldman.

[00:01:23] And many, many more. Lindsay gave the talk, Functional Programming in Vite at ViteConf 2023, introducing Elm, Functional Programming, and how to incorporate Elm into Vite based applications.

[00:01:36] She built elm-vue-bridge to make it easy to integrate Elm into an existing Vue app, and made a project template for building Elm applications using Vite. Lindsay, welcome to Elm Town.

[00:01:50] Lindsay: Thank you for having me. This is exciting.

[00:01:52] Jared: Good, yeah, well,

[00:01:54] Getting started in computing and programming

[00:01:54] Jared: I wanted to know how you started getting interested in computing and programming.

[00:02:00] Lindsay: So, when I was growing up, my dad was working as a programmer. I don't know exactly what languages and things he was doing. All I knew is he was a programmer, but he was working at a company called Columbia Forest Products in downtown Portland, Oregon. And growing up I was always surrounded by computers and I was interested in computers as something to play with in computer games or something to use for, for a tool for, having fun or, or exploring some of the different things like word processors.

[00:02:29] I remember. Uh, being really excited by an early version of Excel and just like, Oh, this is so cool! This is programming! Um, it wasn't until middle school when I started getting into making fangames. So my first foray into programming was making Sonic the Hedgehog fangames. I made a, made a rudimentary website for that. And then as time progressed, I stopped making the fangames and I just kept focusing on the website. My best friend went off and did a YouTube channel, so I was like, Hey, I'll just make a website for you. And so, throughout high school, I was running an online community for his YouTube group that he had created.

[00:03:07] So that went for about five years or so, and that's when I really got into HTML, CSS, PHP. I avoided JavaScript like the plague, because it is, in many ways. Love to all the JavaScript users, including myself, but it's also painful. And that's kind of where it started. But then when I was doing college, I had a couple CS classes and the teachers were not necessarily saying it, but indicating, maybe you should do something else.

[00:03:38] I was getting pretty poor grades because of the joys of migrating from like, PHP and dynamic languages into something like C++. my, my knowledge just was not translating and I thought, well, I guess if I can't do that, I can't be a real programmer. So I stopped, uh, for an extended period until I had a friend who approached me and was like, Hey, have you ever tried programming?

[00:04:02] Have you ever thought about doing that before? I think you'd be good at it. Uh, 'cause at that point I was working in IT management and that's when I made the switch and I, I got back into programming.

[00:04:13] Jared: Let me go back and ask you about this Sonic fan game site. What was that built with?

[00:04:20] Lindsay: So the original site was built on FreeWebs. It was like FreeWebs. com, whatever that platform was. It was a WYSIWYG editor. They had some elements that could use HTML inputs, so I was like, oh cool, I'll play around with this because I can make it custom, and I like that. and then when I started making the site for my friend, that was all just in straight up HTML and CSS.

[00:04:46] I was learning as I went. The original website used iframes to create an SPA like effect.

[00:04:52] Jared: Oh wow.

[00:04:53] Lindsay: And then I just went from there. I remember reading CSS tricks, I remember reading A List Apart, and just trying to figure out what's the right way to do all of this, what's the best way to make this code. And again, I was avoiding what people would consider programming a lot of the time, because I didn't want to touch JavaScript.

[00:05:10] Every time I looked at it, it looked terrible. Made no sense in my head. But then I started getting involved in PHP, because I was using PHP BB for the community, aspect of the site. And so I, I had these two different sites. One was pure HTML and CSS, one of them was PHP, and I wanted to combine them. So I started hacking PHP in order to be a blog, and do the custom pages that I wanted. So, that's, that's really how the, the website got formed into its final state before the community fell apart.

[00:05:41] Jared: Sure, okay, so You started out dabbling with HTML and CSS in this WYSIWYG, building the Sonic fansite, and then kind of avoiding the JavaScript, which, of course, that's understandable, especially if, you know, you don't have a mentor or someone or some good resource to kind of guide along and figure that out.

[00:06:06] A break in Brazil

[00:06:06] Jared: But then you started learning some PHP, and then you decided to go to school. How long were you in school for that before taking a break from it?

[00:06:19] Lindsay: So I had to take a few years break in college because of financial reasons and also I went to Brazil for a bit to take a job there. So at the end of the day, I was in school for nearly a decade, jumping between different degrees and trying to get the right landing point for where I wanted my career to be. At one point I was doing accounting because I was good with numbers, I was good with Excel, this felt like a reasonable match. And then later I switched into IT management and network administration, which was also fun because growing up I got to stick my hands in the guts of lots of computers and build them myself and do all the fun things. So turning that into a job felt like a natural progression in some ways.

[00:07:05] Jared: Okay. Yeah, so, when you were in Brazil, this is kind of a tangent I guess, but, um, were you doing programming or not?

[00:07:17] Lindsay: Uh, some of the time. So I was working as a financial secretary in an office, and as a surprise to the, the owner of the business, I made him a website, uh, for Christmas. And he thought it was the best thing ever, and asked me to keep working on it, so I got to keep working on that. It wasn't, it wasn't something I was getting paid for, it was purely on the side. but it gave me another entry, and that was, that was built with a custom CMS, because I was like, Yeah, I know I could use WordPress, I know I could use PHPBB. What if I built my own, just because? Uh, I think every developer goes through that phase of needing to build a custom CMS, and that was mine. I think it's still on my GitHub, I don't know.

[00:07:56] Don't go looking for it, it's probably bad. Uh, but uh, that's what I was doing while I was in Brazil, was just toying around. I built another application just for fun. Just to explore what I could do with PHP, and it's like, Oh look, I can make post requests and just keep reloading the same site. Now I just have a 5, 000 line long PHP application.

[00:08:17] This is fine. Uh, It was not fine, but it was fun. Um, And that's really where I got into some of what I would consider real programming as opposed to just hacking and playing around with modifying PHP BB.

[00:08:36] Jared: Okay. Well, I do want to bring up one thing. You mentioned Excel, and according to Felienne Hermans, uh, talk that she gave at Strange Loop, Excel is programming. So, that's, that's starting from, uh, you know, early on that you were definitely doing programming. Um, but, yeah, so, you're doing this PHP, you're making your own CMS in PHP, is that correct?

[00:09:01] Lindsay: Yeah, I was making my own CMS.

[00:09:04] Jared: Yeah. Okay, and gaining some Some kind of side projects that you're doing on your own time, but giving you the motivation and giving you the opportunity for building your skills in programming. And, and some of this, and when you're in Brazil, um, and then

[00:09:27] Getting back into programming

[00:09:27] Jared: at some point, I'm guessing you decide you're going to get back into doing more of that.

[00:09:34] What happens next? How does that occur?

[00:09:36] Lindsay: So, I stopped doing programming pretty much entirely in 2014, and I didn't pick it up again until 2017. In 2017, I was working as an operations manager at a freight forwarding company. Um, I was doing Excel work there, and I was doing IT management there, which involved a little bit of programming. Um, it was this.

[00:09:59] This really esoteric framework called Magic from like 1995. Their application was a couple decades old. It was bad. Um, it couldn't be installed anymore. Like the SDK couldn't be installed anymore, so you just had to copy paste and update the Windows registry manually. It was an interesting experience.

[00:10:21] Jared: Whoa, yeah.

[00:10:23] Lindsay: Um, and I just kept thinking, you know, we should get something new.

[00:10:25] We should try some different software. And apparently they'd looked at some software but couldn't find it. I couldn't make a decision. Uh, and then I had that friend, his name is Adam, and he suggested, you know, you should really try programming at some point. I think you'd be good at it. I mean, I have.

[00:10:40] It didn't go great. Uh, but he knew somebody who worked at a boot camp here in Portland, Oregon, called the Tech Academy. So I was like, yeah, I'll go. I'll go check it out. What's the worst that happens? I don't attend. But I decided to stick around. It felt like a decent program. And through that, I realized not only can I work in programming, I could actually do this as my job.

[00:11:02] I feel good with JavaScript for the first time ever. and then their back end language of choice was C Sharp, which was a fun experience. Much better than C And as I'm there, I'm thinking, you know, I could just build the Junior Programmer's Dilemma. I could just build the software to replace this thing at my current company. and in the process the, the owner was selling to her son-in-Law. And I, I convinced him, you know, let me, let me be a programmer. Give me a raise so I don't leave, but I can be, I can be a programmer, I can build you this new software. Just gimme time. And he agreed. Um, so I was able to stay at my company at the time.

[00:11:44] , Lindsay Forwarders, no relation to my own name and build. My first really big application, uh, solo, as I'm just trying to figure out what I already had the model in my head, because I'd been working at this company for a couple years. I just needed to translate it from our old software to our new software, meet our current needs, and deliver it in a way that was effective.

[00:12:11] So I built it, uh, using , originally I built it with PHP, because that's what I knew, uh, PHP. And then there was this funny moment, because I'd never touched JavaScript. And I originally, and I went from like, in a month, I went from vanilla JavaScript, where I was modifying the DOM directly, and there was no state of any sort that was maintained, to, hey, jQuery's cool, I think I should do that.

[00:12:36] So I went from JavaScript to jQuery, and then at the end of that, I was like, wait a minute. I keep hearing about React. What is React? I need to, I need to know more about this. So I went and learned about React, and I said I hate React. This, this is painful. I don't, I don't like it. I don't know why. And then I found Vue, and I looked at Vue, and I said, Oh, Vue is PHP, but JavaScript. Cool. So, I rewrote the entire application that I had at that point from PHP and jQuery with a custom routing solution and everything to just being a node server with REST API and Vue. Uh, just using the Vue CLI to spin that up. And Vue 2. Something, I don't know. That was my first actual application that I had built for a company. Um, I was there for one year more, built an application, it worked. It wasn't perfect. The code's probably not great. I know I didn't do enough tests, because I was a junior dev. I'm just making this up as I go. Uh, I don't know that I was using a linter, I don't know that I was using Prettier, or any of the equivalents, but it worked.

[00:13:45] And from there I was able to jumpstart my career, and get my next job, and then my next one, and my next one, and get into podcasting, start talking about Vue. Uh, and that's how I got here today.

[00:13:57] Jared: Okay, cool. Yeah, so you get into programming by convincing your employer to give you a job in programming when initially you weren't. That's really cool, I like that. And then you take this opportunity to rebuild this application. And then did you say you built another application in that next year you were there?

[00:14:23] Or was

[00:14:23] Lindsay: So I, I, it was just the one application. Um, I had originally scaffolded it out in PHP. and then, it wasn't even because of PHP that I started looking at alternatives. It just felt like the system I was on was slow. So when I spun up a free Heroku instance with Node and connected to my database, it was like, oh look, it's four times faster connecting to the database and reading data.

[00:14:46] Not to mention it's more secure because I'm using a library that's better for that instead of whatever W3Schools was teaching about how to connect to databases that allowed for SQL injections. Um, so, you know, nice benefits at the same time. And, I just went to him and was like, Look, it's four times faster.

[00:15:06] This thing will actually work better. Let's do it. And he thought about it for a bit and he said, Fine, go ahead. Because there wasn't that much written yet, so it wasn't that much of a lift to do.

[00:15:18] Jared: Okay. Yeah, and then so that kind of jump started your experience. You really felt confident at that point where you could go out, find other positions, and keep growing as a developer. So, One thing I wanted to bring up, you were on the Software Unscripted episode, which I mentioned earlier, Functional Object Oriented Programming, and one of the things that you had talked about was how you had tried out a few different frameworks and evaluated them.

[00:15:47] Is this what you were describing there, where you were saying it went from Vanilla. js to React, to Vue, and so on?

[00:15:54] Lindsay: Yeah, that was part of it. At the start, it was primarily to build this application. I was, I was just thinking, what's, what's the best tool to do this? And I narrowed it down through, through process of elimination. I found Angular, React, and Vue, and I, I just did a little bit of research, and I felt like Vue was the way forward, and between the three, this was the most comfortable thing to use. Later, I, as I was getting into The career aspect, I was thinking, well, there's a lot of JavaScript jobs out there that require React. I should probably learn React. But I don't want to. So how can I make myself interested and engaged enough to actually do this? Because I tried taking a couple different courses, and, like, it's fine.

[00:16:39] React is okay. But it wasn't interesting, because Vue was interesting. Vue felt good. Um, so I was at the sink, uh, doing dishes one day. And then I was thinking about, what could I do? And this game just popped into my mind. I'm going to make a turn based strategy game that's on a 9x9 grid. There's players, they have castles, they need to capture towns, they need to build units and move them across the board, and it'll be great.

[00:17:03] And I'll build it in React. And so that was what I ended up doing to learn React. So rather than taking a course, I was able to just apply the knowledge that I already had through Vue. And apply those concepts to React. So I was looking at React, and this was before Hooks came out. So I was looking at React and thinking, Okay, what's the Vue equivalent of computed properties?

[00:17:24] What's the React equivalent of, uh, watchers, uh, from Vue? How can I get these side effects in? How can I, how can I do all of these things that I need to do? And I was able to build this game in the matter of, like, two, three weeks, just because I, I had the idea and I had the, the framework in mind. So I was, I, I, kind of with the, uh The business application that I had made, I did the same thing of, I have this concept, I already have all of the logic, how do I just implement this now? And then eventually I wrote myself into a corner because it was just a practice application. The code was okay, but it couldn't really be adjusted easily. And I couldn't expand it to what I wanted to do, which was support more than two players. I had hardcoded it to be two player. So, at that point I decided, well, This worked once.

[00:18:16] Now I wanna learn TypeScript. And so I rewrote the entire application in TypeScript, but without a front end. I, I wrote it as a CLI and just like a library that you could just plug into whatever framework you wanted. So I wrote a CLI to play my game as a multiplayer experience, which was a lot of fun. Uh, just, just playing a turn based strategy game in a CLI is hilarious.

[00:18:37] Jared: That sounds cool, yeah. Okay,

[00:18:41] Lindsay: then I, and then I. And then I took it from there, and I made it a version in Vue, which wasn't super exciting, just to prove that it worked. And then I tried it in Svelte, because Svelte sounded cool. And that was, that was probably the best version of that, uh, instance of the game.

[00:18:55] Why Elm?

[00:18:55] Lindsay: then I looked at it and said, Okay, I've built this game, and I've done it multiple times.

[00:19:01] I'm going to write it in Elm. And I immediately got stuck, because random number generation is hard in Elm, if you don't know what you're doing. And that's That's where I got stuck, because I needed to generate a random grid of 9x9 cells that had mountains and forests and towns and castles and things.

[00:19:21] And just iterating over that to generate it in Elm was stressful, because I just did not have a mental concept of functional programming, Elm architecture, managed effects instead of side effects. And any of that stuff that we, as Elm programmers, take for granted As, like, a benefit of the language, I was coming into it thinking, I don't know what I'm doing, but I can render some grids on the board, and why is it going the wrong way?

[00:19:48] I don't understand. Because my Y and X axes were, uh, inverted.

[00:19:53] Jared: Yeah, okay. And then, so, you've built this game. What's the name of the game?

[00:20:01] Lindsay: The name of the game is Juralen. Uh, J U R A L E N. And you can find it on my website. You can't find a link to it, um, I should fix that. But I can give you a link to put in the show notes, so if people want to play it, they can.

[00:20:15] Jared: Yeah, sounds good. So, you're building Juralen, or you're rebuilding it. Kind of different frameworks, learning them as you go. You've used React and Vue, and you've migrated to TypeScript, and then You try Elm and get stuck with random numbers, which, uh, I, again, want to send people to make sure they listen to that Software Unscripted episode, because you talk about, with Richard, some of those struggles and, and then Richard explains a scenario he had at Strange Loop about that, uh, experience of trying to coach, uh, a group of people who are new to Elm, but trying to do something that requires random numbers, and I'll just leave it at that, so, so people are interested in, and we'll go check out that episode, but, anyway, you're, you're kind of stuck at this, but I want to take one step back and say, why Elm?

[00:21:16] Why did you even look at Elm?

[00:21:19] Lindsay: So in 2019, I was listening to JSParty. And one of the hosts was bringing up Elm as an example of a programming language. And the description that they gave of it was JavaScript on hard mode, or TypeScript on hard mode, Types on hard mode.

[00:21:34] And That intrigued me, because I had kind of toyed around with TypeScript, I was using TypeScript at work at the time. Uh, ironically building a React application with Next. js. And I kept thinking, well, types are cool, more types must be better. I wanna, I wanna try this, I wanna explore it. And so I found, I found Elm Town, started listening to it.

[00:21:59] Um, started toying around with Elm. and I was just like, this language is so cool. It doesn't look like anything I've ever used. They don't even have parentheses, uh, for calling functions. You know, the, the things that make the type, the Elm language look a little different and, uh, other Haskell inspired languages.

[00:22:19] So I, I was just toying around with it and I kept thinking, this, this is what I want to learn. This is what I want to do. And the, uh, the BSA on the team was. It was just me, him, and my manager. But I kept mentioning Elm to him, and that I wanted to learn it, but it looked really hard, and he just kept encouraging me, and was like, This, you can do it.

[00:22:40] I believe in you. Like, you're, you seem pretty, pretty competent at this stuff. So I, I just, I just kept trying. Never, never found the right time to do it. Never, never got past a lot of those struggles in the first year. And the way that I found that I learned is If I run into a difficulty, it's better not to just keep banging my head against it, because my brain will keep thinking about it in the background.

[00:23:05] So if I'd run into a problem with random generation, or I'd run into a problem with any of the Elm architecture mental model, I'd just set the problem aside, I'd set the side project aside, come back to it later. I did this like two or three times with the game. And eventually, I sat back down and was like, Okay, I'm gonna write Elm and this is going to work.

[00:23:25] And it did. Because I was able to just Get past those hurdles, um, while I was working on other stuff. And then I kept suggesting to my team at the time that, a later team, I was working on Vue and Java, as our application, and I kept suggesting, you know, we should just put some Elm in this code, it'll be better.

[00:23:44] Uh, and then I kept telling one of my coworkers, I've hidden an Elm component somewhere in our code, and I hope you find it. Uh, just to see what would happen.

[00:23:55] Jared: What was it? Or did they find it first?

[00:23:58] Lindsay: I never actually did it, I just

[00:24:00] Jared: Oh, okay. Okay.

[00:24:06] Lindsay: I was in that state in my career where I was suggesting we rewrite to anything else than what we were using. Which, to be fair, we were using Java 8. I don't like Java after that experience.

[00:24:20] Jared: Yeah,

[00:24:21] Lindsay: Actually, fun little anecdote, I learned Java on the spot at that job, because they had hired me for a Node position. But then they actually needed a Java developer, not a JavaScript developer. Like, I got through the entire hiring process and everything, and then in the first week they were like, Okay, so what build tool do you want to use? And I was like, uh, Node? Nvm? Or Npm? And they were like, well, I suppose that you could do that, but I was thinking like Maven or Gradle, and I was like, I don't know what those are. And then somebody was like, giving me a JAR file in order to access the database, and I'm like, I don't think I can read that. That doesn't look like JavaScript. So, that was side tangent, but that job was interesting.

[00:25:04] Jared: wow. Um, so, you kind of got switched out there from what you were expecting to be doing. Start writing Java. So, what's interesting to me, though, is you didn't like Java. I want to ask about that, because you mentioned that you did like C Sharp earlier on, and to me, I learned Java way back in the day when I was in college, and then, um, haven't really used it since, so it may be different, but then I later learned C Sharp for work, um, and found them to be similar enough that I didn't Didn't really see, like, something that I would appreciate from one and not with the other.

[00:25:46] So, is there something that you thought was different about them that made you like one over the other?

[00:25:52] Lindsay: So, I'll admit it's been a while since I've touched C Sharp. I do have a coworker, shoutout to Eric, if he's listening, who will talk about C sharp and F sharp on occasion, and really, really makes the dot NET ecosystem sound really interesting. But the really, like, the first thing that I really liked about C sharp is first off, because it's Microsoft.

[00:26:15] It's that unified experience, especially using the dot NET Core that's multi platform. You're using the same thing no matter where you go, and that's really nice. Whereas with Java, you did have to deal with either Maven or Gradle or whatever. You had to deal with multiple languages between those. Um, nothing felt unified.

[00:26:34] The documentation was scattered. There's this one blog site that comes up, and they always have like two thirds of a solution, and then they skip three steps in the middle. That was really frustrating, trying to figure out Java that way.

[00:26:44] Jared: Hmm.

[00:26:45] Lindsay: Um, but like, the biggest small thing was that in Java, if you want getters and setters for your, your, uh, class, you need to manually write those.

[00:26:58] GetNumber, er, getDate and setDate. And in C Sharp, all you have to do is do the curly bracket get, set, and that's it. And it just works. And it's better, and Every object oriented language should probably do something like that to make life easy. just the, the DX was a lot better in C Sharp, in my opinion.

[00:27:19] Jared: Yeah. Yeah, that makes a lot of sense. And I think probably I didn't run into those issues because when I was writing Java it was for class in college, and so I wasn't building big things where I had to go research a whole bunch. And so, yeah, and then I remember, see I was early on with C Sharp, so I remember at the point when those Get and Set helpers, like automatic accessors were, became a thing.

[00:27:48] Like I remember it was like C Sharp 3. 0 or 4. 0 or something. And I was like, oh yeah, you know, this makes life a lot easier. So yeah, that, that makes sense, yeah, why it would be nicer. And, okay, so you've,

[00:28:06] The road to NoRedInk

[00:28:06] Jared: you've worked at a bunch of different places doing from PHP to JavaScript and TypeScript and using different front end frameworks.

[00:28:18] You use Java at one job, and then at some point you come to NoRedInk where you're at now. So, kind of what's the gap between where we're at in the story and you getting to work at NoRedInk?

[00:28:32] Lindsay: I think the gap at this point is just COVID and, and getting out of where I was at, because when, when COVID struck, as with most of us in the programming sphere, I went to work from home, which I loved, and I didn't want to go back. The more that the company was talking about taking us back to the office, the less I wanted to work there. um, there was some stress in the team, there was some stress at the company because of all of the different changes and shifts. We changed managers. It just didn't feel like the place to be. Uh, so I I started applying at a couple different places. I applied at NoRedInk, but they weren't hiring at the time because of COVID.

[00:29:07] And I got my next job at this dot labs, which is a software consultancy that primarily does JavaScript and TypeScript in all of the different frameworks and all of the different variants of JavaScript that you can think of. Fantastic company. Definitely recommend checking them out. And I got a job working with Vue.

[00:29:27] And PHP. So I was back in PHP, which kind of felt like a nice return home. Uh, I was working with the Wikimedia Foundation on a project called Wikifunctions.

[00:29:36] Jared: Cool.

[00:29:38] Lindsay: and I should, I should also add, during, during the time of, uh, working at the previous company, I had been podcasting as one of the hosts on the show Views on Vue.

[00:29:47] And that experience in the JavaScript community, I feel, really helped me get into the job at this. labs because this. has a huge presence in the JavaScript community. They're heavily involved in conferences and doing their own meetups. They've got their own podcasts. They've got multiple podcasts, really.

[00:30:05] They've got shows on YouTube and everything. And my experience working on ViewsOnView really, really played into that. So I was able to host their show, the Modern Web Podcast. Uh, as well as some of their YouTube only shows. Um, and as part of that, I had the opportunity to interview Richard Feldman on Modern Web because they were like, who do you wanna talk to?

[00:30:32] You, you, you have the, you have the seat, you have, you have control. So I said, I want to talk to Richard. Uh, we got to talk about Elm. And then after that episode aired, he messaged me and was like, Hey, are you still interested in working at No Red Ink? So.

[00:30:46] I was able to get into NoRedInk from there.

[00:30:49] Jared: Wow, okay. So, how did you get started in this? podcast, the Views on Vue.

[00:30:57] Lindsay: There was an opening that came up in November 2019. The owner of the network put out a call and was like, Hey, is anyone interested in being a host on a podcast? We're looking for some people. And I decided to reach out and talk to him. We chatted for a little bit and he said, Yeah, we'll put you on a couple shows, and if it goes well, we'll Keep inviting you on to be on the panel. And it went well, and then COVID happened. Uh, and so all of the other hosts kind of fell off, as either they were busy or they were losing jobs and had to focus on other things. So I ended up running a good number of the shows, along with my co host Steve Edwards. And it was just a lot of fun. I really loved getting to talk to people, get to know more of the Developers in the Vue ecosystem, Uh, as well as expanding out of it, because I didn't, I didn't just want to talk about Vue, I wanted to talk about the people, and I wanted to get those outside perspectives, so I brought on somebody who is a Svelte developer, specifically to talk about Svelte.

[00:32:08] I brought in a developer who is exploring React, and NuVue, to talk about React, and just kind of get all of these different, opinions and perspectives so that it wasn't just this, um, Encampment between two different teams and two different armies. Which so often happens in the JavaScript ecosystem, people fighting about which framework is better.

[00:32:32] Jared: Yeah, that's true. And so you're taking this opportunity, I think, again, by putting yourself out there, right? You're seeking out this position as a host on Views on Vue podcast. And that ultimately helps your career because it led you to meeting Richard and the opportunity again at NoRedInk. So, yeah, that's, that's really cool.

[00:33:01] And you get to meet a lot of people, see different views.

[00:33:05] JavaScript fatigue

[00:33:05] Jared: On the episode with Dillon and Jeroen of Elm Radio, Elm and Vite. You mentioned on there, JavaScript fatigue, and I was curious, have you experienced JavaScript fatigue, yourself?

[00:33:22] Lindsay: yes, I would say so. The JavaScript ecosystem is very fast-paced. Uh, there's always something happening. There's always something getting released and something changing. That's not to say that you can't use JavaScript as a stable thing in a business.

[00:33:37] Uh, I've been working on a side project using Nuxt three, uh, for the past few months. I started it in July. Everything happening around me doesn't change the fact that I'm using Nuxt three. I don't feel a need to, to migrate or change my ORM or change anything else that I'm doing. But there's a lot going on. And at some point, I started to feel really just exhausted with trying to keep up with everything that was happening. Uh, and this, this was specifically because of the position I put myself in. I was doing podcasting, I was talking to people, I was trying to keep up with the industry. And then when I joined NoRedInk, at the same time, I was like, I need to focus on Elm, I need to focus on the tooling and languages that we use at work, not just this thing that I've been involved in in the community for so many years. So at the end, I needed to take a step back and stop doing Views on Vue. I stopped doing that in March 2022, because I needed to focus on what I was doing for money, for work, not just For fun, and staying in tune with everything that was going on. And I'll just say, in that year, since I stepped back from 2022 to 2023, so many new frameworks got released, so much happened. Different tools became the norm, other tools became Less sought after. React itself went through a number of transformations, and that's, I feel like that's the time period when Vercel became like, the steward of React in many people's eyes instead of meta. Because everyone was looking at what Next was doing instead of what the React core team was doing.

[00:35:16] And meanwhile Vue was just keep, it just kept moving along and doing its thing and getting everything up to date and feeling good about itself. And Vite was taking off then. And then there was the first ViteConf in October, uh, 2022. And it was just so much happening in that one year that I stopped looking at it. It was just exhausting to, to think about. And then on top of it, just making sure all, on the JavaScript projects that I did have running. All of the tools that I was using needed to be up to date still. Uh, the recommendations that I was making to people, the best example I can think of in the Vue ecosystem is switching from using Vuex for global state management to Pinya.

[00:35:55] That's a small change, but it's still a change. And it just felt a lot. Um, and that's not to say it's bad. I think the innovation that's going on is going to lead to good ideas surfacing. From multiple different places, it kind of feels like seeds that are scattered across really, really good soil.

[00:36:15] Everything is going to grow, and it's going to be very interesting to see what comes to the top. But, if you're trying to watch all of them grow at once, that can take its toll.

[00:36:26] Jared: yeah, that makes sense. I was getting a little bit of anxiety just hearing about it all. Thankfully I've been in the Elm community enough that I feel like I've been able to avoid a lot of that fatigue recently, so, um, yeah, I, I feel that, um, in the, in the past I have felt that anyway, and so, you had this JavaScript fatigue, was this before you started at NoRedInk, or were you using Vue on side projects and kind of keeping up?

[00:37:02] Lindsay: I've used Vue on a couple side projects here and there. The latest one, like I said, I started that in July. that is not yet publicly released, but one day it will be. And, I mean, JavaScript is nice to work with if you have the right tooling around it and the right safeguards. So, I feel like now I'm more capable of getting into it without feeling the overwhelm and the stress.

[00:37:29] Um, but before I don't know that it was the usage so much as just the pace that everything was happening around. Uh, especially in the space of, like, static site generators, server side rendering. The Astro framework was really taking off during that time, too. And it's super cool, and I love it, and my personal website is built on Astro. But it was also like, here's another thing. Now we're going to learn these patterns. Now we're going to have these difficulties. While we're talking about JavaScript fatigue,

[00:38:04] Standardization around Vite

[00:38:04] Lindsay: actually, one of the things that I think has really reduced that stress is the number of projects that have adopted Vite as their developer, bundling, magic, back end, super fancy tool of choice.

[00:38:17] I don't know what they're describing themselves as right now, honestly. I'm sorry, Vite. It's this really nice thing because if you go and work on Svelte, you're using Vite, if you're using Solid, you're using Vite. If you're using Astro, you're using Vite. If you're using Remix, uh, you can now use Vite, like everybody is migrating in this one direction with a couple exceptions.

[00:38:39] and so when you, when you go to a new project and a new framework, at this point there's, there's a lot more familiarity behind the scenes. And it's not familiarity that is complicated, like. Webpack was. It's not familiarity that's complicated like some of the other bundling tools. Vite is something that is simple, and it is familiar, and it's user friendly.

[00:39:03] Which I think really helps make it a good universal choice. And I'm really glad the JavaScript ecosystem is going in that direction. It's kind of standardizing around it.

[00:39:13] Jared: Nice. Yeah, so I think that that makes a lot of sense, right? You're, you're bouncing between different technologies, but they all have this common tool between them, right? The Vite system and configuration, right? I think you mentioned that on the Elm and Vite episode on Elm Radio, that you can Take parts of those configs that maybe you've used in one project, and then use it in another project, and it will work, because it's going to be using the same plugins and things.

[00:39:45] Lindsay: Yeah, one of the ways that I combat my own JavaScript fatigue is I don't start a project if I can't use Vite.

[00:39:51] As I'm working on my side project in Nuxt, I'm able to bring across the config so that I can have offline capabilities in my application. So I already have the ServiceWorker configuration and the PWA configuration set up in the game I'm making, Juralen. I could then just migrate that over to my next application, and it just works.

[00:40:10] Because they're using the same tooling, they're using the same plugin ecosystem. And, I mean, in some ways we could have gotten that if we had standardized around rollup, too. Vite is just using rollup, uh, with some additional niceties. But the additional niceties, I think, are what really has made it worth circling around, as opposed to Webpack or Rollup or any of the other bundling tools that are out there.

[00:40:35] Jared: Yeah, and it's this front end that's, I think you've said, has Also used some ES build in it, and so it's like combining other tools, but standardizing the configuration and the tooling around those tools behind the scenes and making them nicer to use, if I get that correct.

[00:40:56] Lindsay: Exactly, yeah.

[00:40:57] Jared: Okay. Cool, yeah, so you're combating this, this JavaScript fatigue by having this common Vite, um, tool around them, and of course you're using Elm at NoRedInk.

[00:41:13] The challenge of legacy code at NoRedInk

[00:41:13] Jared: Do you use Vite at NoRedInk, or do you have any other challenges there?

[00:41:21] Lindsay: I think the challenge at NoRedInk is that this applies to any company that's been around for an extended period of time. We have code that was written long before the current set of developers are here. We have code that was written with different structures and architectures in mind. And making that all work with the current paradigms and making sure that all of the developers today are able to work in the code, that's going to be a challenge.

[00:41:47] And making sure that it works in the way that we want. Like, today we have single page applications. That's kind of the standard across the industry to have single page applications. How are we going to get the old code that wasn't designed with that to work in the modern And I think these are some of the challenges that everybody gets to work on as we move code.

[00:42:08] Unfortunately, legacy code exists because it was written before you. So when you're working on legacy code and moving it to the modern engineering paradigm for whatever company you're at, it's going to pose a challenge, but it's still something that's going to be exciting to work on. It's going to be something that's, um, Even if it does present difficulty, it's going to be rewarding in itself.

[00:42:34] Jared: Sure. Yeah, so, that challenge of taking Existing code that was built with one architecture in mind, and then trying to transform that into the current paradigm that's being used is, yeah, and make it work fluidly, right? So that there aren't any hiccups, not cause problems for users in the process, or other developers, right?

[00:43:01] You don't want to slow people down in the process of migrating. So, yeah, that's certainly a challenge, but you're It sounds like it's one that you're interested in tackling. Is there a particular part of that challenge that you could elaborate on?

[00:43:23] As it relates to Elm? Or does it relate to Elm?

[00:43:26] Lindsay: One of the easiest things that I can point out is NoRedInk uses a component library that is fully open sourced. And I like to point at it as an example of accessible Elm, and accessible code in general. It's maintained by NoRedInk, NoRedInk developers are working on it. I don't really think it's used by anyone besides us, but it's kind of a nice place to look and just see. this is, this is an example of high quality Elm. And, one of the challenges is the environment that we're using to, to work on that is something that is a little bit custom. I think there is some ES build going on. Uh, obviously the Elm compiler is doing its thing, but we've got a dev environment, we've got a local environment, we've got tests, we've got all of that.

[00:44:13] And then, Running that experience is typically going to go through Nix. And, one way that I could see using Vite to improve that is, rather than using a more custom solution, we can standardize along with the rest of the, I mean, even the Elm ecosystem is starting to standardize around Vite in many ways, at least for the JavaScript parts.

[00:44:34] Like I mentioned in my talk, Elm Land and Elm Pages are both using Vite to some capacity. And If we could do the same thing, even if it's just for a development environment, and it's just one aspect of our application, of course, but even if we could do that, it would speed up the build speeds, it would make things a little more standard, if we wanted to do something a little more custom, it would be easier to do, potentially.

[00:44:59] So, I think there's room to explore in that direction what we're doing, um, both as NoRedInk, and as the Elm ecosystem, just kind of embracing. When there are wins in the JavaScript ecosystem, embracing that in our own world as well. Because at some point, we all need to write port modules. We all need to interface with JavaScript, and it's gonna be a lot easier if we're using the best JavaScript tooling as well, that we can.

[00:45:28] Jared: It sounds like then you're trying to take this custom legacy project that handles the NoRedInk UI that's built in Elm and kind of the development environment around that. Looking at different ways, possibly using Vite in order to standardize that and make it faster.

[00:45:50] Yeah, that seems like an interesting project. Yeah, so good luck with that.

[00:45:56] Lindsay: Thanks, and to be clear, this has just been experiments so far. Nothing has happened in that regard.

[00:46:03] Jared: Sure.

[00:46:04] Lindsay: I think it's fun to try, and I think it's fun to see what can happen.

[00:46:09] Jared: Yeah, that's exciting. Well, maybe in the future we'll have to talk again and have you describe how that experiment goes.

[00:46:19] Lindsay: I'd love to do that.

[00:46:21] Jared: Okay,

[00:46:22] Star Commander

[00:46:22] Jared: so we've talked about how you came to Elm, some of your struggles along the way, the challenges that you faced and overcame, and one of the things that is kind of a tangent here is one of the things you built is something called Star Commander. Could you tell us about that? What is Star Commander?

[00:46:45] Lindsay: So Star Commander is yet another project that I was working on. This one is a board game, card game, somewhere in between, where you are taking the role of an interstellar empire's leader and forging your destiny into the galaxy. Exploring the board, flipping over cards to discover planets, and just trying to, you know, build up your dominance, and then, as necessary, fighting against your opponents to defeat them, and rule the galaxy with whatever kind of fist you would like to use at the end of the day.

[00:47:28] Jared: Cool, yeah. I saw this on your GitHub profile, is why I brought it up. And, yeah, so it's a physical game. Um, is there an online aspect to that as well?

[00:47:42] Lindsay: There is, so, this was primarily built for testing purposes, but I built a version of the game that was fully digital, so that instead of having to shuffle up all the cards, or even print the cards, I could just render them on the screen, move them around the board, and play against myself to see the interactions between different cards.

[00:48:06] And it worked, most of the time. I never finished any full version of it, which is why it's not published anywhere more officially. But as far as testing goes, it does the job, it does what it needs to do. The website for Star Commander itself also became a playground for trying out different things. So, the website is built using Astro at this point.

[00:48:29] Originally I built it using Iles, I L E S, which was an island framework along the lines of Astro, but written with Vue as the default, as opposed to a custom Astro component. Unfortunately, I had to migrate it to Astro in order to accommodate everything it wanted to do. But I have a search engine built into that website that uses Elm in order to filter down the cards.

[00:48:56] There's only like 52 of them, but if you want to look up a particular card, then you can type that in and click on it. It's updating the navbar via ports. So rather than be a full SPA, it's still just interacting through JavaScript. It's been a fun project to work on, both from building a board game as well as the coding aspect to it.

[00:49:19] Jared: Sure, yeah, and the idea of using it as a playground to, you know, try out different frameworks, like I, I happened to see the little bit of Elm in there, and tried that out, and so, yeah, that was, makes a lot of sense why you would take that as a, an opportunity to do that. And then, the ability to, yeah, like you said, use that to iterate and, and try things out without having to print off cards or make, you know, physical changes, right, that's, that can be a quicker feedback loop there.

[00:49:57] Okay, and then the artwork for that. Who made the artwork for those cards?

[00:50:04] Lindsay: All of the art for the cards was AI generated using DALL-E.

[00:50:08] Jared: Okay

[00:50:10] Lindsay: I started working on the game in like 2009 2010 as just this side project. I wanted to make a game Uh, I was really into Magic the Gathering at the time, and I had an idea for a variant, but I wanted to make it sci fi.

[00:50:21] After doing a little bit of testing and feeling it out. And, the easiest way to make a card game, when you don't know what you're doing, is just, uh, lovingly rip off other people's art. So I would steal art from, like, uh, Sins of a Solar Empire was my original inspiration. Uh, shoutout to Ironclad Games and Stardock Entertainment.

[00:50:42] And From there, I expanded the idea. I needed to borrow more art, so I started bringing in Star Wars, Star Trek, Stargate, Battlestar Galactica, whatever would fit the feeling and the vibe. Got a little bit of Babylon 5 art in there, that's my favorite sci fi show. And, at some point, I was playing with all these cards that I had made that had other people's IP on it.

[00:51:11] And it just didn't feel good anymore, and I wanted to be able to have cards that were completely mine. Uh, and my goal had always been, I'm going to learn to draw, because I don't know how to, uh, draw and do sci fi art like that. But I wanted to learn to do it so that I could make the art for the game myself, and say, this is fully, 100 percent developed by me. And, I didn't get there. Not yet. And, but I needed, I needed art. So, I reached out to the AI, uh, generator. Started playing around, realized, oh, this is actually kinda cool, this can make the art I need. It's not 100%, and I had to fight with it. DALL-E does not know what a space station is, in case anyone's concerned. Took a lot of work to make those, with different prompts and just hoping for the best. But I was able to get some basic art, so that I could make all of the art for the game that way. Replace all of the art that I had lovingly borrowed from different IPs that I'd enjoyed over the years. And so if you go to the website, uh, starcom, s s t a r c o m game dot org, uh, dot com, sorry, not dot org. And you'll, you'll see only the art that I generated that way at this point. My long term goal is not to make or sell the game using AI art, because I feel like that is pushing into, uh, artists revenue, and it's pushing into IP theft at some levels. So Rather than sell the game when it's ready with AI art, I want to be able to raise funds, hire an artist, get actual quality art that fits all together done, and then release that.

[00:52:50] At the moment, I lack time and money, so I'm not hunting that down right now.

[00:52:56] Jared: Sure but I like that plan, that strategy and It makes me think of this episode that I recorded with Mika Naylor where she described using AI to Help get ideas about creating her own art and building her own thing. And I think, yeah, if nothing else, it's allowed you to take the, these IP concepts and then replace them with your own ideas.

[00:53:28] And then you can use that, if nothing else, as fodder to send to a, someone to actually build that for you. An artist that would, uh, that would make what, what you ultimately want. Out of that. So, yeah, I'm excited to see where that goes as well.

[00:53:43] Lindsay: Yeah, it'll be fun.

[00:53:46] Jared: Yeah.

[00:53:47] What are you excited about?

[00:53:47] Jared: So, I guess as we're nearing the end here, what are you excited about?

[00:53:53] Lindsay: Ooh, that's a big question. Uh, what am I excited about? I am excited whenever, so starting with Elm, since that's our podcast, whenever Evan starts talking about something with Elm on the backend, I get excited. I, one of my original draws to JavaScript was that I could write JavaScript on the frontend and the backend. And at the time, I wasn't doing anything with ES modules on the backend, so I was having to use two different syntax between frontend and backend. But it was still JavaScript. I could copy and paste logic, and life was good. And when I work on a project with Elm and Haskell, we use Haskell at NoRedInk. And it's really fun when I can copy an Elm function and put it in Haskell and just make a couple tweaks, and it basically just works. Because the syntax is close enough. If I could just copy and paste Elm from the front end to the back end, that would make me so happy. I think, I think that's what I get the most excited about right now. I, I feel a similar feeling whenever I think about Elm pages. Um, Dillon Kearns is doing great work over there.

[00:54:58] I think I get the similar feeling whenever I think about Lamdera. But having something that's, that's official and standard would be Just that extra step forward that I think Elm would really benefit from as a language. So, I think that's where I get excited.

[00:55:14] Jared: Yeah, I share that excitement for sure. I was at that talk and it was, it felt kind of surreal to be there, to just kind of feel the excitement of the possibilities with it. Um, but yeah, I have mentioned that talk already on a couple of unreleased episodes. I can put a link to that in our show notes as , so, is there anything else you want to talk about before we move on to picks?

[00:55:45] Lindsay: I don't think so. I think my remaining topics are more pick related. So, let's go ahead with that.

[00:55:50] Picks

[00:55:50] Jared: Excellent. What pics do you have for us today, Lindsay?

[00:55:53] Lindsay: So, pick number one is I've already mentioned Nuxt. js from the Nuxt team. It uses Vue as its front end of choice. But if you want to try something that's a little more Javascripty, a little less Elmy, but still has all of the niceties that you would like out of a framework, I would try it out. I've been using it on the side project that I've been working on.

[00:56:18] And it feels really good to work with. Um, it allows you to create your API routes, it allows integration with TypeScript, it maintains your types between front and back end, and if you want to incorporate Elm into any of your front end, it works really seamlessly. Um, part of my experimentation when I was working on the elm-vue-bridge was making sure it worked in Nuxt, because I think having a server side Even if it has to be TypeScript.

[00:56:49] Again, one day we'll have Elm on the backend and it will be great. But for now we don't. At least not 100%. But having a server side backend that's using TypeScript and interacting with your database that way, I'm using Prisma as my ORM of choice. I feel like it gives a lot of strong type support, which is nice. And then, just having that route, the types match already between the frontend and the backend, and then passing that in directly as flags into an Elm application via JavaScript, you don't have to think about it at all. Basically, you're just going from a fully typed backend to a fully typed frontend that passes into Elm, and life is good.

[00:57:25] You could just run your entire application that way, and you would have no trouble. So if you're an Elm developer wanting to check out something a little more JavaScripty, I would recommend Nuxt. Um, my second pick would be, we are recording this in the month of November. Uh, sorry if I'm breaking any, any, any rules about saying when things happen.

[00:57:46] But, uh, I am participating in National Novel Writing Month in the United States. And, this episode's probably coming out late, or outside of November. And, I would just say, use their website anyway for tracking your, your writing. You can set goals, you can use their tools, that you can use their communities. Highly recommend trying it, and if you are creative in any way, shape, or form in writing and want to try it out, I highly recommend doing NaNoWriMo. Even if you don't complete the project that you're working on, it's just a really fun thing to do. I've done it twice and failed. I'm doing it the third time, this time with my partner, and planning on succeeding.

[00:58:27] Both of us have already broken the 10, 000 word point, so we're feeling pretty good right now. My third pick is a game, and that is a game called Blood on the Clocktower. It is a social deduction game where you are playing as a member of a town in which the storyteller has been killed by a demon. The demon is among you, one of the players.

[00:58:48] There's also another set of evil team, one or two or three different players who are evil. You get a role, you get an ability, you have some information. You need to try and find the rest of the good team, figure out who's good, who's evil, who is the demon, and execute them before they can kill everybody in town.

[00:59:07] So, that is, that is a fun social deduction game that I picked up, uh, during COVID, played it on Discord, now I play it online and in person with my local group. highly recommend checking that out if you're into social games of any sort. If you, if you've played something like Werewolf or Mafia, it's gonna be similar to those in style.

[00:59:24] Jared: Cool, okay. Well, I just wanted to comment on the November National Novel Writing Month pick, because you mentioned that you had a draft of a novel. Is this the one that you're working on now, or is this a new one that you've started this November?

[00:59:44] Lindsay: I'm working on a new one now. So, since we're talking about writing, I In 2017 2018, I was able to draft a novel that will never see the light of day because it's bad, and I decided the plot wasn't going to work. But it's 200 and something pages long, so I was able to get that done. First time I participated in NaNoWriMo, I was writing a I wrote a book based on Blood on the Clocktower, like I was trying to tell a chapter about each of the roles and introducing them as characters, but then I made characters that wouldn't, like, hurt each other, and that doesn't work for a game where the entire point is, like, executing people.

[01:00:21] Uh, so I had to give that one up. And then last year I wrote a novel I started working on a novel called Warning Shot, um, which is a sci fi novel based in the world of my board game that I was working on. And it was following this family, uh, who is a family of merchants as they're going to different planets and getting involved in this intergalactic crisis.

[01:00:42] that one did not get finished because I put them in an awkward position that I couldn't write them out of because there was no reason for them to leave.

[01:00:49] Jared: Okay. That's really cool, though. So you've taken a few attempts at this, and you're still persevering and continuing, because I'm guessing you enjoy the process of writing.

[01:01:01] Lindsay: Absolutely, I love writing, uh, this is why if you go on my website you'll see all my blog posts as well. And that's one of the things that drew me to NoRedInk, is that I got to work with Elm, and I got to work with, uh, writing and English language arts, um, and helping kids, uh, develop those skills. So it just felt like a win win, as far as a job goes.

[01:01:20] Jared: Right on. I love it. And it seems like those skills would be helpful in your card game, Star Commander, as well. And writing that as a storyline around that as well.

[01:01:35] Lindsay: Yeah, uh, definitely helps for, for writing out the cards, writing out the rules, making sure that everything is as coherent and clear as possible.

[01:01:45] Jared: Excellent. Yeah. Okay, well, uh, do you have any other picks?

[01:01:51] Lindsay: Those are my picks.

[01:01:53] Jared: Okay. So, my picks. I'm glad you mentioned Battlestar Galactica earlier, because that's my first pick. I'm talking specifically about the 2004 series, that's the one that I've watched a couple of times now, and I absolutely love it. It was the first time that I realized I liked sci fi, and that I liked this kind of fantasy, uh, takes on creating scenarios that doesn't seem, don't seem like they would ever actually happen, but provide the opportunity to talk about real social issues.

[01:02:37] And I think they did an absolute excellent job. Um, it's a show that I, like I said, I've watched it a couple of times now, and I could watch it over and over again. It's just that well put together and that good, in my opinion.

[01:02:57] Lindsay: I have to say real quick, because you mentioned Battlestar Galactica,

[01:03:00] um, I grew up watching the original because my mom was a huge fan of it. She went to like a show cosplaying as one of the Viper pilots from the original.

[01:03:10] Jared: Oh, cool.

[01:03:11] Lindsay: she was really into the original Battlestar Galactica. But if you like sci fi and you like Battlestar Galactica as far as, like, its multi season space opera style, I highly, highly, highly recommend watching Babylon 5.

[01:03:25] It was the first show on TV to do that multi season space opera arc. It was the reason that something like Battlestar Galactica could happen. Just keep in mind that it's from the 90s and the first season is a little rough. Um, but the plot absolutely pays off. And the creator, J. Michael Straczynski, um, is involved in a lot of things, many of which you probably like, including something like She Ra, the original Ghostbusters cartoon, Thor, Spider Man, uh, and Sense8 on Netflix.

[01:03:56] And recently there was a new Babylon 5 movie that I do not recommend watching until you have seen the entire show, um, called Babylon 5 The Road Home, so that would be my additional pick. I have watched Babylon 5 five times all the way through. Going on six, and it is, it is by far my favorite sci fi.

[01:04:16] Jared: Excellent advice. Yeah, okay. Well, we'll definitely put that in there. my second pick is related to Battlestar Galactica. It is an episode of Portlandia, Season 2, Episode 2, and it's called One Moore, and that's M O O R E, like Ronald D.

[01:04:35] Moore, the creator of that 2004 Battlestar Galactica series, and of course it spoofs that and basically with them having this session of just watching all of the, binge watching all of the episodes of Battlestar Galactica and then wanting more, and it is pretty hilarious. I just watched it last night as a, uh, because it came to my head and I thought, I have to at least watch this.

[01:05:09] I can't watch all of the Battlestar Galactica episodes tonight, or I won't actually record this episode. So, yeah, so that was my, uh, punt. But then the last one is a song which is the opening theme to Portlandia. It's Feel It All Around by Washed Out. And That's it. Thanks, Lindsay, for telling us your story.

[01:05:35] Thanks to all the folks listening out there. Please rate and share the show if you're enjoying it, and thanks, Lindsay, for coming to Elm Town.

[01:05:44] Lindsay: Thank you.

[01:05:45]