Building things that excite you with Charlie Gerard - podcast episode cover

Building things that excite you with Charlie Gerard

Jan 23, 202346 minEp. 14
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

In this podcast episode, the we discuss a range of topics related to learning and building cool projects. We begin by discussing the recent snow day and share some funny tips and tricks kids use to create a snow day.

Charlie Gerard, a senior dev advocate at Stripe, introduces herself and talks about her role as a creative technologist, primarily working in JavaScript. She shares her love for solo traveling, reading, tinkering, and building. We also discuss Charlie's previous projects and how she comes up with project ideas. She rarely starts from scratch but builds on something she has built before, adding a new sensor or trying a different technology or interaction. We also discuss the challenges of working with sensors and how to connect them to a computer and figure out the different protocols.

ThoughtWorks, a company with a tool called the Radar, helps developers navigate new technologies and decide which to adopt.

We discussed the importance of starting small when learning to code and using games to learn programming. We chat about using ChatGPT for games like D&D, expressing that these games are meant to be fun and not automated.

Charlie can be found on Twitter (https://twitter.com/devdevcharlie), Mastodon (@devdevcharlie@hachyderm.io), and her website https://charliegerard.dev/, and regularly shares cool projects on GitHub under the username charliegerard.

Resources:
- Thoughtworks Radar - https://www.thoughtworks.com/radar
- Charlie's projects - https://charliegerard.dev/projects
- Richard's blog post about energy - https://twitchard.github.io/posts/2023-01-18-unicycles.html 

Transcript

Colin

Welcome to Build and Learn. My name is Colin.

CJ

And I'm cj and today we're joined by Charlie Gerard. Charlie is a senior dev advocate at Stripe and she's given several mind blowing talks lately and also, written some really, really incredible articles. We're really just excited to hang out. So hi and welcome Charlie.

Charlie

Hi. Thanks for having me.

CJ

Absolutely. Before we jump into it to set the stage, today is a snow day. And snow days are like the greatest days ever, for kids. And so yesterday, it was on the news that maybe there was gonna be enough snow for there to be a snow day. And so the kids were coming home and telling me that like every kid in their class was like, Trying to figure out all the ways that they could influence the universe to create a snow day.

And so, just like a couple that I thought were really funny, one was to go to bed with your pajamas inside out One was to put cheese in your pocket, there were, there were some others, but I don't know if you, if you have any, tips or tricks for kids who want to create a snow day around them.

Colin

It sounds like we found out who the troll, the trolls are amongst the kids.

CJ

Yeah, exactly. But someone did something, I don't know if they went to bed with a spoon under their pillow or they flushed an ice cube down the toilet or they like, what, what magical thing they did to make it happen. But we went to bed last night and it was raining and we woke up and there was like six, seven inches of snow and school's canceled.

Colin

Nice.

CJ

Yeah. Yeah, it was, it was good. Charlie, tell us, tell us how you would introduce yourself. Tell us more about yourself, and then we'll get into

Charlie

Sure. Well, I mean, as you said, I'm a senior dev advocate at Stripe. I am an author of a book about machine learning in JavaScript. And, if I had to pick another kind of job title, uh, I would pick a creative technologist. Cause it's more of how I approach my work, in general. So I'd like to. Try to push the boundaries of, even what I know or what I think is, is possible with technology. And as I work mostly in JavaScript, I usually try to push, the boundaries of what can be done on the web.

Uh, that's usually my angle cuz I already know JavaScript. So, I can like work in that space. More often. But, um, yeah, usually that's how I would describe myself and outside of tech, I love to travel, solo. I can travel with friends as well, but solo is, is better. . I mean, in my opinion, it's, uh, I really like it. But yeah, otherwise I love reading and, and tinkering and building things. So that's kind of how I would describe myself.

Colin

The, traveling solo, thing that you mentioned there is something that I'm newer to. I actually just went on a trip to Portugal earlier this year and, There was some circumstances that made it so that it was a solo trip eventually, and it was actually really fun to just be able to get, you know, go do the things I wanted to do, not have to like corral people and all of that.

Charlie

Exactly.

Colin

um, but yeah, looking at your website, you've done quite a few, like really cool projects that are, very like human computer interaction related, just kind of having fun with technology, sensor. The web airplanes, walk us through how you come up with project ideas and like if you have a process for that.

Charlie

I think over the years I kind of came up with my own, process, but I never really do. anything completely from scratch or anything completely original. I usually, either build up on something that I have built before and I add either a new sensor or I try a different technology or I try a different kind of interaction or I take inspiration from either, uh, something that I read or something that I came across on Twitter or, or a series I'm watching on Netflix or, or anything.

In terms of, process, I think it's kind of, the same way that I did it when I started where I was coming across. A repository like I, I learned to code in a bootcamp. And when I finished that bootcamp and I was looking for a job, I still wanted to keep coding to make sure that I was still learning. Uh, but I wanted to do something that I found, exciting. So I started to come across. Programming for hardware in JavaScript, so controlling the little robots.

And I was coming across different repositories that I was trying, and then I was adding my little, twist to it so I didn't start completely from scratch. I don't think I, I mean, I don't know how I would've done it completely from scratch, but, usually I kind of look through GitHub and see is there something that's, interesting to me? And then I try to change one aspect of it. So, uh, even the, the time that I built, a project to.

Play like an Air Street fighter with like real movement in the air with a machine learning model. I actually was inspired by another, project that was a bit similar, but it was using the, the webcam to check your, to check your movement, and I was okay. That's really cool, but. , like when you're working in front of the webcam, you're restricted to a little space, right?

You, you have to do it in front of your computer and if you, if the lighting is wrong, then it's not gonna recognize you gesture properly. So I was thinking in terms of interaction, I would like to be able to play like anywhere in a room and that's why I kind of removed the webcam part and I was like, okay, I'm gonna do it with real movement with a sensor so I could be anywhere in a room and it doesn't matter if it's at night and I can have multiplayers and stuff, so. That's usually my process.

Like I start with like a starting point or I have a question like, is that even possible? And then, uh, and then I tinker it and once I just answer my question like, yes, it's possible or not, then I stop and I move on to another one because I never really polish what I do. Cuz then that would be never ending. And I always have other ideas I want to work on. So I always try to like frame it with like a constraint that could be like a language constraint.

Something I want to add that's different and then an end point that's like when I've answered my question, is it possible then I need to stop and I need to move on So that's kind of how, um, like I work also because yeah, my time is limited, so I have to make sure that it fits in wherever I can on my schedule.

CJ

The other sensors that you added that were not webcams, like what kind of sensors are.

Charlie

So it was, um, it was a gyroscope and acceler meta. So, uh, because with the acceler meta you can detect how fast you're moving and with the gyroscope you have an indication of, uh, x, y, and Z coordinates for angles. So in terms of, uh, recording data for movements, that's two sensors that are pretty great for that cuz it, you end up with. Six points of data. So X, Y, Z for accelerometer and gyroscope.

And when you, uh, record that data, uh, as you're doing like a punch in the air or something, that's enough data to then train, uh, a machine learning model to, recognize the difference between, uh, punching or doing like, some kind of like uppercut movement.

Like I'm not really familiar with the actual terms that you have to use, but you know, And then, yeah, you can, like I remember spending, a few Sundays where I was just alone at home, like punch, punch, like So, and in the end, yeah, I did it a few times and I used that data to, uh, train a machine learning model and then, Um, using web socket to kind of stream the gesture to the browser and, and then, like play a little game. So it was a prototype.

I didn't really go further with that, cuz again, my question was, you know, is it possible? And then when it's possible, I just, I moved on. But that was an interesting one because there's a lot of different ways to use the, and aas. So the first time I. A device that I don't think they sell it anymore, but Google used to sell the Daydream headset that was, uh, an upgrade from the cardboard vr.

And they had a little controller and, I used that, but then I would, I also built my own custom one with an Arduino and an actual sensor. And then I also built a version that uses your phone, because your phone has an extra and gyroscope and there's a web api. So I could remove the whole, not just part that was streaming, the thing to the browser, because I was like, well, now. The generic sensor API in the browser and you can stream the data directly, like, uh, in, in frontend JavaScript.

So it was an interesting way also to add on that, onto that project and be able to experiment with the web API I had never worked with before, and that was kinda like my excuse to try it. So, and then I ran another idea, so I stopped

Colin

That's fun. Yeah, I, I've been to a few hardware hackathons where depending on what people are working on, you're right, you have like people over here punching the air and like recording their movements and someone over here is like trying to make a fish tank that drives around on an RC car

Charlie

Yes.

Colin

or stuff like that. So, uh, what you mentioned, I think is really kind of good for people to just kind of take from like building and learning things. The name of the show, right? Is that like, I like that you don't worry.

How can I make this perfect before you even start And I think looking at your project page on your website, you see a, you started a lot of things and you have used a lot of sensors and you've played a lot of stuff where I think a lot of people don't even start because they're afraid that they aren't gonna be able to make it perfect or polished and all of that.

And I think, that's a disservice cuz there's a lot of really fun things that you can play with that you don't really need permission to go play with those APIs, to play with those hardware sensors, things like. . Charlie: Mm., I know there've been a lot of like different Kickstarters and you know, hardware is hard, so I think tapping into things like your iPhone sensors and things like that is also great cuz Apple has spent a lot of time and money on making those sensors really good.

But you could also go deeper and build your own, Arduino sensors as well, which can be fun too. Is there a sensor that's like your favorite if you had to pick one,

Charlie

Ooh. They kind of all do d. Things. So, I mean, if I build something custom, I usually start with, Arduino as my micro controller. And then, well the sensors, it depends what I would build. But if we then, um, talk about more like. Brain sensors. I do have a favorite. I've tried a few Um, so it's like, it depends what I'm building, but if I, yeah, if I do custom, I go with Arduino as my micro controller.

And then, uh, if I do other things like in terms of brain sensor, my favorite would be the notion from, uh, New York City. But, I don't build everything custom cuz there's things I couldn't, I mean, I could build my own brain sensor. I actually have a kit that I never used. , but . But there are some things that I would, uh, I'm fine with just buying off the shelf and, um, and try to hack with that as well.

CJ

It seems like the most intimidating thing to me would be like, I bought the sensor and I got it. I get it from Amazon, or whatever. You know, some thing a package arrives in the mail, like number one, how do I plug that into my computer? and make it talk. And then number two. . How do you actually figure out all of the different protocols? I know like in the past, I was trying to play with early stuff that was using Bluetooth.

And I just remember it being a nightmare, like, how do you even make these things talk to each other? So I hope that it's gotten infinitely better,

Charlie

but yeah, I think maybe the chance that I. Have all the opportunity is that, as I use JavaScript a lot, the community is very good at putting their work, open source, and you can find a ton of projects, on GitHub or even now, like all the different web APIs that you can use, in the browser.

It, it's, I mean, every time that I want to build something, most of the time I can find a. Pieces of interesting code in different repositories that sometimes I have to put together to do like exactly, what I want. And you can start from something that you find. And then if it doesn't work exactly the way that you want, then you can either move away from JavaScript if, if that's not the right language, to do what you want.

Or you can try to dive deeper and slowly build something more, uh, Them, but even, even with, uh, Bluetooth now, yeah, you do have the Bluetooth api, uh, in the browser as well, or, there was some, not just tools or you can try different languages, but, usually I do research before I buy the hardware, so that I know, because sometimes you might not even buy the, the right device or sometimes there's more repos that are working with like a different device than, than another.

Usually I do some research before I really like start to get into it. But usually there's like no matter what somebody somewhere would've done something. And even if it's not exactly similar to what you want to build, there's ways that you can tweak it. Um, and I think, I mean, at first at least, I was always checking that there was a GitHub repository, like at first before starting to build my own thing. And now as I've kind of learned more, over the years, I'm more comfortable sometimes.

Like going away from existing repositories and trying to do something myself, but it's not something I would've done at the beginning. I think it would've been a bit too scary, like I wouldn't have known how to start. But now I'm a bit more comfortable going a little, deeper and avoiding certain abstractions. Um, but yeah, things take time. Like it's definitely a learning process.

CJ

When you buy these devices, have you ever run into weird challenges getting them to talk like, oh, this Bitstream is coming in big Indian, but I need it in little Indian, or like weird? You know, I, I don't, I know I can see that there's data, but I don't know like, how to make it, something I can use.

Charlie

So one, one thing that I can think of, is more like the first time that I played with a, a brain sensor. It, the SDK was only available, I think it was in, Java and c plus plus. And that was not languages that I , that I knew at the time at all. So I think that was like one of the first time that I really hit a wall, because it was really not something that I was working with every day. So it was really hard to get it to work and the repositories that I was trying were out of date.

That took me three years to fix. So this is what I mean that, you know, sometimes I come across something that's a bit too hard and I put it on pause and then I learn more. And then, you know, one day you look at it again and for some reason you have figured it out in like five minutes, uh, But, uh, I think that pushed me to create my own. A little JavaScript framework for it and, and like make it talk to each other between the c plus plus side and the no GS side.

So that was like one thing that took me a, a while. But otherwise, I think recently as well, when I did my project to, get data from live, airplanes. So I used, what is called, uh, software defined radio dongle that you plug into your computer and you get, you get raw data. and the thing is, like when I got that raw data, I was like, okay, cool. I can connect it to the browser and I can get raw data in the browser, but now how do I transform that raw data?

To actual readable Jason data from an airplane. And this is where I'm really thankful that some people put their work online, because I, I found, a repository and it was done in nudges, but then I could look at the part of the code that was decoding the data and I could look through the code and be like, oh, okay. So you can like, transforming to that. And then you could do some research and, and find that there's a certain format for the data that is broadcasted by airplanes.

And you can be like, okay, so. The bit values between like zero and five are the number five, then it means that it's a message about the altitude and then you can decode the rest. It took me a few. Months, because it's something I had never done before. But it is definitely like I start by making sure I can get data.

Uh, and then it's, uh, it took me a bit of more research to find the, the format of that data and how do you actually go from raw data to, to turning into something that's more readable. And it's something I still need to look into because I relied a lot on.

The existing, uh, repositories, and it's something I wanted to do now, is go back and try to rewrite it, on my own because that, uh, maybe I don't need most of the part that the other author, wrote, and maybe I just need, you know, a little bit and I'm actually, there's too much code in what I built and I could, uh, make it better. But that's also the part where, , you know, it worked, it did what I wanted to do and I moved on to something else.

Um, so there's, I could always like do something better, but that was an interesting one because I think it was the first time that I actually, looked at raw data and be like, what does that mean? Like, how do certain communication protocols work because they're all different. And I was like, okay. So, A D S V data, which is like the protocol for how air. Communicate. Uh, now I have a better idea of the structure of these messages and what do they mean?

And you actually look at, uh, the, the bit values at certain positions in the array, and it's like, oh, that means that. Super cool. So yeah, , that was fun.

CJ

So cool. So I wanna change gears just a little bit from all the HCI stuff, and talk a little bit about your experience at ThoughtWorks. ThoughtWorks is a technology company. I think you could maybe give everyone a, a brief introduction to it, but they put out this thing called the ThoughtWorks radar, which is a collection of technologies that they're watching and have on.

On their radar to learn about or use in products and they kind of range from things that might be, production ready versus, upcoming up and coming or, just things to watch. And I'm curious like what your experience was like working there and also how they build this, because I think it could be, yeah, it's like it's useful for individuals to keep an eye on what technologies are sort of, uh, interesting.

Charlie

Yeah, sure. Well ThoughtWorks is a consultancy, so the good part, I mean, the reason why I wanted to work there, um, I got that job right after my bootcamp, uh, and I was interested in working there because I, at the time, you know, when you don't know how, what you wanna specialize in, and I was like, I wanna be a full stack And it was, job, like a good place to, to be that, because as you're a consultant, it means that you work for a different clients and you

might be on a project for either like three months or six months or a year. And it can be in a lot of different, programming languages. So, I think at some point I did some things in Ruby or for, you know, a few weeks you can be thrown into having to do things in Java and you might not know Java, but you have to figure it out on the job. So that was also the, the challenge. But then I think that's what is really helpful in building the radar.

I remember being part of Putting together one of the edition of, of the tech radar, so we had these, meetings at lunchtime where, you know, anybody who was interested was getting into a meeting room. and we were putting like sticky notes on the walls about technologies that we had worked with on our different clients. And, uh, what did we think that they were in the like, trial kind of column or like, you know, forget about it. I forgot the names of the columns.

I think there's like trial and, uh, assess and, and things like that. And it was really interesting because, well, as we get to all work with. Clients from different industries and on different types of projects.

We try a lot of different technologies, so even for me, it was nice to have a, a little sneak peek on what it, what was about to be on the radar before it was released, because then, For example, Mia, I could be like, oh, I worked, uh, with um, a three Gs, uh, you know, 3D in the browser on that client, and it's really cool technology, but I didn't know that, you know, other people were doing things with Kubernetes or like flask, you know, with Python things. So it was, a nice way to.

Have an idea of like what was out there, even though I didn't have the chance to work on it. And, uh, it was interesting to just hear from people's, um, experiences working at different clients and they were sharing the pains that they had with different technologies and why they thought it was, it would go in the access column and not another one. So it was, it was really an interesting, process. And even though I don't work there now, I still, I still read it.

Uh, I don't know if they still do it like that now, but I loved that they were, including people in the process from junior dev to. Any kind of like senior or leader, uh, engineer. And, and I, I, to me I love that because it meant that it didn't matter if you had just joined or if it was your first project, , whatever technology you thought should be on the radar, then we would, discuss it.

And not everybody, not everything made it through, cuz there were like sometimes hundreds of post-it notes, But it was a nice, way to be. and a nice discussion that was going around that. So it was like, I remember it and it was a, it was a nice, like a fun little lunchtime meeting.

Colin

Yeah, that's, that's fun. Cuz I think consultancies they're not always known for picking up new technologies. I think like every, everyone thinks like startups and, you know, web three companies and crypto are doing all the new stuff.

But like, sometimes, like I've been in consultancies where they're like, you know, some marketing persons pitched this client on some kiosk in some technology that we've never built before, but we have to go figure like they, they signed the the deal, so we gotta go figure out how to

Charlie

Yeah. Now you have to figure it out.

Colin

So it's cool. I mean, ThoughtWorks has been around for a really long time. I know a lot of people who have been in the Ruby world for a long time probably know ThoughtWorks. We'll put a link to the, the radar and the show notes too, so people can check that out. But it's a, it's a cool way to like approach each thing without just being like, I don't wanna learn new things anymore. Like, I know that it's with, especially like in JavaScript, there's like a new thing every day.

So being able to look and see, like, have a, a measured kind of guide to, you know, , is this something we should keep an eye on? Is this something we should be adopting? Maybe this is something that's behind us. Um, so it's a pretty cool way of, of looking at all that. Um, when you are looking at some of those new things, like how do you approach learning a new thing if it's something that you've never.

Dealt with before, whether it's like a new JavaScript library or the things that you're doing in machine learning, uh, those kinds of things. Like, is there, do you have a way of picking up new tools? Is it, you know, doing hello worlds? Is it, you know, just trying to get to that, that first like output of data.

Charlie

Yeah. Um, I think it, it might depend on what I'm trying to learn. So if I was trying to learn a brand new language, I would probably do the, uh, the hella world. But if it's, still in JavaScript, but a new framework I don't really do the hella well because I know that like I need to do something that I'm really excited about. Because again, if I do that on my personal time, it's like limited. And also I think, if I, if it feels like it's gonna be a chore, I know that I'm not gonna do it.

I'm gonna think about all the other things I could do in the meantime, . So, um, usually if I try. JavaScript framework. I try to find something that I want to build anyway, and then I try to build it with that, with that framework. So if I want to do, I dunno, if I wanted to build, a new interactive web experiment and I have never worked with, I don't know, astro or, or Njs, then I might still do the interactive part in, uh, like in a, you know, standard JavaScript or, or tens or anything.

But then, Build the website using, using next GS or whatever other framework is out there. There's probably a new one just today, I don't know, . But then, yeah, if it's another language completely. For example, I think uh, last year I tried to learn rust and I went more with like a Hello World, website because I was like, okay, I don't know rest at all. And I wanted to try to host like a rest website on the JAMstack.

So that was kind of like my constraint was like, okay, it has to be, something that can run on net five. And so then I was doing some research about, okay, web like. , yeah. The ways to build websites in Rust and there was lit different tools and I didn't try to build like an interactive Rust website. It was really just like, oh, here's like, hello in the picture, . But, uh, that was my way of like, uh, being introduced, um, to Rust. But it's something that then I didn't really keep going with.

Uh, not because I didn't want to, but there was other priorities. So yeah, usually I try to be really excited about something that I want to build and if it seems too hard, then I start really small. When I started with machine learning, I started with, the hello world of machine learning, which is, recognizing, like handwritten numbers, uh, with the M N I S T dataset. So I started with, uh, and then, it taught me.

okay, so when you build your machine learning model, you need to prepare your data and it needs to best to have a certain structure. And then you pick different algorithms and then you have like predictions. And from there I was like, oh, what if I wanna move away and use another data set? And then what if I don't want images, but I want gesture? So I kind of like replace little bit until I get to a point where I have a project, idea that I want to build with that technology.

CJ

Super cool. Uh, Richard Marenstein from Stripe. Uh, another person that we work a lot with, uh, published an article yesterday called Take Your Pragmatism For a Unicycle Ride. And it's really funny and it's, it's got this story about how as a teenager he spent this summer. Learning how to ride a unicycle and like a unicycles, like totally not a pragmatic way to get around, but he just put like so many miles on it that summer because it was fun and interesting and tough and whatever.

And so we'll put a link to the article in the show notes. But I love this section where he talks about how it doesn't matter if people are sort of like making fun of the tools that you're picking, as long as you feel the energy and the excitement. And that's like exactly what you're talking about is like as

Charlie

That's exactly how I feel.

CJ

Yeah, if you're buzzing and you're just like, whoa, this is so freaking cool. Oh my gosh. Like, then you get pumped and like a lot of the stuff that you work on, I think too, like when you share it, everyone , that's like the response from people, right? Like, the ultrasonic payments blog post that's out like blew everyone's mind. And there's uh, there's some other stuff that you're working on now that I think is gonna be also like equally as fun and exciting. So I think it

Charlie

I think yeah, because learning is something new. can be very challenging and it can make you feel quite stupid. Like I feel stupid all the time because I always do things I don't know , so I'm like constantly in this state of almost like beginner and, but then when you, if you, if I know that I'm excited about. The end goal then that keeps me going because I know it's possible. I just don't know yet how to get there.

And but that moment, like these five seconds of adenal in rush, when it's finally working, it's. Amazing. I think that's what keeps me going because I know that at the end when I'll get to the end goal the excitement is go, like, it's gonna be both an excitement to see the thing working, but also to know like, wow, like three weeks ago I didn't know how to do this and I learned so much along the way and maybe it doesn't apply to my job right now, but I'll never know if it applies.

And, but even if it never applies to something practic. I love that as an engineer, I learned more about so many different aspects, along the way. And to me, like I, that's the part of being a developer that, that I love. Uh, I wouldn't do what I do if there was no excitement and fun. Like if you do your work like eight hours a day, like, how can you have no fun? Like, I don't wanna , I don't wanna do that. So, I mean, there's definitely been times where it wasn't fun, but I.

. If it's like over a long period of time, then I, it's not really worth it for me.

Colin

I think a lot of people have a hard time coming up with side projects, especially if they're newer to the industry and they're trying to build out their portfolio. And I always try to push people towards like, like if you're into d and d, like build something for d and d. Like, don't go find something that you hate. And try to build something for that because you're not gonna have fun.

And when it's hard, when it, when you're feeling stupid, like the thing that you love is gonna be the thing that pulls you through that. And then you might even have this fun toy that you get to play with when it, when it works, you know? And maybe it's not the thing you set out to build. But it's close. And you know what I love about hardware too, is it's much like APIs.

Like you get to do a thing that controls the thing in the physical world with coat and like, that feels like magic, whether it's a microphone, a webcam, a sensor. And I love the idea like some of your projects . This one's a clapping to, to toggle the dark mode on the Netlify website. Right? So like the sensors there, I'm assuming was just a microphone, right?

Charlie

Yeah, I think the constraint there was that I didn't know if I could run, um, Teso GS in a Chrome extension. And then I was thinking, cuz I knew how to run a website with it and I knew how to do it in node Gs, but I was like, Hmm, is there any reason why you wouldn't work in a Chrome extension? And then yeah, I started thinking, well, what could I even do in a Chrome extension? So then, yeah, I thought about dark mode and you just cut and.

Colin

You have the clap on. Clap off, right?

Charlie

so yeah.

Colin

Yeah, and I mean, that's an example of like everyone has a microphone on their computer already, so you don't have to buy or figure out where the data's coming from. You just have to make sense of the data. Right. And so love that. You don't have to go out and buy a bunch of accelerometers. I have a drawer of Raw sensors like accelerometers, light sensors, things like that.

And it requires you to learn a little bit of electronics and learn how to solder and, and figure out all that kind of stuff. But I've also picked up, I unfortunately, a lot of the companies are dead now, but like brain sensing headbands, arm motion sensing things.

I used to do a lot of hackathons around that and just the ideas that people come up with, um, will definitely link to all of your projects cuz it's like it would take the whole show to go through each of these, but just like the idea that, you know, I get Hum bought that detects toxic comments on prs. I think everyone can agree that's a thing that we all see in the world, and it's just fun way of, can we detect that and then reply automatically? That's, that's super fun.

But yeah, I think finding something that you love and then pairing it with an idea that, you know, a, a tool that you wanna learn is, is a good way to move forward.

Charlie

and I think it's important to like, not want to do something too big at first. Um, starting small is just as valuable or even, you know, cloning a repo, trying it out and then seeing if and if you can reproduce it yourself is fine. Cuz sometimes I've been talking to people and. The first idea that they have is like, oh, I wanna mix like VR with like motion center, with like hardware now. Do we know it? And I, I was just like, I mean, it sounds really cool, right?

But you're never gonna start, like if it's your first time and because you're excited or because you want to do something that doesn't exist and you see this massive thing, and if you don't. , any part of the project that you're going to build, you are probably not going to do it because it's going to look like this thing that's gonna take a year.

And even me, if I, I mean, if I come across an idea and I know that it's gonna take me a year, I'm never gonna start because I'm gonna be like, well, if I need a year off, I'm never gonna do it now. And so it's, I always try to break. my projects into smaller parts, or I try to build something that only has one element of it that I don't know yet.

Um, and then, you know, then I learned that element and then I can, you know, build another thing that has another element that I don't know, and then I can combine the two. But I know how my brain works , and if it looks like it's gonna take a while, I know that I'm gonna find excuses to do something else. Um, so it's, yeah, finding little tricks, but not being scared to build something that has been done before.

I know that sometimes people think, oh, it's already out there, so I'm not gonna do it again. But it's not because it's out there that like you still. Built that knowledge and you haven't built this like neural pathways to go from A to B, like in terms of, of creating a, a solution. So I understand the excitement of wanting to do something that's new and, and that has a lot of different components that you don't know.

But also if you wanna be realistic, if you actually want to get there, um, you have to go, you know, slowly and be realistic with the time that you have. Like have a goal that, you know, if you can not try to polish it, just like make it work and then later if you want refactor.

To me the most important is to actually build that knowledge, over time and otherwise, yeah, maybe people would get there, but, uh, from conversations I've had with people, like they just never built the thing that they said they would build. So, I mean,

CJ

I think it's also one of the reasons why I advocate for people to learn programming with games. Like start from tic-tac toe or start from something like, you know, hangman or something very simple and work your way up. and then build chess and like, once you've built chess, okay, now, like you probably know object oriented program or like whatever, programming language, like, uh, and that seems Yeah, it, it aligns perfectly, right? Because then you, at the end you get something to play with.

And so yeah, starting small and building your way up, and a lot of the stuff that you worked on too, like the red light, green light and the punching and the, like, all of this in the physical world. A type of game, right? Like a lot of them are very game related. They're not like solving any very serious problems, but they're like building prototypes that you could combine and use in production to build a solution to a really serious problem.

But you're like building the understanding and the knowledge behind all these different

Charlie

I mean, some people, I've seen some people build, using the same kind type of technology, to build some kind of like, uh, yoga instruction website where it would track the position of your body and it would tell you if you're doing a position properly so you don't hurt yourself. There's, some, uh, fitness. Applications that count how you do your squats because it looks at the camera and if you're doing, so you can't cheat that.

And then when you look at, um, real products that are out there, I think there is, a mirror that you can exercise in front of. And you have, I think it might track your movement and it might probably isn't done in JavaScript, but, uh, the, let's say that the logic is the same. It's like, if you know how. use a model that tracks different points in your body, then it would be about writing that, but in a different language.

But you do, if you do want to build something practical later on, um, it doesn't hurt to start with something that's fun because at least you can make sure that you'll get that knowledge, that you'll get the, you'll make sure that you, you have the motivation to keep going so that you understand, how to build the thing and then you can use that knowledge. to then do that thing.

Like, uh, I remember once, so I, when I learned to code it was the beginning of 3D in the browser and I thought it was really cool, like yeah. In Java script. Uh, cuz you know, I thought that, oh, it's only game developers who can do this, uh, using Unity and that, like, that's a different thing than what I'm doing now. But then when I saw that you could do that in JavaScript, it was. . It was so cool.

So I started, playing with this, and I remember that at the time when I was doing that, I mean, a lot of people were just like, why are you doing this? Like, it's not gonna be, uh, useful or, you know, nobody's gonna hire you for that. And, uh, well first of all, they were wrong, but I'm getting to this and, uh, . It's, um, so even though like I, I didn't use that knowledge right away.

I still, at some point there was, I was at ThoughtWorks and we were working for a startup who, had these kind of like physical pods where you could scan your body, to get measurement. And it was some kind of like health fitness tracker. And I remember they had, an Android app and to see your body scans, you was, you were, uh, kind of like flicking through different screenshots, like PNGs, right?

And I worked on that client and I knew that they had connect sensors inside the pods, and I knew that you could get raw data from a connect in three Gs to then build an interactive body model. So I was like, well, you know, I mean, just give me, gimme a week and like, Actually, no, I did it one night and then in the morning I was like, look at what I did . And uh, and I just like, I knew that just gimme raw data, like it's anonymized, right?

I didn't have the name of the person or whatever, but I was getting raw data and I was using it in three Gs and nobody else in the team knew how to use three Gs and. and then I, you know, when I left, I mean, I, I think the, I dunno if the company's still, you know, alive, but, uh, that's not my problem. And in the end, they were able to switch from just like a carousel of PNGs to an actual. Interactive 3D model that you could rotate and zoom in of your own body.

And then, you know, from there, there's other things you could do. You could model like, oh, if I was losing, you know, five kilos, how would my body look? Because it's, uh, it's key points from, from a, from a clinic, right? So you can just readjust that. And that was the goal. But it means that I could come up with that idea because I knew it was possible and I only knew it was possible because of site projects, that I did. And.

. When I got my job at the New York Times, I know that it was totally because of the projects that I did on the side that were not commercialized. It was just me showing that I would learn stuff on the side, and it was really interesting for them because it was more of like the creative side of, of the New York Times, so, Yeah, it's like if you're excited about something and somebody tells you that it's not useful, don't listen.

You never know when it's going to be useful, and sometimes you might be, the only person who can come up with an idea because you happen to have tried something that other people haven't tried, and you can. Help, uh, a startup have like a, like an innovative part in their product that maybe will help them get, more money in the, in the long run because they happen to have that and no other other company has it. It's just to say that, sometimes even if something doesn't seem practical at

first, . You still build that knowledge and you build that kind of creative mindset that can come up with ideas that wouldn't really cross your mind if you're not training yourself to see things from a different, uh, angle. So to me, I totally see the benefit of it. I know that there's still people who sometimes, you know, are like, why do you do this? You can't sell it. It's like, uh, I don't wanna sell it. I don't wanna sell my personal time So uh, yeah.

So, I want people to just be excited about what they build and one day it might be helpful, even if it doesn't seem like it might be right now.

Colin

Yeah, I, I imagine a lot of this stuff would also be pretty relevant in like AR and VR as well. And like immuno, I think meta just announced it like, you finally get legs in vr and it's like, okay, if we're, if we're only at legs, we still have a long way to go before we know what we're actually doing in, in virtual space. But, um, I love. Of like your approach to, to pulling back the curtain a little bit and learning like why things work.

This is kind of off script a little bit, but I think like watching all the stuff with chat G P T that's happening, I think a lot of people are looking at that as like magic, where you put inputs in and you get outputs out. And I don't know that a lot of people are going under the hood of what it takes to build those models to do it themselves. They're hoping chat GBT is just gonna do it for themselves. What do you think of, I guess the whole.

Space, um, in terms of like how we can program it, how we can use it in our day-to-day. I know this is a question we didn't really prep you for, but just curious what your take is on that.

Charlie

Um, so I haven't used personally chat G p t yet cuz so many people are sharing things that I feel like I have an idea already, , I don't have to try it. I might try it later to, see really what it can do. But I think having built machine learning models before, uh, I know that like, I mean, I see maybe less of the magical side because , sometimes people talk about it as if it. Something, yeah, something magical that's like superior to like human beings.

And I'm like, it could not exist if human beings had not creating the content that it is trained with. And recently, I, I started thinking, well, if all the content that we create is generated by chat, g P. Whenever chat g p t is going to be retrained, it's going to be retrained with its own content. And at, at some point there's going, like, my question is, is uh, if we stop writing original things that actually we come up with, are we, is it just, are we just gonna like stagnate?

Is it just gonna be, so the same words being like speed out again and again. So that's like an interesting thing. I think there's definitely applications. That could be really useful if you're really starting to do, uh, to learn something from scratch and you have very more like, uh, if you want complicated concepts to be explained in a, in a easier way. I can see the benefit of that. But then the issue is when it fits out a wrong answer. How do you know if you're a beginner in, in a topic?

So there's, I, yeah, there's some, I have some concerns around. Spreading information that's actually not correct and that you wouldn't know because if you're asking questions because you don't know the answer, right? So there's a bit of, of that. And also the fact that if it ends up being monetized, it was actually trained on free content that everybody put out there. And I'm not quite comfortable with the fact that you would monetize a product that, uh, used every, uh, everybody else's work.

And so I. I'm hoping that people will use it as a tool to maybe help or, or augment their, capacity or capabilities, but without completely replacing the creativity that comes with your own experience, your own way of seeing things. I wouldn't want people to just ask tr for ideas and not even try to push them further, because then I think it would be a bit sad. I think to me, what I like when I create things. to look at my environment and being inspired from a random conversation that I have.

Or, uh, there was, I don't know, a random documentary on Netflix about Spycraft and I was like, Ooh, now I wanna make SP tools I mean, it's like that kind of, that kind of inspiration that you randomly get. Like, I don't want to be told what to do by an ai. But again, I haven't tried it, so I'm not quite sure. But recently, when. , like I was watching a, a video of somebody who was trying to, use Chad g p t to build Arno things, and I was a bit sad that the person was excited.

But it, the content that was, that was generated by Chad g p t was something that was kind of already in the docs, like really easily. It was like a blink sketch and Blink is like the hell, the world of Aino. And that person was like, oh, Chad, g p t is awesome. And I was thinking, well, the blink sketch and documentation is already on the site and like you don't go and tell the doc writer that they're awesome for having written that content. So I hope that people don't forget that.

Um, The reason why Child Deputy is so awesome is because like everybody who shares their knowledge on online is already awesome, and nobody tells them . So it's, yeah, I'm a bit conflicted. I, I want to see where it goes. And I hope that it's going to be yet used as a, as a tool to like, augment or, or help, but not complet. Replace, I, I wouldn't want people to start selling products that are completely written by charge G P T, because then I feel like it's a bit disingenuine.

Like it feels wrong to me,

Colin

I'm taking all the fun out of it. Right? I mean, I think there was, there was one concern, I, I'll just throw d and d out there again. But there was this concern that the creators of d and d wanted to replace human dms, dun Dungeon Masters with AI dungeon Masters. And I was like, I think everyone's forgetting why we play this game, which is a game. It's not meant to be work, it's not meant to be automated. Like I play it to get away from computers.

Like, I like to play it on paper with a pencil, like with my friends. So, , you know, I think you've got a lot there That's right where it's like there are awesome creators creating content. Maybe something to take away from here is if you really enjoy something, go tell the author. Go tell the creator like that. It's awesome. So that, um, that we don't have to give everything up to our AI overlords too soon.

Charlie

Yeah.

CJ

Totally. And that's like, it's a good way to network too. Uh, if you see something that you like and just like shouting out that person, you might get an intro or chance to talk with them and build your own network. So

Charlie

It's just nice as well. Like I, I don't get dms often. . But you know, sometimes I get somebody telling me like, oh, I love your, the stuff that you do. And it feels very nice because like, you know, sometimes I'm having bad days too, and then I get a random DM and it just reminds me like, oh, it's not completely useless what I do. Or even if like, I don't do it for other people, I do it for me.

But it's nice that, some people might be inspired or might be excited to try a technology, because a lot of the times when. When I do something, I do it for me, but then I also teach it because I want people to know, and I want people to, feel like they can also try machine learning. Like, it's not as difficult as you think. It, it, it is. And when somebody shows me that they, you know, so they, they sent me a project they built because they read something.

I wrote, like, to me it feels good because it feels like, okay, I, I did something right. Like I put my knowledge out there and it helps somebody, learn about something or be excited about something or build something. And, Yeah, it doesn't happen often. I think people are a lot quicker to be mean and judge than they are to actually give positive feedback, unfortunately.

But yeah, I, I wish that we would recognize, when we praise chat G p t I wish that we would recognize that it's only as good as the content we, gave it.

Colin

Absolutely. I think that's a good spot to end it. Where can people find, more about you and all of the different projects that you've been working on?

Charlie

Um, so I've been a lot less active on, on Twitter for a while now, but I'm still there. So I'm, uh, at Dev Charlie on Twitter, uh, on Mastodon. I'm on the hacker server. And otherwise my website is Charlie jar.dev. And I usually, every time that I build something that I'm, proud enough to share, , I put it on there, Uh, otherwise I'm on GitHub, Charlie Jar as well.

Colin

Amazing. Yeah. Thanks for joining us this week and thanks to everyone for listening to Build and Learn.

CJ

Yeah. Thanks Aton. Really appreciate your time and attention. Thanks again, Charlie, for joining us. Appreciate it. We'll see you next time.

Colin

Bye France.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android