« All Episodes

Part Two: Interview with Rachel Smith

Published 3/9/2016

In today's episode, I talk with Rachel Smith, a JavaScript developer currently working at CodePen!

Mentioned or relevant to today's episode:

Today's episode is sponsored by Digital Ocean! Use the code DeveloperTea at checkout to get one month of a 1GB droplet, completely free!

And lastly...

Please take a moment and subscribe and review the show! Click here to review Developer Tea in iTunes.

Transcript (Generated by OpenAI Whisper)
Hey, everyone, welcome to Developer Tea. My name is Jonathan Cutrell, and in today's episode, we continue the interview with Rachel Smith. Rachel is a JavaScript developer. She works on both the front end and back end at CodePen. If you don't use CodePen yet, you will probably enjoy using it, especially if you're a front end web developer. Go and check out CodePen. Of course, the link to CodePen will be in the show notes. In today's episode, we talk about Rachel's, her future development career and what she's looking forward to learning in the next year or so. Thank you to today's sponsor, Digital Ocean. If you are looking for a cloud SSD hosting solution, Digital Ocean may be the perfect option for you. You can get a server up and running in just a few clicks. We will talk more about what Digital Ocean has to offer to developer to listeners later on in today's episode. First, I want to go ahead and get started with the second part of the interview with Rachel Smith. Now during this second part of the interview, I want you to go and send a tweet to Rachel and thank her for coming on Developer Tea. Her Twitter name is Rach Smith Tweets. That's RACH SMITH, T-W-E-E-T-S. That username can be found in the show notes at spec.fm. Go and tweet out there and tell her thank you for coming on the show and spending some time just talking about what she does. Now let's jump straight in to the second part of the interview with Rachel Smith. I've seen this tone with the work that you do that's basically kind of saying, okay, for example, WebGL. WebGL is kind of confusing and scary for a younger developer. But you make these pins that show examples that are practical and that's really interesting. You're doing a series on physics. What kind of learning are you doing with, for example, physics that makes you interested in bringing that down a level away from the scary, like crazy complex stuff, like shaders and all that. Why are you, I guess, motivated to bring that to developers who don't currently understand that language? That motivation comes for me from my background in advertising. And the advertising, digital advertising industry in general is very closed source. And it's filled with these wonderful, just brilliant programming geniuses with all these like amazing insights into motion and coding and physics and all this stuff. Because of the nature of the industry and this is not the developers fault themselves, you know, you always have the pressure to make something that nobody's ever seen before and it's very competitive. And there's a lot of copying and that sort of thing that gets done. So it's not really a practical thing to go and share all your knowledge with all of your competitors in that industry. And that's why they sort of keep their cards close to their chest. And the problem with that I see is that it's very male dominated industry. And personally I haven't met any other women developers in that sort of field and doing stuff with WebGL or like, you know, hardcore physics animation. And they do exist that are out there. I'm not like discounting anyone who's doing it. But the number is so low and I've met tons of guys who do this. And I just feel like a lot of people sort of work on this sort of thing and then come out the other end and share this like in same thing that spent like six months on. And it's stunning and beautiful and amazing. But beginners or people who, you know, aren't exposed to the same background as these people or the same opportunities, they just look at that stuff and they go, I'd never be able to do that. It's too hard. Yeah. And I just want to take the knowledge that I've, you know, gathered along the way and try and just make it this thing where it's like, it's not scary. You just, you know, there's just no one explaining to you that it's a, it's a step by step process and it's true. You know, people don't just come into this and come out like geniuses, but you only see the finished product a lot of the time. There's no sharing of the process along the way. You know, there are people sharing, but it's just no any other level of people sharing in like CSS HTML. I want to call it regular development. I don't know if that's the right word. Sure. Yeah. You're sort of more mainstream development practices. Mm-hmm. So much sharing goes on there. And then this sort of is creative field, like, of, you know, 3D and advanced, advanced animation techniques as JavaScript is less so. Uh-huh. So that's just why I write those sorts of things because I just want, I want everyone to be able to do this. I want them to come join us and make fun cool things. Yeah. For sure. Well, and it's interesting because I think, you know, the people who are leading in the industry, so many people who lead in any industry really, it doesn't, not just development, but, uh, pretty much any industry. A large percentage of people end up seeding back into the community by teaching, right? So this is like a really common pattern, the people who are, uh, the most, I don't know, academically sound in any given area, a lot of times they end up either becoming like adjunct professors in the more traditional world or doing things like what you're doing, Rachel, where you, you take something that's pretty complex and you break it down into less complex ways of understanding. And it doesn't mean that you're dumbing it down. It means that you're explaining it. So Edison said, um, I believe his quote was that if you can't explain something simply, then you don't know it yet, right? It's something along those lines. Mm-hmm. And so there's a part of teaching where you're actually learning, right? So you, for example, are learning probably a ton about WebGL by going through, like, you aren't this, you don't have all of this WebGL knowledge that you've just locked away and suddenly you've decided to share it. Like this is a common misperception of people like you, Rachel, and even people like me on a podcast. I mean, just because I'm standing behind a mic, like I don't have, I'm not a sage. I don't, I don't have all of this knowledge that you don't have. And you don't have all of this WebGL knowledge locked away. You're learning as you go and the people who are learning are typically really good at teaching the stuff they just now learned. Yeah. I often say to people like, people try, you know, people try and say, oh, they'll email me and they'll say, oh, I don't think I'll ever be able to make the things you make. Or you, you must be super intelligent or like so much smarter than me. Or, you know, like, just sort of trying to make out like I'm sort of some sort of special human being. But I'm not, I'm not really because I'm privileged in the sense that I have been given a whole lifetime of an opportunity to learn. Sure. And I've just been learning for so long now that I'm not scared of it anymore. And I, you know, if I want to learn something new, I just do it. Like I just start doing it. You know, it's not easy to get to that point. Takes a lot of time and practice. But I've been afforded the time to do this with my life. So that's the only difference between, you know, me and someone getting started out. It's not like I'm more intelligent or more capable. It's just I've just had more time learning and the more, the more learning you do, you just learn to learn and it becomes, you know, an easier experience to tackle new things. That's a theme of the show. People know who listen to the show know that I've said over and over and over learn to learn. This is like the multiplier mindset, right? If I have, you know, let's say five days and I can learn at a particular rate over those five days, well, if I can learn how to learn twice as fast in day one, then days two through five, four days left, I can learn as much as I would have learned in eight days, right? Like in other words, invest in your understanding and your fundamental kind of learning patterns. And that's not an easy thing to figure out. Learning itself takes practice. In other words, you need to constantly challenge yourself to be able to practice learning. You can't just practice one craft over and over and over. You also need to practice that, you know, adjusting, adjusting to something brand new. Yeah, learning to learn is a fundamental skill, especially for developers. Again, you know, I talked about this, I think, on episode three or four of the show that one of the fundamental skills of being a developer is learning to learn because we have new things coming out all the time. But you have something to say about this, actually. You said focus on, if you're a JavaScript developer, focus less on learning any one framework, right? It's good to learn the frameworks, but focus more on learning vanilla JavaScript. Can you kind of walk out your reasoning for that? I just feel like if you invest time into learning vanilla JavaScript, it doesn't matter that the frameworks, the front-end frameworks, we're all supposed to be using, keep changing. Because if you understand the language, then, you know, you'll be able to much, like, in a much quicker fashion, pick up the new framework. I sort of came onto this idea through my own experience when I, after my first couple of years working with JavaScript, I'd always use jQuery for everything. And it was quite good at selecting and modifying DOM with jQuery, but I didn't really know JavaScript. And I was living in, I'd moved to London and I was looking for jobs and I was just losing out on these jobs, like, because I didn't know JavaScript, you know, they were like, oh, jQuery isn't enough, you know, like you need to know JavaScript. And I was like, okay, well, if I'm going to be, if I want to be horrible, I'm just going to have to do this. I'm just going to have to learn vanilla JavaScript. And it is one of the most, you know, positive things I could have done for my career is to take the time to learn vanilla JavaScript. So then say, if you're a new developer and you want to get started working with single page apps and you choose to use a framework like React, that is totally fine. Like, frameworks help you get things done really quickly and, you know, you'll see progress in the app you're building. And that's awesome. I'm not saying like, don't use that and build it from scratch in JavaScript because that's insane. But don't invest all of your learning time into being able to build something in React. Like, you need to take the time to understand how the React code works under the hood and just keep trying to build small things in vanilla JavaScript. Just so you can understand how it works. You know, that means when you're looking for a job and they don't use, you know, the framework you're familiar with and they use another one, that's okay because you don't even, you know, you can look at that framework and you can understand what they're doing with the code. You don't even have to rely on documentation or, you know, that sort of thing. If you, if you understand JavaScript, it's, it just opens up the world to you in terms of opportunities. Yeah, I totally agree with that. I'm reading through, you don't know JavaScript right now. And I've been doing this for a while and there's a lot that I didn't realize that I didn't know. I mean, it's, it's amazing. If you have not read something like, you don't know JavaScript, something that teaches what prototype inheritance or not really inheritance, but behavior delegation is. And if you think that you can do classes in JavaScript, for example, it's worth going and reading. Even though ES6 introduces the class syntax, read through something that goes against that because JavaScript was not initially designed to be viewed in the light of traditional object oriented programming. And just knowing that alone has changed my mindset on the way I developed. And this is applicable to pretty much all languages, right? If you understand, for example, if you're, if you're a Rails or a Ruby developer or a Ruby, you should really, truly understand what method missing does. If you are an HTML front end developer, like we've already been talking about, you should understand what doct, like what different doctypes are and what they do. Even though you may not practically need that information to do your job, that underlying kind of structural information, when you see it, it changes the way you read code. And therefore, it changes the way you write code. Yep, definitely. And I feel like there's a bit of a steep learning curve with JavaScript, where it sort of feels like you're struggling. And you're not. Definitely. Getting a big thing. And for the longest time, and at least for me, it was sort of this thing suddenly where it clicked in my head and it started clicking even more. And then it was like, I could speak French all of a sudden, whereas a month ago, I couldn't know it. And it finally happened to me. And then after that point, it gets a lot easier. But there's just that initial learning curve humped together with JavaScript. So like I totally sympathize with people who struggle with it, because my experience was like that as well. Yeah. And I mean, JavaScript is slightly different from other languages. Well, I would say in some ways it's drastically different. But it's different from other languages in that you can approach the design of a JavaScript program from many different perspectives. Right? So you don't necessarily have to subscribe to one type of coding. Whereas if you're writing Ruby, there's basically only two ways of doing it. You write a class-based thing, right? And you either, you followed that paradigm and you implement best practices in object-oriented programming. Or you write a script that you just run and it does the things procedurally that it would normally do. And there's not really like a bunch of other flexibility in Ruby. Whereas with JavaScript, you can approach it from the functional paradigm. You can approach it from the object-oriented paradigm. You can approach it from the prototype paradigm from the procedural paradigm. I mean, it's such a flexible syntax. And there's so many features that you complex in JavaScript that it, I mean, it totally changes the way you write your code. And you can have two libraries that do essentially the same thing, but they're written entirely differently. Yeah. I think the tricky thing about learning JavaScript, especially in the front end too, is you mix in JavaScript with the DOM API. And that adds like a whole other layer of complexity for people starting out. Because it's like it may not even be your JavaScript that's the problem. It might be the browser and the DOM API and not behaving how you expect. Absolutely. But you're not there yet where you can differentiate that. You just see the JavaScript is not working and it's very frustrating. So. And it's also on top of that, going away from the browser to node, for example, if you aren't aware that, for example, document, the top level variable document is not available in node because there's not a document, right? You know, for example, I tried to parse a HTML when I first started with node a long, long time ago. And I was so frustrated because I couldn't figure out why isn't this JavaScript parsing this HTML properly. And I realized, wait a second, there's nothing in JavaScript that definitely ties it to HTML. So I have to bring in a library to do that. Or a code package. And so that's how I found Cheerio, which is considered the J query for a J query replacement rather for node. But that was such a kind of a mind-binder for me because I hadn't really learned formalized my understanding of JavaScript. And like where JavaScript begins and the browser picks up. And then you start to get a new environment ends because it's sort of, you know, you're googling things on JavaScript and you're in Stack Overflow and they're like, oh, just use this location. Yeah, exactly. Whatever. You know, like geolocation thing, cool. And that's a feature of the browser, but you're accessing it with JavaScript. So it's very confusing if you then try and go into a node environment or something and things aren't working. And even more so every day because obviously browsers are continuing to add features adding APIs. And on top of it, if you're in the console, there's like a whole console API layer that isn't necessarily going to be available in node, for example. Now before we talk about what Rachel has on her learning horizon, I want to go ahead and tell you about today's sponsor, Digital Ocean. Digital Ocean is a cloud hosting provider. And I'm intentionally not putting the ad read in front of me because I just want to tell you how great of a platform digital ocean is. And just a few clicks, you can get a droplet up and running with pretty much any kind of open source platform you want to use. If you want to put a Docker container up, you can do that in a few clicks. If you want to run a lamp server, you can do that in a few clicks. And right after the server spins up, you can SSHN as root. And it's in this super fast network on the internal storage. It's all SSD. And the control panel that you use to manage these different droplets is so easy to use. And it's incredibly easy for teams to use. Not only that, but they have floating IPs to help your application scale. They have an API that you can automatically scale your application with. There's so many things that Digital Ocean provides. So I recommend you go and check it out, especially if you're in the market for an SSD server. Now, there's no minimum fee to use Digital Ocean and there's no minimum spend. And you only pay for the minutes and seconds that you use on those different droplets. So you could spin up, let's say, the most powerful server on Digital Ocean and use it for an hour just to do a single task and then take it back down and you're only going to be charged for that hour, a really nice billing feature that Digital Ocean provides to its users. Now if that hasn't convinced you yet, this next part hopefully will. Digital Ocean is providing you with a month on a one gigabyte droplet for free, simply for being a listener of Developer Tea. All you have to do is use the code Developer Teaat checkout. Of course, that code can be found at spec.fm. Thank you so much to Digital Ocean for sponsoring Developer Tea. Well, that's a really interesting discussion on JavaScript. I want to know kind of what you are planning to learn. Like what is on the horizon for you in the learning department? I know you're working on some WebGL stuff. What else are you kind of looking forward to in the next year or so? Well, yes, my current thing is to tackle WebGL. And I think my end goal in this is to work on some VR stuff because that excites me a lot the potential for VR in the web. And I wouldn't say I'd go diving into it now, but I want to be prepared. So this sort of this WebGL stuff is sort of a stepping stone towards that. Definitely. I'm really looking forward to what CodePen does with the WebGL, all of the new WebGL things that are coming out. I think it'll be really cool to like, I don't know, I'm not sure how that plays out in reality, but it's funny. There's a bit of a disconnect between my interests and this job in the way that my last job, I actually would, it's funny. I would build WebGL things in my last job that was part of the job, but it was often, because I was so busy working, would never really learn it properly. I'd just sort of be like, I'll take this thing that Michael did in the last project and like change some stuff and it works. I never really took the time to understand WebGL and that job was sort of worked different hours. So worked a lot later and there was less sort of free time to explore those things. And this job with CodePen is my job during the day is to make usable interfaces for users that they can actually use. It's not crazy animation stuff, but I do have a better work life balance now and that I can, I've got a lot more time to spend on my side loves. And I think this is a great way to have it. My work is work and I still love my work, but it's my side projects is sort of in a totally different area. It's great because my last job, you know, I could be working on that sort of thing all day and then come home and the last thing I'd want to do is start coding more of that stuff for my own purpose. But now I'll write CSS and sort of very functional JavaScript all day dealing with daughter and you know, four elements and that sort of thing. And then I'll be like, right, now I can do, you know, now it's me time and I can do this, you know, 3D stuff or just, you know, silly canvas. You use the features you just built. Yeah, exactly. And work on the side of a staring at all day. And make some fun stuff. And that's kind of really nice that it's nice to have that separation. Yeah. And so the question is, is there an unspoken rule about the number of pens that each employee at CodePen is supposed to put out each given like week or something? Oh no, there's no quite off. I mean, so Tim and Tim home and Jake, Elbow and I are like, we're kind of fanatic users. So we'll offer just like make out pens in our spare time because we're just nuts about the product. But you know, you've got people like Tim Sabot who he's a backend guy. He's not making, you know, pens. There's no requirement to make pens. It's just, it's just, you know, it's, we just enjoy it. So we do it. Well, that's great. I, you know, I think the world appreciates the work that is going on at CodePen and I know I certainly do and most of the people who listen to the show certainly do. So thank you for making a great product. Thank you for using the product. It's really is, you know, the most, the definition of a dream job. I love the product and I love the people who use it. So it's fantastic. That's great. So I like to ask everyone who comes on the show two questions. The first question is if you could spend 30 seconds with every developer, what advice would you give them? I would probably say that my advice would be that this is for you. Sometimes like speaking from experience, development, if you're not like someone who fits the sort of standard expected type of person to do development, you can feel a little bit like you're not supposed to be here, but I would like to say to everyone who's interested in being a developer or is trying to be a developer that you belong here and you should be doing this if that's what you want. And it's going to, you run into roadblocks, but please don't be discouraged because you're meant to be here. That's great advice. I think if there is any, if there is any profession that is democratized to the point where just about anybody can hopefully it's getting to the point where just about anybody can approach it. The only restriction being you obviously probably need access to a computer on a regular basis. Yeah, this is an open field. There is no, and the community of people who are involved in it are actively trying to reduce the elitism that is left over. Because admittedly, this field has had a lot of academically elite people who have kind of built it from the ground up. So naturally that can cause a little bit of separation and especially some imposter syndrome for people who wouldn't consider themselves in that academic elite. But this again, it's about practice. It's about sitting down at a computer, which again, pretty much everyone has access to a computer and it's getting better and better. We're lowering the cost of computing for people who don't have access. That's an important endeavor. But you can pretty much sit down in a computer and there's not going to be somebody looking over your shoulder deciding whether or not you're allowed to continue. It is an open field in that anybody is allowed to do this. There's a lot of value still left to be created in this field. Tons of value that has yet to be tapped. Yeah, I'm really excited to see what we can achieve when all of we get all these fabulous newcomers and people who traditionally wouldn't have pursuit of career and development. Just more diversity and more exciting opinions. It couldn't happen soon enough for me. I'm very excited. I am too. As a person who's been in the field long enough, I'm starting to see more and more diverse population getting involved and that's super exciting. So the second question that I like to ask every guest is what topic do you wish more people would ask you about? I would probably say that this is really personal and not related to being in. That's fun. But I wish I had more girlfriends to talk about makeup and stuff. I live in LA now. I really catered here two years ago and I don't have a whole lot of friends in town and most of them are male through the nature of my work and the people I run into. I don't know. I used to have a really strong group of girlfriends back in Australia. I miss that kind of girl talk stuff. So that's the one thing in my days. I'm like, I'm going like days, just hanging around guys and never discussing this sort of thing. It's such an important topic. You say it's not related to coding necessarily. I think it is actually, you mentioned it earlier, that this is definitely a male, I mean, even though there have been great strides, this is still a male dominated industry and not even like all types of male. Like there's a specific type of male and I happen to fit that demographic. And so it is really important to be both self-aware but also aware of the industry that that's probably not a good thing. In simple terms, I can't say definitively what is good and bad because I'm not on the other side of history but diversity typically works out to be a positive thing whenever we can find it. Yeah, definitely. And for reasons exactly what you just outlined, you crave more relationships with other girls. Yeah, you have just common interests and girl stuff. It's just one of the side effects of being in the minority. If you have a message for girls, especially younger girls who are trying to decide on a career path and they've considered computing or they've considered design, web design, web development, what is that message for those young girls or those people who are considering jumping into this still male dominated industry? I guess I would say that do it, if this is what you want, do it. It's incredibly empowering being in this industry and having development skills like nothing else and you are guaranteed to run into some situations where you're going to feel like you're alone or it's too hard. I've definitely been there and I would just say that please keep going if it's not too much. My personal experience is that once I expanded my network, it took time but once I expanded my online network and I made lots of lady friends online, it got a whole lot better. It can and will get better. It's just tough when you're starting out because you don't have those connections but you can find them and we are out there. If any young girls ever want to reach out to me for advice, please do because I get us through advice all the time and it's almost 100% guys. So, girls please email me or get my get-how-ve email or something. So, Rachel, how can people find you online? They can find me on Twitter. It's my probably most used social network. I'm pretty chattier over there. That is Rachel Smith-Tweets. My Twitter username, my website is ragesmith.com. My code pen profile is probably where I'm also most active rather than my own personal website and that is code pen.os-rach-smith. Perfect. All of those links will definitely be in the show notes. Cool. Thank you so much, Rachel, for coming on the show and talking about all of the cool stuff you're doing at Code Pen. Thank you so much for having me. It's been great. Thank you for listening to this episode of Developer Tee if you missed out on the first part of the interview with Rachel. You can find it in the show notes at spec.fm. Of course, every episode of Developer Tee is always available on iTunes as well as spec.fm. Thank you so much for listening and thank you to today's sponsor, Digital Ocean. If you're looking for a cloud SSD host option, Digital Ocean is one of the most intuitive on the market. Don't check it out, digitalocean.com. Don't forget the special code, Developer Tee, all one word that will give you an entire month for free on a one gigabyte droplet. Thank you so much again to Digital Ocean. And thank you for listening to Developer Tee. If you've enjoyed this interview and if you enjoyed the show in general, I ask that you go and leave a review and let other developers know. This is the best way to help other developers find the show and this actually helps the show go on. This is the best way to help Developer Tee continue existing. So thank you so much for listening to the show and for leaving a review. And until next time, enjoy your tea.