Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
#77 - Michelle Lim image

#77 - Michelle Lim

defn
Avatar
19 Plays3 years ago
We talk to Michelle about her multi-major studies and Clojure(Script) and more! Yet another defn first - A crossover episode with a cameo!! Checkout Michelle's work on https://github.com/eemshi and http://mmmanyfold.com/
Transcript

Podcast Introduction & Host Anecdotes

00:00:15
Speaker
So welcome to Deaf on episode number 77. With four, okay, three guests, sorry. I think, well, five people in total, I think. I'm going to correct it later. So yeah, my name is Vijay and from what country am I in? Netherlands. I think I lost track of what the fuck is happening anymore.

Guest Introduction: Michelle Lim

00:00:38
Speaker
And we have Ray. Hello. He keeps giggling. Hey, Ray. And we have guest of honor today, Michelle.
00:00:45
Speaker
Hello. Hello again. Yes, Michelle, go ahead. Please introduce yourself again.
00:00:55
Speaker
Yeah, so I'm Michelle Lim. I used to work with Ray at Vouch. He hired me, actually, so thank you. And so it's good to see you again. At Vouch, I work on the mobile applications, which is a hybrid of JavaScript and ClosureScript, which I'm sure we'll talk about at some point.
00:01:21
Speaker
Maybe, maybe. Maybe, if we get to it.

Michelle's Career Journey

00:01:26
Speaker
Before that, I did a lot of different things. I worked in nonprofits, teaching, freelancing. It's been a journey. Do you play music professionally or something? Because I see a really nice keyboard behind you. No, definitely not professionally, just for fun. For myself.
00:01:49
Speaker
Yeah, actually, yeah. Actually, nobody's ever heard me play except for my partner who I live with, and my best friend who I send little recordings to. So I just write songs for her because I love her. So are you going to suggest that you might just turn around in a moment and just start playing? Probably not. Oh, shit. That's a shame. Okay, could be a deaf and first there.
00:02:18
Speaker
Is there like a mailing list I can get on? Jesus. Hey, welcome to deaf and Jordan. Now go on. I didn't know my bloody banter was unwelcome, I guess.
00:02:38
Speaker
It is, but you're, you know, it's like spoiler alert and, you know, so as if people don't know, I crashed your podcast. Well, they don't get on the audio. They don't know yet. Right. So, you know, it's like it's a reveal later. So this is the special episode because we have Michelle who will probably play music. I mean, you said probably not. That also means probably right. It's somewhere in the middle.
00:03:07
Speaker
And then we have Jordan from her fancy Silicon Valley place. And then also we have Paula again as a cameo in this special episode. Hello. So Jordan, you were asking about a secret mailing list that Michelle is distributing her. Secret music. Yeah. Yeah. How do I get on the mailing list? That's.
00:03:32
Speaker
That was the question. It was just this piece of Woody Banter, not really. It's not as funny the second time or third time around, I don't think. Well, we might have to start the episode again. So again, for the third time, so keep it. Do I produce the music, Michelle? No, I'm really not.
00:03:52
Speaker
super musical. It was just a fun hobby that I picked up. And I was saying with my friend, it was a way for us to keep in touch because we live in different cities. So I had to get creative. So now I just serenade her. All right.

Musical Pursuits & Personal Interests

00:04:10
Speaker
Can I get on a mailing list to be your friend then? Absolutely. So you sing as well as play music when you send her the music.
00:04:21
Speaker
Sometimes. Yeah. Wow. But is it, is it, um, I don't know the genres because last episode we were talking about some, I don't know. What was it? Punk rock or some other crap? I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I,
00:04:48
Speaker
Your voice is very ASMR. Thanks, Jordan. I don't really have a lot to say at this point. I was looking for another thing.

Unplanned Events & Episode Dynamics

00:05:01
Speaker
I just happened to be online and I was wondering what VJ's been doing because I haven't heard from him in a while. And he said, oh, we're doing a podcast. Why don't you come for a cameo? Totally unprepared. Well, that's the motto of DeafN.
00:05:19
Speaker
What's interesting about this one, though, is this is the first ever majority female closure vegetarian podcast. Maybe it's run off as Unfeedable. Well, at least two of us are. I mean, who is vegetarian? Michelle, are you vegetarian? Me, too. Yeah. All right. Whoa. OK, then it's majority vegetarian. I started my ground. OK. Yes. Got you.
00:05:46
Speaker
I

Gender Disparity in Tech

00:05:47
Speaker
feel like to truly turn over disparity was that the Stack Overflow thing came out a couple weeks ago and I was looking at the percentages that we would have to get a podcast that's 92% female to do the inverse demographic distribution because apparently software developers are 92% male.
00:06:11
Speaker
Yeah, I think we'll just cut out race track and then we'll be good to go. I don't think that's really the case. Stack overflow is the, the, the respondents tend to be self-selecting and fewer women respond to it. So while there is a huge gender disparity, I don't think it's quite as bad as that survey suggested. 98%. Is that what you said?
00:06:38
Speaker
Most of the people asking questions in Stack Overflow are men, because those are the people who get stuck on shit. They're also in a possible theory. Yeah, but is that good, though? What I mean is normally men, if they're driving or something, they don't ask questions. That's the man thing. The man thing is not to ask. Don't fucking ask. Don't stop and ask somebody directions. Just keep on going and get it wrong forever. That's the male way. Yeah. So maybe you should say lightning. Speaking to a lot of people I know who've gone to Stack Overflow,
00:07:09
Speaker
A lot of people are put off by the aggression in some of the responses. Oh, fuck off. Sorry. I'm put off by the aggression in like half the chat rooms I'm in these days, like Stack Overflow. But isn't it like Stack Overflow, the main reason people go there is for social clout, right? I mean, the number that you get, and that used to be a big thing. I mean, if people are
00:07:33
Speaker
You know, I want my internet points and I'm going to go there and then answer first. And it's like first post in SlashDart. So it's a bit of dick waving in other words, which is why men tend to go there. Yeah. It's like showing off to other people that I know the answer or that kind of crap. I also think that women may have a, this is just a hypothesis as well, but
00:07:54
Speaker
Um, more of, I guess, a higher emotional intelligence where they would know who to ask in their life about a question. They have a point, you know, they have a tech question and I'm just going to like send it out into the ether of the internet to see what bounces back. But it's like, huh, well, doesn't so-and-so know a lot about this? Why don't I just send so-and-so a message and ask and then so-and-so answers it. And so they don't have to go through like a.
00:08:22
Speaker
yeah publicly open thing you mean uh-huh and i mean it's also it can be riskier for females to to be vulnerable like that online um you know being perceived as weak or unknowing or you know there are some things associated with that as well so um you know it can be riskier to be seen as knowing things online
00:08:47
Speaker
Yeah, I've encountered that as well. Yeah, but I'm really interested. Michelle, do you get a stack of the fleh very much?
00:08:57
Speaker
I do. I ask the internet a lot. Well, I asked Google. I don't specifically host questions. I look to see what's already been answered. And especially when I was first learning, I didn't really have people to ask. So I feel like I was trained a little bit by the internet. So I am grateful for that. But at the same time, I do see that toxic interaction. And so far, I haven't interacted myself.
00:09:27
Speaker
probably because of that impression. But now that I do have that support network, I absolutely agree with Jordan. I would just much rather ask somebody than post a question on the internet. Well, it's also, if it's a person you know, it's an opportunity to reconnect with someone.
00:09:52
Speaker
Yeah. Yeah. It's

Michelle's Path to Programming

00:09:54
Speaker
a great way to keep connections alive. Connections, social life. That doesn't make any sense to me. Next time I have a technical question, I'm going to UVJ.
00:10:07
Speaker
Yeah. I love the dumbest possible answer. And then you'll stop asking me like, okay, this is the worst of time. Why am I even asking you? But isn't Stack Overflow suffering from like rot now, tech rot? I mean, despite all that bullshit about how that could never happen to Stack Overflow, isn't that exactly what is happening? The old answers keep on like, that are kind of outdated or at the top, because they were accepted answers.
00:10:33
Speaker
So you can't get the right answers now on Stack Overflow, even though the sort of software has moved on. So it's still a valid question, but the answer is kind of like, now it's like, pass the fold, the right answer. Yeah. Yeah. You really have to hunt and check the dates. And, um, you know, you look at the syntax to see if they're using old JavaScript or ES6. And like, forget about the closure script. I was going to ask you that too, Michelle. It's so hard. Like I find like.
00:11:03
Speaker
Good luck finding answers about ClosureScript on Stack Overflow. That's not a thing. But what I'll do a lot is I'll find the answer in JavaScript and then do a murder mystery, connect back. Well, if this is in JavaScript, I'm going to read it. And if I do that in ClosureScript and I do this, do you do the same thing, Michelle, where it's like you have to find the answer?
00:11:26
Speaker
Yeah, I find it in JavaScript. And then I do that. And then a lot of answers that I find come from Closureie and Slack archives. So they come up in Google. And it's just a link to a web page with the archive. And so I find out some stuff there. And then also in the Jira tickets come up because the thing that I'm looking for is actually a bug.
00:11:56
Speaker
And I'm like, oh, it's broken. It's not me. That is something very difficult to accept, right? You always keep thinking that there is something that I'm doing wrong, you know, before even going to a point like, there must be something wrong with this shit already. But Michelle,
00:12:16
Speaker
What is your journey to closure? I mean, of course, there are the most important thing we'll get to later is, you know, how was it working with him? And he's he's so unprofessional network as well. We'll get to this. He's that that level of annoying even at work. We'll get to these questions later. But how did you how did you start programming and how did you end up? She did say I hired her mate. Just remember that. OK.
00:12:39
Speaker
Yeah, yeah, sure. You always have better people than you are. That's the whole point. That's 100% correct, actually. I admire you for that. Yeah, that is correct. So your journey, Michelle.
00:12:52
Speaker
Yeah, I don't even know where to start because it's been a very non-linear, windy journey, but my education was in the arts and humanities. I didn't encounter any computer science until after I graduated.
00:13:16
Speaker
So like I guess my first entry point was my senior project. I had a very unconventional major. It was a hybrid of like fine art, literary arts, just this major called narrative studies that allowed you to take classes in
00:13:39
Speaker
in all different departments. So that was one of my majors. And then my other major was interdisciplinary archaeology. I'm hard to say now. Whoa. And so that brought in elements of anthropology and material science. And at the time, I just wanted to learn as many different things as possible. I was not thinking about my future. Wait, wait, wait. We need to dig into this interdisciplinary archaeology.
00:14:08
Speaker
What does that even mean? I mean, I thought archaeology is just digging stuff from the earth or something. It means she digs in different things, in different ways, obviously. Exactly. Are you digging it?
00:14:21
Speaker
I did get to go on a dig in Turkey and survey different sites. But what makes it interdisciplinary is that it's not couched in one department. There's no archaeology department per se. You take classes in anthropology and art history. And there were archaeology classes specifically about archaeology, but they were in the art history department.
00:14:49
Speaker
And then you have some science like material science because you're looking at objects and they erode over time and you have to restore them. And then GIS as well. So that might have been the first technical thing that I had an affinity
00:15:09
Speaker
with. So I ended up working for one of my professors doing all the GIS stuff because she couldn't be bothered with it. And it was buggy. If you've ever looked at our GIS, it's a pain at times. So I found that I really enjoyed that aspect of it.
00:15:30
Speaker
and making maps. And I didn't do much custom scripting, but it exposed me to that world. And so that was one
00:15:45
Speaker
entry point into tech in a broader sense, I guess. And then the other was through this final project. Because my majors were so all over the place, they were just like, okay, whatever, do whatever you want. We don't have a precedent for this. So I was really inspired by
00:16:09
Speaker
A couple of writers. So my main focus was literature and Jorge Luis Borges, my favorite writer, has a short story called The Garden of Forking Pass.
00:16:26
Speaker
And it's considered like an early inspiration for hypertext fiction, which is like an electronic new media thing in the 90s, I want to say.
00:16:41
Speaker
where you would navigate through a story through links on a webpage that would take you through, depending on what you chose, different parallel storylines. So that was really interesting to me. And there were a couple other writers who
00:17:03
Speaker
embody those ideas just through like non-linear text and, you know, multiple realities. And so Italo Calvino, George Parek. So it's interesting because my interest in tech came from literature. So for my final project, I decided to make a hypertext experience, so a web-based
00:17:31
Speaker
narrative that combined artifacts and stories behind those artifacts, both real and imaginary, kind of integrated into these, this overarching narrative, but with different paths. Anyway, that all sounds super abstract. But the point is that I had to learn how to make a website. Yeah.
00:18:03
Speaker
What's there a bit of magic reality in doing that as well? Magical reality. Right, yeah. Yeah, and as soon as I... So you ended up creating like, you know, NeoCities or AngelFlyer or one website on this kind of thing. Honestly, not that far from that because I learned HTML, CSS, and JavaScript, Vanilla JavaScript. Everything was super manual. Yeah.
00:18:28
Speaker
I think towards the end, I discovered jQuery. I was like, whoa. And started and made animations and things. But the idea sounds a lot more complicated than the actual product was, because it was so basic. I knew very little. I mean, I still know very little, but a little bit more than then. And so once I started doing that,
00:18:56
Speaker
I just wanted to keep doing that and became sort of obsessed with it, just the actual process of making it, not just the thing I was making. And this is second semester senior year. So by the time I've graduated, you know, I was kind of, I was a little bit lost. I didn't want to go get a PhD to be an archeologist. I realized, you know, like writing for me,
00:19:26
Speaker
was better as a personal hobby. And so, you know, I went to work in nonprofits because at one point I thought I wanted to be a social worker. And during that whole time, I was doing online courses in web development, just all my spare time went to that, thinking maybe I could get into it. Like at that point, I wasn't like I didn't have
00:19:56
Speaker
high hopes for it. But I did have the opportunity to make websites for friends and friends of friends who are artists and musicians. And those are some of the most fun projects I ever did, because even though they were very basic, the designs and the ideas were really fun. So it was very kind of like Neo City or, yeah, Geo Cities.
00:20:24
Speaker
and lots of fun animations and for releasing their music independently. So that was cool to be able to put people's art out into the world through the most prolific platform, I guess, which is just websites.
00:20:46
Speaker
Oh, that's absolutely amazing. So you didn't have any formal training in computing, other than being scarred by ArcGIS stuff. I'm sorry, I heard I didn't hear either question because they were happy. BJ seems to have dropped off the feed as far as I can see. Oh, yeah, he dropped off for a second, but he's gone now. I see him now. Jiminy cooks in the kitchen. This mob cast is getting out of hand. Yeah, it's a fucking nightmare.
00:21:20
Speaker
2000 years later. Oh, finally. Okay. Everything is back online. Sorry. So I was asking a question. Who is, who was asking question? I didn't know who else was asking a question. So I don't care anymore. I'm going to ask my question first. So, so Michelle, you didn't have any formal computer education other than, you know, um, starting with our JS and then building, you know, knowledge yourself, like JavaScript and all these things. And,
00:21:46
Speaker
How did you end up in quote unquote niche area of closure script then or closure even? Yeah, so it was pretty much by chance. So after a couple of years of self-learning, just kind of by myself, I felt like I needed to start
00:22:08
Speaker
working with people, you know, you kind of hit a wall at a certain point of just being in your own bubble. And so I ended up going to this meetup called Code for Denver, which is part of this larger thing called Code for America.
00:22:23
Speaker
And what I liked about this meetup is that you actually work on projects. So it's not just a social event. You go there and there are teams working on projects, volunteering in collaboration with local nonprofits. And I was working on a nonprofit. It seemed very aligned.
00:22:48
Speaker
The first day I go, I chose the least intimidating project, which turned out to be a Closure Script project.
00:22:59
Speaker
But but it was it was the least intimidating because the team was so approachable and welcoming and the project itself had a small scope so for like, you know for jumping in on something new I You know, I thought this feels good and then from there I It was the project Michelle
00:23:21
Speaker
Oh, it was an end of year report for a nonprofit. And so they needed data visualization and they wanted something more interesting than a PDF with numbers.
00:23:36
Speaker
And everything we did at Code for Denver was open source. So, you know, the idea was we could make this template and then other organizations could use it with their own data. And that was one of the driving principles behind all of our projects was, you know, could this be reproducible and useful to other groups? And then after, oh, yeah, go ahead. No, go ahead, go ahead, sorry.
00:24:07
Speaker
I was just going to say that after that project, our team gelled really well. Everybody really enjoyed ClosureScript. So we ended up working on two more projects in ClosureScript after that.
00:24:22
Speaker
Did you have some mentors? Sorry, go on, Jordan. I was going to say, was this Fig Wheel Days or Shadow Days? Or how hard was getting a project started back then? Because now it's easy as pie. Now I don't think anybody has any excuse. But when was this? Yeah, there was a bit of a barrier to entry, I think, mostly having to do with environment setup.
00:24:50
Speaker
I had never made a single page app before or used developer tools. Um, I, I use line lining again before NPM and, uh, but, you know, like I said, I think, um, yeah. Um, actually I'm with you too, Michelle. Me too. I, I, cause I did that before. Yeah. Go on.
00:25:15
Speaker
Yeah, no, and I think it gives you a unique perspective because you don't know the pains of the other thing at first. And when people talk trash about it, I, well, I was like, you know, I, it can't be that bad. I, you know. No, they're right. Yeah, that's the way I do. Yeah.
00:25:46
Speaker
But I was going to ask you, Michelle, did you have some mentors on the ClosureScript project? Because it seems like it would be a big ask to just step up and start doing stuff. Or how did that all work out? Yeah, absolutely. So we had
00:26:02
Speaker
a developer

Teaching Computer Science

00:26:03
Speaker
who was retired and then got really into ClosureScript, and then David, who I'm married to now, who was kind of like the project lead, and then myself and a high school student.
00:26:20
Speaker
So we, yeah, so there were two experienced developers and then two of us who were just learning. And yeah, it was a very learning oriented environment. Hmm. I'm thinking this might be like a controversial question, but you know, controversy is our middle name indefinitely. So, you know, I'm going to ask this question and then see, because, you know, Michelle and I know Jordan, you're also like,
00:26:48
Speaker
entered into software, you know, not doing all the shitty computer stuff, you know, or the so-called formal education, right? I mean, you're getting into this one. And Paula, I mean, you've been in software since the beginning of software, pretty much. Like how many degrees do you have? I always have a lot of respect for people who
00:27:16
Speaker
willing to come in and just learn software because my background is engineering. I'm sitting on my desk. I'm an electrical engineer and we did a couple of senior subjects, but my degree was about digital circuit design. Yeah, but isn't that like everything was electrical design? Yeah, in Jordan's bed.
00:27:43
Speaker
Apparently the hotel room is in. So that's a bit of a visual joke that off the podcast. Sorry about that. I may as well cut that one. I came in the career. Yeah. I did electrical engineering, but I came in. It was hard to find electronics design jobs, the least ones that paid any good. And so I started doing software development and
00:28:11
Speaker
I didn't know how to be a software engineer. I didn't know a lot of data structures and algorithms and things like that, that CS teaches you. And I had to learn all of that and pretty much all of the software engineering that I know and that I use are things that I had to teach myself or that I was directed to by a mentor saying, you should read this book. So all of the really relevant staff
00:28:40
Speaker
never came from a university for me. And I, I get really frustrated with organizations which are only prepared to give a job to someone with a degree in STEM because a number of the people I know who are really good software developers never learned that stuff through a STEM degree. Yeah. Yeah. I think this is something that I see a lot in, in at least in the Netherlands, you know, because that is the only country that I'm more familiar with or
00:29:07
Speaker
relatively familiar with then India. Here I see people coming into software who are physicists or who studied pharmacy stuff and it doesn't matter. And then you just hop into because I think as Michelle you're pointing out like software has become part of everything like interdisciplinary archaeology and then you need to know software anyway for that. So I think it's kind of became like indivisible right from other so-called domains these days and programming has become like a
00:29:36
Speaker
essential thing that you need to know. But isn't that the thing of the Code for America thing? Because you need to know coding as part of your basic skill or something like that. Oh, you mean in order to participate? Yeah.
00:29:50
Speaker
Um, yeah, yeah. So, um, one of, one of the missions was to, um, be beginner friendly and bring people in, but you know, at times that gets difficult, right? Because people's time and resources are limited. And, um, going back to the team I was working with, um,
00:30:15
Speaker
None of us really knew Closure that well. There were experienced developers who were like, oh, I discovered this thing and I want to do something with it. So we were all figuring things out together. And that made a big impression on me because
00:30:33
Speaker
You don't have to know something to mentor or teach it. You figure it out with the person who is also learning. You're just a couple of hours or days or months ahead of them. And so if I'm helping someone who's less experienced, I'll just be like, I don't know what I'm doing, but we'll figure it out together.
00:31:01
Speaker
I'm confident in our ability to figure it out. But in practice, it had to be the right combination of people. With these public groups, it really depends on who's coming through and how committed they are and how much time they're putting in.
00:31:25
Speaker
Well, I think that's like part of the advantage too of we're talking about, um, how the, uh, software industry has a lot of different people at this point of different backgrounds, you know, coming onto a team. And I think that's, you know, I, I would want my team to have the most different, you know, a myriad of perspectives. Cause I think that's how you solve problems more efficiently as I want my team to have all these different backgrounds and, um,
00:31:54
Speaker
which is ironic when they say, oh, we only accept people with STEM degrees, that that encourages like, not good problems that you know, I encourage this hive mind that doesn't bring out the best problem solving strategies and people. So that, you know, it's, it's funny that you experienced that Michelle, you know, working on the, you know, the code for everyone's different backgrounds and perspectives really aided in that exploration.
00:32:22
Speaker
Well, don't forget Closure itself came from Ruchiki and he didn't come from a CS background. Yeah. Yeah. That's true. He came from a musical background. Yeah. Yeah. I did end up learning CS concepts that are very useful. The way I learned it is
00:32:43
Speaker
It's very odd and I owe it to the mess of the public school system that we have here because
00:32:52
Speaker
I learned computer science by teaching an AP computer science course with no background in computer science because I mean, they didn't just pluck me off the street, right? Like I had been teaching for a couple of years in a part-time capacity because I sort of knew how to code and they cannot find teachers who would choose to do that full-time when they can go write code.
00:33:21
Speaker
at a company and so I did that part-time with middle schoolers just with basic, well I don't want to call it basic, I don't want to minimize you know the stuff that they were doing because Scratch, have you heard of Scratch? The MIT block-based programming language, it's turning complete you know it's turning complete you can do
00:33:47
Speaker
anything that you can do with another language. And a little bit of Python, JavaScript, so it's more like a general exposure thing. And after doing that for a couple of years, they asked me to teach higher and higher levels of it. And then all of a sudden, I was teaching an AP course. And
00:34:12
Speaker
In order to do that, I had to really learn computer science and then figure out how to teach it to students who had never taken a computer science course before. And it was a lot of fun. I had so much fun doing it, but it was the hardest job I've ever had. My heart goes out to teachers because I taught one class.
00:34:37
Speaker
And there are teachers who are working 10-hour days being paid criminally low salaries. And yeah, I don't know how they do it, but that's how I learned computer science. I think it's something that we- A round of applause as far as I'm concerned. That's fucking awesome. Yeah, really good. Yeah.
00:35:03
Speaker
sometimes hesitate to talk about that because I don't know if, it is a little bit irresponsible for the schools or for the students, right? You wanna, I did my best to do right by them, but I'm not a trained teacher. They asked me to stay on and continue doing it,
00:35:30
Speaker
You know, the kids deserve someone who was trained in classroom management. You know, like my classes, I think they were fun. The kids enjoyed them, but they got chaotic. They meet someone who believes in grades. I really struggle with grading.
00:35:51
Speaker
You're like, you get an A, you get an A, you get an A. Yeah, it gets so arbitrary. I think it'd be nice if you got an F, you get an F, you're all getting an F. Yeah, but for that moment in time, it was the right thing for that moment. And I got to bring in a lot of
00:36:15
Speaker
projects from my freelance work and what I was doing in real life. And speaking of Chromebooks, that's all they had to work with. So everything we did was browser based. And, you know, that's buggy as hell. No terminal
00:36:33
Speaker
They couldn't really access the computer, just whatever is mediated by Chrome. And so at the end of the semester, I told them, don't let this define your idea of what it means to develop. I have three screens at home and you have a 12 inch screen. All these things that make it add friction are not
00:37:02
Speaker
what you would have to deal with if you went if you pursued this you know but at what point you you told them like okay chromebook is shit you guys just start using emacs then you'll actually you know realize
00:37:16
Speaker
What is the meaning of life? Well, that's such a problem. That's such a problem with even colleges have, um, you know, some even companies have people using these web IDEs that is just so hard to use. I think you brought up a really great point, Michelle, with like the developer experience, the friction that some of these tools have. And it's, it's so frustrating to see because, because
00:37:41
Speaker
having people take computer science courses, say that, you know, in high school and say they took that AP computer science course. And because the tools are so bad, they just really didn't jive with it. You know, we, and we lose that developer forever who could have some wonderful, awesome things to bring to the table. I know it's such a shame too. If we lose, I think women are more likely to, you know, maybe take a casual computer science class in high school or college and then, but then if we lose them because
00:38:12
Speaker
The tools sucked. That sucks. But hey, if there is anybody from your school listening to this, I'm pretty sure they learned a lot of stuff and then they'll be like super happy. So if any of your students listening to this one, I think they should tweet at you saying, hey, that was an awesome class. And then I learned more than what I...
00:38:33
Speaker
what I expected so I'm pretty sure that it's you know especially because you had like industrial experience right then then you get a different you bring in a different perspective because in the university is usually at least in my place when I was studying like the people who are teaching are teaching by the book they have no clue
00:38:53
Speaker
about any of the version control system, any of the build systems or tests, none of this shit. It's like you write a C program, 2,000 lines, top to bottom, and then you're done. And then you move on to the next one. Nobody cares about maintainability, like nothing. So I think you probably, you are even more suited to teach than you are giving yourself credit for. That would be my opinion. If I had a proper industry person coming and teaching me, I would have been a better programmer when I started.
00:39:23
Speaker
instead of writing a shitty code. Well, I still do, but yeah. I think you'll be on redemption DJ. That's true. That's true. I'm just going to write that in two years. Yeah, I would like to teach again, but in a different setting, more of an ad hoc individualized setting I think would be better for me. But yeah, I think it did help to have experience outside of
00:39:51
Speaker
of formal education. I did have 13 Raspberry Pis that I used for an art installation the year before. So this was such a time-consuming setup, but I brought all of those Raspberry Pis in and had monitors and
00:40:19
Speaker
had them just try out using the terminal. And there's a unit on hacking. And so I had a web app running on my computer.

Creative Teaching Techniques

00:40:32
Speaker
And I had them DDoS me with artillery, the command line utility. And those are some of my favorite things to do. And like SSHing into each other's computers and opening random videos and rickrolling each other.
00:40:49
Speaker
So, I would like to teach in an environment that is conducive to that kind of stuff. It was a real hassle to do that kind of stuff in a classroom. So, yeah. So, you trained a bunch of hackers is what I just heard. And you want to continue to train more hackers is what I'm hearing.
00:41:14
Speaker
Paul, I mean, you also have a lot of mentoring experience, right? So how do you see this, like teaching via, you know, on the job versus, you know, teaching at different levels? It's different when you're at work because of the motivation. I mean, I've
00:41:34
Speaker
I've also taught in an elementary school and what I found was that sometimes the kids are there because, you know, they were sent along to it or something and there's no motivation. The kids who are really engaged are amazing to work with. And it's just stunning what a young child can come up with and seeing them learn how to do something for the first time is really makes it worthwhile. But there's so many kids in the class who just don't care.
00:42:02
Speaker
And the more advanced the group is that you're teaching, the more likely they are to have chosen it. And that it becomes more interesting because when people discover a new thing that they can do, then that's exciting to the teacher.
00:42:18
Speaker
Yeah. I'm not sure if it is exciting because I used to do something kind of a dodgy thing when I was studying in university because I was like, well, I was short on money. So I used to teach my juniors. So I used to just read the book and then, oh, this chapter I'm going to read and then tomorrow I'm going to talk about this shit. And this bunch of handful of people, not many, I think around 15 folks in the class.
00:42:43
Speaker
It's like an after university thing that I used to teach. And then there is like a couple of guys who are like super smart. So they are always asking me questions like four chapters because they somehow figured out this. This guy only talks about the next chapter, for fuck's sake. And then I'm like, God damn it, these morons again. And I have to work really my ass off to understand all the crap to explain. And this is.
00:43:04
Speaker
something some stupid subject on system analysis and design and all the registers and all the crap and the electronics related thing. And they're always moving ahead. Like you have these kind of people in the class, right? They just keep studying too much or whatever. Super smart bunch of people. And they knew that I'm just like a guy trying to wing it off and then just read the next page and talk about it before.
00:43:29
Speaker
So you had, you've got imposter syndrome, but you actually were an imposter. Yeah. It's not, it's not a syndrome anymore. It's just, it's just the reality. It's part of my character now. Anyway. Well, I think that in that role you were, you were teaching VJ versus I feel like, um, teaching and being a teacher is like a slightly different role than being like a mentor, you know, and, um, you know, they fill, they, they fill different roles and, um,
00:44:01
Speaker
And I don't know what I was going to end. No, I would agree that because a mentor, I think, really teaches directly in my experience anyway. Mentors have said, well, have you considered this? And, you know, this is a thing you may not have heard of. You should look into that.
00:44:18
Speaker
And they direct me to go and learn my own things. And I try to do that with other people I've mentored rather than doing a class or taking them step by step through something. I'll say, this is a thing that's relevant to what we're talking about or what you're trying to deal with. And you should look into that and just to provide those nudges and a little bit of direction. And it's different to teaching. Yeah, yeah.
00:44:44
Speaker
And also be a role model because I, Paula, I consider, uh, so Paula was my actually assigned mentor at the conch a couple of years ago. And that's how we became friends. And I still consider her a mentor to me. And it's, it's so, it's, it's so many things that seeing how, um, she leads herself in the community, seeing how she, you know, carries herself, you know, I don't work with her, so I don't get to see that, but I get to talk with her about how her work is going and.
00:45:13
Speaker
You know, being a mentor is just so many other things besides just, because I would say as far as just technical content, as far as what, because, you know, you're really about databases right now. I'm really about like ClosureScript. And so as far as like technical teaching, we don't, I've learned a lot from you, but I did, I don't feel like, I guess we relate on that
00:45:39
Speaker
level as much anymore. But you teach me so much in so many other areas. It's so much more valuable to me at this point, because information I can just go look up, or you know, learn through doing or whatever. But being a mentor is just so much more than that. It's, it's being a role model. It's being a leader. It's, it's, it's just, um, it's a lot more intensive.
00:45:58
Speaker
And Michelle, don't you find that like, because you've, when you are a vouch, when you're working at vouch, do you find there's a mentorship aspect there as well? Yeah, definitely. Heather, who's another teammate of mine, and I work closely with David, David Nolan, who
00:46:21
Speaker
Uh, I feel like what you were describing, um, Jordan is, uh, very similar. It's, it's not like, uh, you know, here are the specific details of technical syntax or, um, along the same condition. That's it. Yeah. Yeah. But they're bigger ideas. They're, um, I think he's really good at, um,
00:46:45
Speaker
looking at a situation or a problem and picking out what are the important components of this and what needs to be prioritized. And for me, I think when I look at stuff or the details of things,
00:47:05
Speaker
I give them all equal importance and then get kind of lost in what should I focus on or what needs to, yeah, like how should this be implemented? And, you know, there's no rules for, you know, how to arrive at that, right? It's not like a cut and dry thing.
00:47:30
Speaker
So hearing David talk through that stuff has been very, I think I'm learning through osmosis, but I don't have like the, like the detailed, you know, this is how you arrive at it. It's more like, let me just see it over and over and over again. And at some point, you know, through osmosis, I'll, you know, absorb it hopefully.
00:47:55
Speaker
Also, you're working with David Nolan. He's got to be one of the most intelligent people in the community. And he's extraordinarily generous as well. All my interactions with David have been really beneficial for me. And it's amazing what he contributes back to the community in general. So working with him directly, I'm kind of jealous.
00:48:19
Speaker
It's a shame that I can't find, I can't find where he is online now. Otherwise I would just bring him in and say, Hey, you know, speaking of David, and then we just introduced David.
00:48:31
Speaker
Yeah, I don't take it for granted at all. Every time we pair or just discuss anything really, I definitely feel like I've learned something or leveled up. And like you said, very generous with his time and knowledge.
00:48:55
Speaker
I think the enclosure community, I think this ratio or the percentage of people who are so open and ready to share their experiences is pretty high in my opinion because I worked in Pearl and Ruby and
00:49:11
Speaker
I mean, not to shit on other languages, but hey, this is a Closure podcast, so why not? But it seems like there is some sort of a philosophy in the community in this direction, right? That's what you hear. And you can see how Jordan is talking about Paula. And we've been doing this for 75 episodes now. And this keeps coming back, the feedback about people sharing their knowledge.
00:49:37
Speaker
And also coming to this show and then talking, you know, telling us, you know, sharing their knowledge as well. So it's a different one. So you've learned a lot from me, haven't you, Vijay? Nah, not really. Whenever I'm talking about generous, smart people in the community, it's a set of people excluding grey. That's basically what I mean.
00:49:58
Speaker
All right. So let's just move on then. Shut up, Vijay. Yes, Ray has been my Yoda for Closure. I'm teaching you this, man. Okay, shut up.

Work at Vouch & UI Development

00:50:14
Speaker
So moving back, joking aside, moving back, Michelle, to the Closure Script stuff and working with David. One of the things we wanted to talk about was the kind of workflow that you're using with Closure Script and Storybook and stuff like that.
00:50:33
Speaker
So not to kind of go too deep a dive, but how is that working out? What's your kind of feeling as you kind of embraced that workflow?
00:50:43
Speaker
Yeah, it's, you know, at this point, I don't even think about it. You know, it's so, you know, and that's what you want from a tool, right? That you don't even have to think about it and you can just run with it. And it's also been cool to see it develop over the last year because David created the library and
00:51:04
Speaker
Anytime there was a bug or any friction, you had the person who could go fix it. It's his problem. I think it's useful to have people actually using it and see what comes out of that. We are like guinea pigs, in a way. Heather and I are daily users of it.
00:51:33
Speaker
And it's developed to the point where now it's just so seamless. And I think you already had him on here to talk about Corel. Yeah, we did. But usually, it's a long time ago. Nobody in the internet remembers this stuff. So maybe it's a good idea to explain what
00:51:57
Speaker
What is the product that you're working on? What are you doing with ClosureScript now? And then maybe give a quick idea of this tool that you're using and how. Yeah. So the product is a digital key app. So from your phone, you can lock or unlock
00:52:22
Speaker
basically anything, but right now our focus is automotive. So the mobile app, David designed it to
00:52:38
Speaker
separate the UI and the business logic. So the UI is essentially a library. It's a node module of the actual app. But we develop it with Storybook and React. So we have all of the components, the UI components, written in JavaScript. And so any JavaScript developer can come in and hit the ground running, making UI.
00:53:08
Speaker
And, uh, I'd like to know more about that choice and how you, how you got there. Was it, uh, were you, were you part of that? Did you start enclosure script? And then you're like, no, no, no. All right. We need to go. We need to go and just use JavaScript components. Like how did that? No, I wasn't part of that at all. So, uh, he had already set it up by the time I joined, but it was like that though, Jordan. Yeah, it started like that. Yeah.
00:53:35
Speaker
Yeah, so yeah, right I I remember hearing that the first iteration of the app was all reagent and But that wasn't really working I think it got a bit convoluted But I can't really speak to that. So I won't and then When I joined
00:53:59
Speaker
We had the storybook separation of concerns. So with storybook, you can look at all of your components in isolation and just explicitly give it any combination of props.
00:54:16
Speaker
And it's very functional. You see exactly what renders with this set of props. And it should do that every time. And it also functions as UI tests, in a way, visually. So that's the UI. And then the core application uses reframe and reagent.
00:54:46
Speaker
And we import the components from that other repo. And then we pass it all the props from the reagent app. So all the business logic, getting data, data manipulation, all of that.
00:55:06
Speaker
uh, originates in the closure script and gets passed down. And, um, it's, yeah, it separates those two concerns. So when you're debugging, if every, if you verified that in storybook, everything is functioning as it should, then you know, look for the bug in the closure script. Um,
00:55:29
Speaker
And what allows us to develop enclosure scripts for React Native app is Krell. So coming back to that, Krell doesn't interfere at all with the React Native workflow. So you have the Metro Bundler.
00:55:49
Speaker
And so, because those are separate too, and that's a theme that's coming up is the separation of concerns, I guess, de-complexion.
00:56:02
Speaker
Corel just compiles the closure script and inserts it into the index of the entry file of the React Native app. And then Metro Bundler can just do what it normally does with that. And there's hot reloading.
00:56:23
Speaker
that just works very smoothly. I worked with React Native in my last job, which was my first full-time software job ever. And we used TypeScript, and the hot reloading just wasn't reliable. You would get the app into a certain state, and then
00:56:48
Speaker
make some changes to your code, it would reload, but you lost all your state and would have to go click through. There are ways to avoid that, but you had to know how to avoid that. You had to follow the conventions. So with CURL, that's not a problem.
00:57:10
Speaker
And then of course, the REPL, right? That's the... So yeah, you definitely don't have that in regular React Native development. And so it's just a really great developer experience. So have you used dev cards before, Michelle? I haven't, what is that? Well then, I guess that...
00:57:40
Speaker
Apparently, I haven't used a storybook or dev cards, but we are looking into, I need to, basically. And it provides, from my understanding, a very similar experience of separating the business logic from the UI components. And it kind of lets you create, I guess, a little zoo, a little kind of separate everything out and test it out, see if you like the UI, but it separates everything
00:58:10
Speaker
But I think the dev cards is a closure script thing, though, isn't it? And nobody caught me on that, because... Yeah. Yeah. It's probably not that useful in the mobile stuff, maybe, in the native space. I'm not sure, though. Well, just the experience of being able to develop your UI is separate from your business logic and kind of that, creating those layers of abstraction.
00:58:34
Speaker
So is that like storybook where you can see your components in isolation and then import them? Or is there a different workflow there? I don't know what storybook is. See, I haven't used either tool, so I'm a horrible person to ask. I don't know what storybook is. That's my understanding. I'm guessing that they're the same, I guess. My question is flawed because I'm assuming this reference is universal.
00:59:04
Speaker
No worries. I think maybe zoom out to Storybook though, first of all, because Storybook is really like framework. It happens to support React Native and React and stuff like that, but you can use other JavaScript frameworks as well, can't you? Yeah.
00:59:19
Speaker
So that's the big difference is that you can kind of like use any kind of things in the JavaScript world, which is, which is one of the nice things about closer script. You know, it's one of the things we wanted to do, isn't it? You know, when rich made it and David, all these other things is to, how do you get access to all of these lovely things in the JavaScript world that, you know, that you don't have in closer script yet, or you don't want to reinvent, you know?
00:59:46
Speaker
And the UI is a really nice place to have that JavaScript aspect. Because. So Storybook does let you develop these UI components completely in isolation away from. Yeah, completely. Because that's what my understanding, that's what dev cards does.
01:00:01
Speaker
Well, Dev Code is a ClosureScript framework though. So that's the big difference is that, so you're right in terms of like the isolation and the testing and that kind of stuff, it's similar, but the difference is that Storybook allows you to kind of like, yeah, you can kind of like move the state of the application. You can, it's like you're showing users, it's specifically to show users a kind of story for your application. That's why it's called Storybook. So you kind of like show it in like,
01:00:31
Speaker
state, you know, like the opening state, and then you can show it in with various states because you provide like, you know, I'm like Michelle was saying, you can provide a variety of properties that show the app in a variety of different states. So you can really drive the UI through Storybook completely, independently of the application. So Storybook is more of a tool versus dev cards, a framework that is they do similar abstractions, but tool versus framework. Got it. Yeah, I'll have to look into that.
01:01:00
Speaker
And I think the idea of Storybook and the idea we kind of adopted, why we adopted Storybook was because you can kind of have like designers and UI people and kind of like product managers talking about things completely independent from the business logic of the application, the front end. Because you can just, you can kind of like render the app in a very lightweight way through Storybook. You don't have to do all of the kind of
01:01:27
Speaker
Not that the storybook UI is simple. No, it's not. But you can do it in an independent way. You don't have to click through the app in the right sequence in order to arrive at a screen that looks a certain way in this state. So if I want to share a screenshot of something or just look at, do my UI changes look right?
01:01:57
Speaker
You just go into Storybook and you give it the props that define the state you want to see it in. And you have a whole list of stories, that's what they're called, that you define.

React Native Insights

01:02:12
Speaker
So you might have a story for the default state and then with two users or however you
01:02:24
Speaker
however many states you have, and then you can see immediately, how did my change affect the UI in all of these states? Oh, I've just been writing horrible comment blocks all around my components. Like a big chunk of a comment block that does like, I'll fake the clicks so I don't have to use my mouse using the record. It's a mess. So okay, I can get away from that mess. Good. Good to know. I like it.
01:02:54
Speaker
So Michelle, so you started with JavaScript. Well, how do you call that? Like the foundations of the web, like HTML, CSS, and JavaScript. And then now you're working on the native stuff pretty much, like mobile applications. So do you see any friction between the stuff that you learned, which is on the web, and then now we are bringing that web technologies
01:03:19
Speaker
to build native apps on mobile applications. Do you see any friction or how easy was it for you to build native apps using the technology stack that you knew already? Well, with React Native in particular, when you're starting, it does feel accessible because it's React. Yeah.
01:03:47
Speaker
But then there are quirks that you discover along the way. There are major differences. You don't write CSS. All styles are JavaScript objects. And you can do that in React. But you don't unless you need to conditionally style something and pass it to the component. But yeah, so you think about styling differently.
01:04:16
Speaker
There's platform-specific quirks to think about and be aware of. And yeah, the components are slightly different. So you just pick these things up as you go. But it's not like you have to know them all upfront. Yeah, yeah. You can get started, and then you hit something, and then you ask Google, and then now you know.
01:04:48
Speaker
Maybe it's the experience, the different part of it is the different. Well, I just want to touch on what she said about you think about styling different, because I have seen kind of the, there, I guess, I feel like there are kind of two camps of thinking, where you have, you know, CSS, SCSS, and then this kind of
01:05:12
Speaker
I'll call it tailwind style, but it's like the inline, it's more closely resembles like inline styling. And then, you know, there's another, is it CLJS style or style fi, you know, it's kind of that way of thinking versus like the SCSS, you know, just classic CSS. And which camp would you say that, that I guess your development style falls in, you know,
01:05:39
Speaker
using this style of development. Which camp? Does that question make sense? Yeah, that makes sense. Can you remind me? So Tailwind, is that the one where you have, it defines classes for very specific like margin top or margin left and you compose those as like your class names?
01:06:08
Speaker
Yeah, it's like, it's like, um, it's like dynamic. I actually haven't used it a ton because I'm of the other camp. Um, but my, and I've seen, I've seen tailwind use and I've, and I have worked on a code base that did the same style, like dynamic CSS were like in each namespace at the top was like, you know, the, uh, the styling was defined and it was, it was done. It was dynamic. Um,
01:06:38
Speaker
It just more closely resembles inline styling is the best way I can describe it versus CSS that we all know. Yeah, so with React Native, it's all inline styling.
01:06:58
Speaker
So you don't have class names. And then your quote unquote CSS files, or JavaScript files, where you have an object, where you export an object, where you use the keys like you would class names. So they're all just key value pairs. And then the values are objects with the CSS properties. And so with React Native, you are forced
01:07:28
Speaker
to do things that way, but you can merge objects. We have a basic style guide where we've defined your heading styles and your body text and labels.
01:07:49
Speaker
we can then spread those along with more specific styling. And so I think we kind of try to do both within the constraints that are given. And then in terms of general usage, I have worked on projects that use, I forget the name of the library, but it's,
01:08:18
Speaker
Yeah, I think it's similar to Tailwind, where you have a library that defines all these classes for you, and you compose them in your class name string. And if it's already there,
01:08:35
Speaker
I'm fine with it. Like I'll use it. There are major benefits to it. Like I just, I just type in the classes that do the exact things I need, but then they get really long and then, um, yeah. And then doing, um,
01:08:51
Speaker
responsive styling with it can get cumbersome. But if it's there, I'll use it and I'll enjoy it for what it is. If I'm starting a project, I'll probably just define the styles myself because I do like having that custom control. So I mean, I think in general, I don't
01:09:16
Speaker
I'm not extremely opinionated about things that, if it's there, if it's already there, I'll use it. But given the choice, I'll do what I want. Yeah, yeah, yeah. But I think not having CSS- Is it even able to integrate- Go ahead, Jordan. I'm sorry, Vijay, you go on.
01:09:45
Speaker
I'll take it then. I was wondering because maybe my uneducated guess would be that I did a little bit of iOS development at some point. I don't think they're having a compiled CSS or hierarchical CSS is going to match. It's not easy to apply that to iOS controls that easily. I think it makes sense that in React Native that
01:10:06
Speaker
you're doing in the code styling rather than extracting it separately and then defining because that's usually not easy from my limited experience with iOS development because there you're each component, you're styling separately. That's probably the reason why those are separated, I guess. It's not like web thing is going to translate directly to native stuff.
01:10:36
Speaker
Yeah, my question comes from because I don't really have most of my experience is doing web apps single like SPA. So I haven't done a lot of native stuff, which is where that makes sense. Maybe the other aspect of it Michelle to talk about is like the device aspect of it because the big difference to me between like web development and native development is the fact that you have this actual mobile device that you want to run things on.
01:11:01
Speaker
So how does that work out that you can actually run things on a device or on a simulator? Because obviously, when you're running in the web, you're just running in the browser. But with the iOS and the Android, you've actually got hardware, external hardware. So how are you finding that aspect of it, trying it out on a real bit of hardware as well as the simulator or the browser that you have? Yeah.
01:11:31
Speaker
Definitely more cumbersome. There's a bit of setup involved. You have Xcode and Android Studio. And you have to enable certain permissions. So when I do switch back to working on a web app in my free time, I'm just like, whoa, this is so easy. But it's also very satisfying to see it on a device and use the app.
01:12:00
Speaker
We're at a point now where most of the time we do have to run it on a device because we use Bluetooth and things like that that the simulator can't simulate. So you get used to it. You're able to use the REPL and other things, all the other affordances on these devices that are very tricky in the JavaScript world or the kind of native world.
01:12:29
Speaker
Whereas with ClosureScript, you can run a real REPL onto the real device, which I think is a super awesome benefit. Definitely. Yeah, it's super convenient just to be able to go in the REPL and navigate to a different screen or run functions in isolation. And yeah, there's no friction. It just works on the device.
01:13:01
Speaker
So Jordan, you're on one end of web applications, right? And then I can see Michelle on the other side. So Paula, did you dip your toes into mobile stuff as well in ClosureScript, or you're somewhere in the middle of mostly? No, I haven't. No, I mostly work on server or library style code. I mean, I do a little bit of front end things just to drive stuff that I've got, but I'm not talented in that way.
01:13:31
Speaker
And I mostly like to push computers around to do the stuff that I want. And the user interface things are things that other people are far more talented than I am. So I create simple apps that have a button on it to do something. That's pretty much every app.
01:13:52
Speaker
So what I'm hearing is between, what I'm hearing is between the three of us though, skills across the board, myself, Michelle, we could kill it. I think this is the, this is the birth of a starter, you know, this is you. Yeah, exactly. We need to come up with one of those magical ideas that they have on Silicon Valley. You can make the world a better place. Totally.
01:14:19
Speaker
So far, I'm very unimpressed, I have to tell you. The most interesting thing is the circuit board art above my bed. That's... Have you tried to put a ripple into your bed?
01:14:31
Speaker
Oh my gosh, I tried. Actually, the room I have here is surprisingly low tech. There's not even like a USB, like my seat on the Delta flight was more high tech than my room. There's not even like a USB port here. Did you check if there are any vacuum tubes lying around there? There's still like, you know, a few vacuum tubes, the things before transistors. Anyway.
01:14:58
Speaker
Yeah, yeah, yeah. Not the real Dyson vacuum one. Did I bring my Dyson? No, I should have. That's the one thing I did. So you're down in the southern end of the valley today, aren't you? Me too, Bettina? Yeah, I'm in Cupertino right now. Nice. So you said you're in Denver, Michelle?
01:15:24
Speaker
Oh, I can, I don't, I think my audio dropped. No, uh, Jordan's audio dropped for a moment. I just sort of finished with Michelle. One thing we should maybe make clear, um, Jordan's in Silicon Valley, but she's in a hotel room. Yeah. Yes. I am having some tech difficulties because I'm visiting California.
01:15:46
Speaker
Like I said, unimpressed with the tech Silicon Valley much better in the middle of nowhere. I mean, really is in the middle of nowhere in Belgium. He has better internet than Silicon Valley. This is not fair. Oh, my question was wearing a shell. You said Denver, Colorado.
01:16:09
Speaker
Oh, cool. Cool. Where? Yeah, we need exactly so we can send you like door delivery or something right now. Please let us know. I bet she's going to be like, I'm real. No, I bet she's going to be like, I'm real cool. I live in Boulder and I'm going to be like, cool. Boulder is cool. I don't think I would ever live in Boulder. It's a it's a little mountain bubble that I love to visit, but I don't think I would.
01:16:39
Speaker
Are you telling me Colorado is no Coolerado? It's alright, no. No, she's saying she's too cool for the coolest place in Denver. Is that true? What she just said? You mean Colorado? Denver and Colorado are different cities. Ah, okay. Yeah, they're about an hour apart. No, okay. I think of Boulder as...
01:17:02
Speaker
I think of them in the same area because I'm not from the area. I visited Denver and I went to Boulder, so I'm like, of course, Boulder must be in Denver. I was visiting Denver. I'd say they're very different. The Denver Greater Area, I guess? Yeah, you could probably slip it into the Denver Greater Area, but I think it's a stretch. Yeah, and they're very different.
01:17:22
Speaker
Okay. So I guess Ned, Ned doesn't count as, as, as that Netherlands count as Denver, a greater area. That's Ned. Ned. Oh, Netherlands. Yeah. I have to say like, I'm a bad Coloradan because I don't go into the mountains very much. I'm a city rat. I'm from New York. Um, I was born and raised in Queens.
01:17:47
Speaker
And so I came out here and at first, you know, I thought I would go spend a lot of time in nature and I wanted to be that kind of person, but it didn't really happen. Okay, that makes sense. How is the closure community in Denver then, in Colorado in general?
01:18:13
Speaker
So there are a couple of meetups. There's Den of Closure and functional programming meetups. I haven't been really involved. I know there are companies here, a couple of companies that use Closure and Closure Script, but as far as the community goes, I feel like I'm pretty new. I'm not plugged into
01:18:42
Speaker
the matrix. Yeah. And it's been harder over the last 18 months to really connect with local communities anyway. Yeah. Yeah. Especially last year. Yeah. Yeah. Ooh. I have a question. As a closure scriptian, do you feel any sort of, um, I don't want to say divide. Divide is too strong of a word, but
01:19:07
Speaker
Um, have a hard time relating to, you know, cause I do know like some people that are based in Denver, Denver greater area that are, you know, closure, very, very into closure and like data science. And like that is just not, doesn't have a ton of overlap with a closure script, for example. And I think I'm very similar to you and our development styles, kind of our interests. And I know personally, I've found a hard time, like wanting to relate to these people.
01:19:34
Speaker
so bad, but just not having a ton of common ground. Have you experienced that at all? Do you feel as a Closure Script in? I don't think I interact with enough Closure or Closure Script people around here in person, at least, to feel that. I don't know. I just need to get out more. That's the answer. I need to go find out my answer to that question.
01:20:05
Speaker
But isn't, isn't like the data science in the end is a lot of visualization aspects, which should be, which should be a good fit for closer script. There's a lot of extra boost there, not just visualization. Well, maybe I'm just not smart enough.
01:20:20
Speaker
I think also part of it is just like, maybe I'm just not smart enough to hang up the data science kits. I just, like I try, but I'm just, you know, I don't know. I dip my toes in and out of cyclo-ish, you know, occasionally, but yeah, I don't know. I've had a hard time trying, even just like the tools and stuff are just, are just,
01:20:44
Speaker
different, even though Clojure and ClojureScript are the same language, they're not. It's just a different way of thinking. Yeah. What are your thoughts on this? I was thinking about this as you asked. I mean, on Clojure in Slack, I go into the Clojure Room and into ClojureScript Room. And in the ClojureScript area, the majority of people talking about things are
01:21:05
Speaker
talking about React and Hiccup and all of these UI elements to it. I tend to get involved more when Mike Fikes starts talking. What I'm building with databases is it all runs in Closure Script.
01:21:24
Speaker
And

Development Tools & Preferences

01:21:25
Speaker
so I'm connected to ClosureScript. I'm filing tickets in Jira. I'm involved with that. And I follow it. And I'm really conversant with a lot of the differences from Closure to ClosureScript. And a lot of what I write is in CLJC files.
01:21:45
Speaker
And so I have a lot of interest in ClosureScript, but there's also a disconnect with the majority of people who are running ClosureScript because they're doing UI development, which I'm not really focusing on that at all or barely touching it. And recently I've had a few things, writing code for Ray, for instance, where I
01:22:12
Speaker
I'm writing closure and I get to interact with the JVM again. When you're in CLJC files, I try to issue the JVM wherever possible. Just being back in that environment in some ways is liberating because I can use the full power of the machine and I can really dig into certain things that I can't do when I'm trying to keep it portable between the languages.
01:22:39
Speaker
And it's interesting interacting with the community on Clojure versus ClojureScript. And ClojureScript is this community which is how does the compiler work and where does the syntax take you and what's the JS that's going to be generated from that versus the, well, how do I interact with React?
01:23:01
Speaker
and components and trying to create UI elements effectively. There's that division in Closure Script and then the division from Closure Script to Closure. There's an overlap between the two of them as well, especially with beginners, people who are doing
01:23:21
Speaker
and saying, well, what's the most idiomatic way to write this? Or I've got this structure. What's a really good way to do this because I can't figure it out? Or I have an algorithm which seems to be too slow. Can someone come up with an idea here? And there's a real overlap between the languages there. And so there's these subdivisions in the communities. And I straddle some of them, and I look onto others.
01:23:50
Speaker
And you Michelle, did you, did you try? You should, you should come work at vouch because, uh, the SDK is written in closure scripts. And, um, so, you know, there is that straddling there because, uh, the mobile app consumes the SDK and it also communicates with the API. And so it's not, it's, it's that middle layer there, um, that is really important, but then you would be able to work with Mike fights.
01:24:21
Speaker
and David. Good luck tearing her hands for Cisco. I would not be very happy about that, let me tell you. Michelle, do you already... You know, DeafDaf is a job interview process though.
01:24:40
Speaker
Anyway, Michelle, because now we are talking about Closure on JVM. Did you ever tried Closure on JVM, like building the backend services or something? Or were you mostly working on Closure Script area mostly? I'm sorry, you kind of went into this auto-tune limbo. I didn't hear what you said. Can you hear me now?
01:25:06
Speaker
Okay. That was, I think you missed my acapella performance, but anyway, I was just asking because most of the time it seems that you're working on a closure script side of the world. Did you ever try anything with a closure on JVM? Did you work on it? Did you build any backend in your web apps or at the job?
01:25:31
Speaker
Um, I never really worked on it directly, but, um, I code for Denver. There were, um, backend services written in closures, so I would dip my toes in there. And, um, I, anything I know about Java, I learned through that, like through, um, interop, um, with closure. So I, I mean, I find that really interesting. I would like to learn more. Um,
01:25:57
Speaker
And I'd vouch to actually where I've been getting more exposure to Java through the Android bridge of the SDK. And I've really enjoyed that, actually. Java is...
01:26:22
Speaker
It's a lot wordier, for sure. But there are cool things about it. There are cool things about it. And the same with Objective-C. It's good to see these older languages. To have the full picture, the lineage of these things. You make me feel old now.
01:26:50
Speaker
I'm not taking, I'm not taking it in a derogatory way or anything. It's true. I mean, like Java has been there for more than 20 years now. So it's an old language makes sense. Yeah. And you can see where a lot of things in JavaScript came from borrowed ideas there. And, um,
01:27:11
Speaker
You know, just like learning any new language is really fun. Yeah. Yeah. Yeah. Right. So I don't want you guys, but I think we've been going for a long time and this has really been fascinating and awesome, but, uh, I think we should start to kind of like gently wrap it up with, uh, your favorite question, Vijay. Yeah, of course. I mean, that is the only question that we are all here for. And so, so Michelle, let me do use Emacs or some other shit. That's the bigger question here.
01:27:37
Speaker
Do you mean for my ID? Yes.
01:27:41
Speaker
for everything. What do you mean by e-max is for everything? From walking in the dark to treating your plans, you know, everything. I use VS Code, occasionally IntelliJ, and BIM in the terminal. Well, so I think this is episode number 77. So we're going to cut this part out and then we'll make sure that everybody knows that you're still using e-max, you know.
01:28:11
Speaker
I hope we can still be friends. We'll see about that, you know. Friend of bees, I think is that. Yeah. No, no, no. I think we're all friends. I mean, Emacs is going to be there forever anyway, so we have plenty of time to catch up, you know. Yeah, one day, one day I'll venture into that, see what it's all about.
01:28:33
Speaker
Please do. So Michelle, is there any other subject or area that you think would be interesting to cover just in the last five or 10 minutes that you want to just get out there? Your secret music email list, mailing list. That is the biggest one. Well, so these days,
01:29:01
Speaker
More than music, I would say I do more visual or interactive art, always with some kind of electronic component.
01:29:15
Speaker
And I guess that is sort of where I came from, too. As I was getting my bearings with coding, I was trying things out through art installations. Or I did a residency at Library 21C, which is like a library of the 21st century with a maker space and trying to
01:29:40
Speaker
you know, make that more accessible and so I've Yeah, I consider that like sort of where I'm coming from and Hopefully it can stay connected to even as I go in this different direction And that's all I got
01:30:06
Speaker
It's been brilliant. It's really fantastic. Thanks a lot, Michel. I think it's kind of an inspiration to see your journey from non-computing stuff and then getting into computing and building probably one of the most impactful kind of projects that you're working on. It's awesome to see and then learning completely new language and applying your skills across everywhere.
01:30:32
Speaker
and also teaching kids. And I really hope at least some of your students are going to listen to this podcast. And they feel like, yes, that's our teacher. And that should be a really proud moment. And we wish you a really continued success on this one. And I'm sure Ray did a good job of picking the right person for vouch. So that's for sure. And thanks a lot for gracing this episode from all the way from Silicon Valley, Jordan.
01:31:00
Speaker
Yay. We'd like to have you more crashing this one and special cameo appearance by the last second. Sorry for pulling you into this at the last minute or last second. I was working on a talk and I thought, oh, I haven't heard from DJ in ages. I just said hello and like, oh, we're running. We're doing a podcast. We want to do a cameo. Sorry.
01:31:36
Speaker
Thank you for listening to this episode of DeafN and the awesome vegetarian music on the track is Melon Hamburger by Pizzeri and the show's audio is mixed by Wouter Dullert. I'm pretty sure I butchered his name. Maybe you should insert your own name here, Dullert.
01:31:55
Speaker
If you'd like to support us, please do check out our Patreon page and you can show your appreciation to all the hard work or the lack of hard work that we're doing. And you can also catch up with either Ray with me for some unexplainable reason you want to interact with us, then do check us out on Slack, Closureion Slack or Closureverse or on Zulep or just at us at Deafened Podcast on Twitter.
01:32:24
Speaker
Enjoy your day and see you in the next episode.
01:33:02
Speaker
I'm a poet this now after 76 episodes.