Sophie alpert

Sophie Alpert

Engineering Manager Humu

Sophie Alpert is an engineering manager at Humu. Previously, she worked at Facebook as the engineering manager for React, an open-source library used by millions of developers. She’s an expert at fixing software systems and really enjoys good food.

Transcript

Printer Friendly Version

[00:00:00] SY: Hey, CodeNewbies! Before we start the show, I want to share a little teaser with you of another show I work on called DevNews. 

[AD]

[00:00:12] SY: Hi there. I’m Saron Yitbarek, founder of CodeNewbie, and I’m here with my two cohosts, Senior Engineers at Dev, Josh Puetz.

[00:00:19] JP: Hello.

[00:00:20] SY: And Vaidehi Joshi.

[00:00:21] VJ: Hi everyone.

[00:00:21] SY: We’re bringing you DevNews. The news show for developers by developers.

[00:00:26] JP: Each season, we’ll cover the latest in the world with tech and speak with diverse guests from a variety of backgrounds to dig deeper into meaty topics, like security.

[00:00:33] WOMAN: Actually, no. I don’t want Google to have this information. Why should they have information on me or my friends or family members, right? That information could be confidential.

[00:00:42] VJ: Or the pros and cons of outsourcing your site’s authentication.

[00:00:45] BH: Really, we need to offer a lot of solutions that users expect while hopefully simplifying the mental models.

[00:00:53] SY: Or the latest bug and hacks.

[00:00:55] VJ: So if listening to us nerd out about the tech news that’s blowing up our Slack channels sounds up your alley, check us out.

[00:01:01] JP: Find us wherever you get your podcasts.

[00:01:03] SY: Please rate and subscribe. Hope you enjoy the show.

[AD END]

[00:01:18] SY: Welcome to the CodeNewbie Podcast where we talk to people on their coding journey in hopes of helping you on yours. I’m your host, Saron, and today, we’re talking about React with Sophie Alpert, Engineering Manager at Humu, Former Manager of the React Core Team at Facebook.

[00:01:34] SA: With React, my goal also wasn’t to get involved in open source. It was just here’s a tool that I’m using and it works pretty well for me, but I want to make it better.

[00:01:46] SY: Sophie talks about the decision to drop out of college to work full time at Khan Academy, what her favorite things about React are, and going from the top open source contributor to React to then building it on the core team after this.

[AD]

[00:02:07] SY: TwilioQuest is a desktop roleplaying game for Mac, Windows, and Linux to teach you real world developer skills. Take up the tool of software development, become an operator, save the cloud. Download and play TwilioQuest for free at twilio.com/quest.

[00:02:24] Heroku is a platform that enables developers to build, run, and operate applications entirely in the cloud. It streamlines development, allowing you to focus on your code, not your infrastructure. Also, you’re not locked into the service. So why not start building your apps today with Heroku?

[00:02:42] Cloudinary is an end-to-end image and video management solution with a powerful API that lets developers upload, store, create, optimize, and deliver your media with ease. They have a generous free plan as well as advanced plans with enterprise configurations. So check out Cloudinary today at cloudinary.com.

[00:03:02] MongoDB is an intuitive, flexible document database that lets you get to building and MongoDB Atlas is the best way to use MongoDB. It’s a cloud global database service that gives you all of the developer productivity of MongoDB, plus the added simplicity of a fully managed database service. You can get started free with MongoDB Atlas at mongodb.com/atlas.

[AD END]

[00:03:32] SY: Thank you so much for being here.

[00:03:33] SA: Thank you. It’s great to be here.

[00:03:35] SY: So it’s been a while since we’ve done an episode on React and I feel so lucky to have a former manager of the React Core Team on our show. Can you tell me a little bit about how you got into coding?

[00:03:47] SA: I think I was lucky growing up and actually both of my parents know how to code. And so I had a little bit of that influence around me. That said, from a very young age, I was way more into computers than either of them were and was just fascinated by computers. I used to read computer manuals for entertainment, which I guess is a little unusual.

[00:04:15] SY: Good for you.

[00:04:16] SA: Yeah.

[00:04:16] SY: Reading useful stuff.

[00:04:17] SA: I mean, when you’re a kid, you have a lot of free time. Right? And so I did that to entertain myself and would just like read page by page about like all the settings that Windows 95 had or whatever it was.

[00:04:29] SY: Did you end up being the kid that repaired everyone else’s computers?

[00:04:32] SA: Oh, yeah, definitely. At least on the software side. I never really got into computer hardware. But yeah, I was fascinated by it, like reinstalling an operating system just sounded like a fun thing to me.

[00:04:48] SY: Good for you.

[00:04:48] SA: So I ended up doing a fair amount of that, but got into a little bit of coding. I don’t remember what my impetus was. I mean, I think it was, again, just that I was interested in computers. I started making websites in Dreamweaver just for myself with really garish designs, like red Times New Roman text on a black background with like dash borders and just like, “This is Sophie’s Fan Homepage.” But I started to develop more complex things over time. While I was in middle school and high school, I started coding more and more, both for fun and then these little projects for friends, and I had actually a couple freelance clients that I managed to find. But then as I was trying to figure out what to do the summer before I started college, I saw a job listing on Hacker News actually from Khan Academy, a tech, nonprofit startup that does online education. And it sounded like something that was really interesting to me. And so I emailed the person who made the post who was the lead developer at Khan Academy at the time. And I emailed him and I said, “I figure you’re looking for college students, but I am smart and I know how to code. So maybe you want to hire me.”

[00:06:17] SY: Good for you.

[00:06:18] SA: And said, “Sure, we’ll interview you.” And I ended up interviewing, ended up getting the job.

[00:06:24] SY: Wow! Good for you.

[00:06:26] SA: Thank you. And so I moved out to California for that internship in Mountain View. Funny thing is it’s actually the building that I worked in that summer is literally next door to my current office at Humu.

[00:06:45] SY: Oh, cool!

[00:06:46] SA: But I moved out to Mountain View for the summer and lived out here where I am now and had a great time that summer building software. I learned a lot.

[00:06:57] SY: Where did you move from?

[00:06:58] SA: I grew up in Colorado.

[00:07:00] SY: What kinds of things did you end up building or working on at Khan Academy during your internship?

[00:07:05] SA: So I worked a lot on these interactive math questions that Khan Academy offers where a lot of people know the videos on the site, but I worked more on the actual math exercises where you can try to check your understanding. And there are some that are simpler and are just like free response questions, but then we also had more interactive types of questions as well, where it’ll say like, “Oh, please plot these points.” And then you need to drag them around on a graph and then it’ll check whether they’re right. And so I worked on both building some of those questions as well as building some of the frameworks that the whole system was running on.

[00:07:49] SY: So after high school, what did you do?

[00:07:51] SA: I did go to college. I went to Carnegie Mellon for computer science and took a bunch of classes there. My freshman year ended up going back to Khan Academy for a second internship and then went back to school for my sophomore year. But after about a month, I said to myself, “I’m not really feeling this. I don’t feel like I’m learning a lot. I don’t feel like I’m really enjoying myself at school.” And so I decided to actually drop out and go work for Khan Academy full time.

[00:08:28] SY: Wow!

[00:08:28] SA: I emailed my boss and said, “Hey! Is there any chance you would take me back full time?” And they came back with a yes. They were like, “We want to make sure this is the right thing for you, but if it’s what you want to do, then we’d be happy to have you.”

[00:08:46] SY: Was that a big decision for you? Because I’m thinking back to my own college experience and I didn’t even know you could drop out as like a life option. You know what I mean? Like that was something that you just did, you just got through it. It didn’t really matter if you liked it or not. It’s just something that you just had to do. So I’m wondering what was that decision like for you emotionally?

[00:09:04] SA: It’s interesting because I think that my perception of college was pretty similar to yours where I figured this is just what I’m supposed to do next and it’s not really something that I am supposed to decide to do or decide not to do. It’s just the next step after high school, I do college and then I graduate and then I guess after that probably get a job. But I really just was not that happy at school. I had also done some part-time work during the year and just felt like whenever I was doing that, I was a lot happier because I found that the problems were more interesting. It felt more useful. One problem that I had with school is I felt like I would spend hours working on these assignments that a TA would look at for five minutes and then no one would ever look at it again. I sort of felt like what’s the point of even spending the time on that, and now of course, the point is that I would learn and get better, but I didn’t feel like I was making a lot of time progress there. And so I don’t know what gave me the idea, but I definitely felt like it was an option once I started considering it.

[00:10:27] SY: How did the internship and the things you learned, the problems you were exposed to, how did that compare to what you were learning in the classroom?

[00:10:37] SA: I think that it was pretty disjoint in a lot of ways. A computer science education tends to focus a lot more on the theoretical backing of these CS concepts, whereas my internship was a lot more focused on actually building software with a team, and it tends to be pretty different skills and that in and of itself is not a problem. I think there are a lot of great things you can learn from a CS education, but I had actually also done a lot of math competitions when I was in middle and high school. And that actually tends to overlap a lot with the discrete math knowledge you need for computer science. And I felt like I was ahead of a lot of the curriculum for those classes and wasn’t learning a ton there either relative to what I knew and it also was just different from what I was learning on an actual job. And I felt like I would be learning more if I went and started working full time instead.

[00:11:53] SY: So it sounds like this internship was huge to your career. I think that you probably signed up for it or emailed about it in your high school years as something that you kind of hoped you would get and ended up turning into a full time job, which is incredible. Do you have any advice on how folks listening might be able to land an internship like that?

[00:12:14] SA: It’s hard to give any specific instructions for here’s how you got an internship or here’s how you got a job, but I can say as somebody who’s been a hiring manager at this point, I can say that one thing that I always really like to see in an application is interesting side projects from just things that you built that weren’t for school, weren’t for a class project, or weren’t for a bootcamp specifically, but were just something that you wanted to build and were a little more unstructured and you have to figure it out yourself more. Those projects tend to be evidence of somebody’s skill. And so that’s one thing that I always really love to see. Other than that, I think just practicing coding and building things, the more you’ve done, the easier it is to get a job, both from the side of like technical interviews. You’re more likely to do well in them, but also just understanding more about how everything works is going to be something that people are looking for.

[00:13:29] SY: And I know you mentioned that you were competing in math competitions and stuff when you were younger. Tell me a little bit more about the role of math. I think there’s this assumption that if you’re good at math, you’re going to be a good programmer. Have you seen that connection happen in your life and your world?

[00:13:43] SA: I think there’s some truth to it. However, I think that it’s really easy to get misled by that claim. And the reason is that math, as it’s typically taught in school, is to be quite honest not a very interesting subject. It typically involves a lot of memorization, a lot of pattern matching, a lot of like, “Oh, if you see a problem that looks like this, then you follow these steps.” And then like, “Here’s the output.” And I think it’s really easy to go through math and school has just a series of steps that you need to follow without a lot of actual thinking. And with these math competitions, I did some of them were that where you have to memorize these facts. You need to be really quick at arithmetic for some of them, but they also tended to have harder problems where you actually need to think more about them to figure out what the correct strategy for solving it is and you need to be a little more creative and that’s really similar to some of the skills that I think you end up using for building software where you need to think about a problem, you need to figure out how is it similar to existing problems I’ve seen, how is it different, how can I sort of break it down into pieces, and then figure out how to solve those and then sort of put it back together into something that makes sense as a whole.

[00:15:23] SY: So now you are currently at Humu as an engineering manager. What is Humu? And what’s your role like there?

[00:15:29] SA: So Humu is a startup. We’re about 50 people right now. And what we’re trying to do is build a product that helps companies build better work environments, in particular work environments that are more inclusive and that care about the people working in them and try to make people’s jobs better in that way. And so were sort of in the HR tech space, but sort of the tagline is, “Humu can make your company better by nudging your people to the right behaviors that they want to embody to be sort of the best versions of themselves.” And the idea is that these are really little reminders for small tasks you can do to say like foster welcoming work environment where if you go around to any manager and ask them, “Oh, what are the things you should be doing to foster an inclusive environment?” Then they’re going to be able to list off like at least 10 things that they should be doing on a regular basis. But then if you ask them, if they’re actually doing those things, then the answer is often no because it’s hard to just remember to do those every day and to build those habits. So at Humu, what we do is every nudge that we send is one small, actionable thing that you can do. That’s like the next time you’re in a meeting, watch out for who usually doesn’t talk as much and make sure that their voice is heard. Then if you just do that one thing and if other people in your organization also do the small changes that they’re being nudged on, that adds up to a meaningful change. One thing that I’ve spent a lot of time on is figuring out how to empower other people at the company to do their work better, often by building tools that save them time and make their work better. For example, our partner experience team works a lot with our individual customers, trying to make sure they have a great experience using Humu. And that is something that requires a fair amount of manual work to try to make sure that everything’s going well. And so one of the things that we’ve been working on is how can we automate more of that so that they can spend more time on the more creative parts of their job.

[MUSIC BREAK]

[AD]

[00:18:47] SY: Explore the Mysteries of the Pythonic Temple, the OSS ElePHPant, and The Flame of Open Source all while learning the tools of software development with TwilioQuest. Become an operator, save the cloud. Download and play TwilioQuest for free at twilio.com/quest.

[00:19:04] No one wants to manage databases if they can avoid it. That’s why MongoDB made MongoDB Atlas, a global cloud database service that runs on AWS, GCP, and Azure. You can deploy a fully managed MongoDB database in minutes with just a few clicks or API calls. MongoDB Atlas automates deployment, updates, scaling, and more so that you can focus on your application instead of taking care of your database. You can get started free at mongodb.com/atlas. If you’re already managing a MongoDB deployment, Atlas has a live migration service, so you can migrate it easily and with minimal downtime then get back to what matters. Stop managing your database and start using MongoDB Atlas.

[AD END]

[00:19:56] SY: So before we dig into your role at Facebook on the React Core Team, I want to talk about just React itself. Can you describe React for me? If I never heard of the word, the term before, how would you describe it?

[00:20:09] SA: My simple one sentence description is usually React is a tool for programmers that helps you build user interfaces for interactive websites and apps. Taking a little bit more of a technical perspective on that, it’s a JavaScript library that you can include in a webpage that you’re building where it helps you manage the different things that you’re trying to render on screen.

[00:20:39] SY: How would you describe React in terms of the way I would engage with it? Paint me a picture of what it’s like to use it functionally, when compared to other libraries.

[00:20:50] SA: One of the big concepts we have in React is this idea of what you see on the screen being a function of your data. And when I say being a function of, I mean, that’s sort of in a theoretical mathematical sense, but really what I’m saying is just that given some set of data, we have a way to explain what that should look like on screen. And then the idea is that then if the data changes, then you sort of rerun that code that says what it should look like and then React will figure out what has changed and then update what’s on screen to match. One thing that is really important about React and one of the reasons that I started using it is it has this concept of components where you have different parts of your user interface. And the really nice thing about React, which nowadays most of the alternatives also have, is that you can build different parts of your site in isolation and then combine them together and feel confident that they’re not going to conflict with each other or overwrite each other, and that really helps with building maintainable applications when you get to a larger code base, especially with the larger team.

[00:22:19] SY: How do you get started with React? What’s the setup process look like?

[00:22:24] SA: It depends on what you’re trying to do, but one of the easiest ways to get started is if you have a web page, then you can add React to it by just adding a couple script tags to that page that pull in the React code. And then also, even if you’re just looking to try it even before you’re ready to build something big with it, then there are also links on the React site to tools where you can play with it just in your browser without even downloading anything or editing any files.

[00:23:03] SY: Oh, that’s great.

[00:23:04] SA: And so if you go to Reactjs.org, that’s the React website. The Getting Started documentation, there’s a good set of links there, I think, and there’s a tutorial where you build a simple Tic-Tac-Toe game. I actually wrote that tutorial.

[00:23:21] SY: Oh, cool!

[00:23:21] SA: And it tries to be an introduction into the basic concepts of React. You might look at that and say, “Oh, I’m not really trying to make a game and so I don’t know if that’s the tutorial I want to use.” And I’ll say that although it is a game, like the concepts are not at all specific to building a Tic-Tac-Toe game. That was an example that I thought most people would understand and be able to think of like how the behavior should work so that then you can focus on actually the code instead of defining what the application is.

[00:23:55] SY: So usually when we think of React, we think of some other options that we could use as well like Vue and Angular. What do you like about React compared to the other JavaScript libraries?

[00:24:06] SA: One thing that I like about React is that it lets you manipulate your user interfaces using any type of coding style that you want. And as one example of that, if you have a list of data in an application and you want to summarize it, say you’re not using React. There are a number of different ways you can do it. You can loop over it with a for loop. You can use the map method on an array. There’s a bunch of different things you can do. And with React, that’s the same where you can sort of use any of these standard programming concepts to manipulate your data in contrast to like Vue and Angular, which take sort of a different approach, which is to take the HTML and CSS as the core of your application and then add a little bit of JavaScript behavior on top in a very specific way. These are two different mental models for how people think about code and different people prefer different ways. One thing that I’ve found is that people who are coming from a programming background often prefer using React because it reuses a little more of the other mental models you might have from programming elsewhere. Whereas people who are coming from a background of building more webpages, especially static ones or mostly static ones tend to be more likely to prefer Vue or Angular as the model they have you think in is a little more similar to that.

[00:25:57] SY: Yeah, that makes sense.

[00:25:58] SA: That that said, I think that there’s a lot of people who prefer both for different reasons and there isn’t a single guideline I could give you for when you should choose one over the other.

[00:26:12] SY: So when were you first exposed to React?

[00:26:15] SA: It was in 2013. React had just been released as open source. So React was a project that was originally developed at Facebook for Facebook’s own use. The folks there looked at it and said, “It seems like this is a useful packet. It seems like it has some useful ideas. Maybe we can open source it and share it with other people so they can also use it.” And at this point, you may be aware that Facebook has a pretty big open source presence. There are a lot of open source projects that Facebook has. Some are more popular than others, but there’s quite a number of them and a lot of them are quite popular. But at the time this happened, React was really one of the first open source projects that they were doing and there wasn’t an open source team at Facebook focused on open source like there is now. But they figured out how to release React as open source. I remember seeing the announcement and at the time I was working at Khan Academy on this interactive editor for math questions and React seemed like a really natural fit for what I was building. And so I tried pulling it in to my code base. And for me, it worked really well. It was less code and easier to understand and it ran faster than what I had before.

[00:27:47] SY: Wow!

[00:27:48] SA: And so I thought this is a pretty good deal. And so I ended up using React, deployed it to production just two weeks after React was open source, I think, which makes me the first non-Facebook user of React and production, I think.

[00:28:05] SY: That’s so cool! Yeah.

[00:28:07] SA: From there, we started using it more at Khan Academy. The thing to understand is although React is incredibly popular now and has literally millions of people using it, at the time it was a much more immature project where it had a handful of bugs. It had these limitations for things it couldn’t do or things that were difficult to do in a certain way. And I ran into these as I was one of the early folks using it and I started talking with the folks on the React Core Team who were developing it and said like, “Oh, what do you think if we change React to be a little bit different this way? I was thinking about maybe this bug could be fixed in this way.” And they were really receptive and I started contributing to React. I started sending these pull requests to them, eventually got a little more involved and ended up going to some of their team meetings and spending a lot more time on React. It actually got to the point that I was I think the number one committer to the React project, despite not working at Facebook, and these other folks who literally worked on it full time as part of their job. The offer was always there from the team where they were like, “We know you’re happy at your job, but if you ever want to come work at Facebook on React full time, we’d be happy to have you.” And for a long time, I was like, “No, I’m happy for now.” But eventually I gave in and said, “Fine, I’ll interview. I’ll come over.” So then I joined Facebook and in 2015 to work full time on React.

[00:29:54] SY: What was the state of React at that point when you joined the core team?

[00:29:58] SA: I would say it was at the point where it was definitely getting popular. It was definitely not ubiquitous, but I think a lot of people recognize that it was this up and coming thing. I think most people in the front end development industry had at least heard of it, if not tried using it. So it was at the point that it was starting to catch on, definitely not like it is now where if you look at like job posts today for front end engineering positions, I would say it feels like over half of them at least are looking for React experience or if not looking for React experience are companies that use React.

[00:30:45] SY: Right. So when you joined the core team, did you join initially as the manager or is that something you worked your way towards?

[00:30:52] SA: No, that happened later. When I first joined, I was just another engineer on the project, but after working on the team for maybe two and a half years, ended up becoming the manager.

[00:31:07] SY: So what was the biggest difference between being an engineer on the team and being a manager of the core team?

[00:31:13] SA: One of the biggest differences is I felt like I had a lot more responsibility, not even in like a checkbox, like, “Here’s my list of things I have to do way.” But in that, I felt more personally responsible for the success of the project than of what we were working on where I was worried about like, “Oh, no. If I mess this up, then what’s going to happen? Is React going to fall apart because of me? I hope not.” And there was just that worry in the back of my mind a little bit, but the other difference that you may be able to guess is that I spent less time coding on the project after I became a manager, which is almost inevitable. I did actually spend a lot of time coding still. It’s something that I really enjoy. I was able to continue contributing that way, but it wasn’t the main thing that I was doing anymore.

[00:32:21] SY: Coming up next, Sophie talks about getting involved with open source and what makes someone successful at building infrastructure after this.

[MUSIC BREAK]

[AD]

[00:32:40] SY: Images and videos are the heaviest resources users have to download when they use your site or app. Achieving great experience with media was a complex and tedious task. But with Cloudinary, there’s a powerful API that employs sophisticated algorithms, machine learning, and automation to deliver great media experience on any device for any framework in web or a mobile app. At Dev.to, we’ve been impressed with Cloudinary serverless API platform and recommend it to developers as the one and only solution they can use to solve all their media problems.

[00:33:15] Over nine million apps have been created and ran on Heroku’s cloud service. It scales and grows with you from free apps to enterprise apps, supporting things at enterprise scale. It also manages over two million data stores and makes over 175 add-on services available. Not only that, it allows you to use the most popular open source languages to build web apps. And while you’re checking out their services, make sure to check out their podcast, Code[ish], that explores code, technology, tools, tips, and the life of the developer. Find it at heroku.com/podcast.

[AD END]

[00:33:54] SY: So I want to talk a little bit about how you started your journey in open source. Was React kind of your first or one of your first projects that you were contributing to?

[00:34:03] SA: It was definitely the first one that I seriously contributed to where by seriously, I mean, like sent more than five pull requests, too. To tell you the truth with React, my goal also wasn’t to get involved in open source. It was just here’s a tool that I’m using and it works pretty well for me, but I want to make it better. And how can I do that? And the “how can I do that”, the answer to that was, “Oh, by sending pull requests to the project on GitHub and working with the team working on it.” But I don’t think I ever said to myself, “Oh, I would like to get more into open source.”

[00:34:46] SY: I like that. It feels like a more, I don’t know, authentic, more genuine way of getting into open source, if we’re able to find a project and say, “We are really interested in making this better,” even if it’s for ourselves. We’re using the tool. We want to make it better for ourselves and make our lives easier and that’s why we’re contributing. I imagine the contributions or the engagement will last longer is my guess when you go at it from that perspective.

[00:35:12] SA: Yeah. I think that’s definitely true. It’s very similar to some advice that I often give people when people ask me like, “Oh, how do I learn React really well? Or how do I learn anything really well, whether that’s CSS or understanding how to debug things really effectively?” And my answer is usually the same, which is instead of starting with a particular concept you’re trying to learn, I really recommend starting with a project that you’re trying to do or some task you’re trying to finish where maybe developing that skill or knowing that concept is a step on the way to achieving that. But when you start with something that you’re actually trying to build, if you have some web app that you’re trying to build and you have that in mind, I think it really helps to make sense of what’s going on when you try to figure out, “Oh, when should I use this library? When should I pull this in?” Because you have a real world example in mind and then that’ll also give you the prompt to figure out when to pull in other things, because inevitably you’ll run into other issues on that project where you’re like, “Oh, I now have this other problem that I also need to solve in order to finish it.” And then when you go to try to follow that, you already have all of the context in your head, instead of trying to start from the thing that you’re trying to learn and say, “Oh, what’s a way that I can use this?”

[00:36:59] SY: What was your favorite thing that you worked on while building out React?

[00:37:02] SA: I mean, I think that crown has to go to this rewrite we did have of the entire React code base, and this is something that is not exciting from a user features perspective because almost all of the changes were internal. But what we did was in React Version 16, we actually rewrote basically the entirety of React without really changing any of the behavior. And the reason we did this was most of the original React code was set up in 2012 or 2013 when the project was first being developed. And the several years after that, as the React team, we had learned a lot about both the ways people are using React, as well as we had really crystallized our idea of where we wanted to take the project in the future and decided that in order to really make React future-proof and be able to develop the new features that we wanted to do without having them feel sort of bolted on and making sure that they were properly integrated with the rest of the code, we ended up deciding to rewrite the whole thing with a new architecture that was more forward thinking.

[00:38:35] SY: I think what’s really unique about your experience is that in building React, you’re really building infrastructure, right? You’re building out a tool for the rest of us to use and I think most of us are used to making websites, web apps, that sort of thing. So I’m wondering when you think about what makes someone successful at building infrastructure, what do you think of?

[00:38:55] SA: To a large extent, it’s exactly the same skills and I think it’s really easy to make it a bigger difference than it actually is and to say, “Oh, I don’t know how to do that. That stuff seems way harder.” Although I think there are some technical differences, I think the work can be a little more abstract. I think it’s also important to recognize that if you are used to working on building some products, then building infrastructure, it’s writing code in the same way. It’s not as totally different world and it is something that I think anybody can get into. On React itself, one of the biggest qualifications that we looked for, actually, for people who are interested in joining the team is experience using either React or some other similar frameworks but experience building complex front end applications, because having that experience gives you the knowledge to understand what are the pain points, what is hard and what can be made easier. And that’s always what we were trying to do on that team is make it easier to build high quality applications.

[00:40:24] SY: Now at the end of every episode, we ask our guests to fill in the blanks of some very important questions. Sophie, are you ready to fill in the blanks?

[00:40:31] SA: I am ready.

[00:40:33] SY: Number one, worst advice I’ve ever received is?

[00:40:36] SA: The worst advice goes back to when I was thinking about dropping out of college and going to work full time. I had several people who told me that dropping out of college was the wrong decision or it was terribly risky and I shouldn’t do it and I should think about my future. And although I think there are a lot of legitimate reasons to stay in college that I don’t want to say don’t matter, for me, it was absolutely the right choice to drop out and I’m glad that I did.

[00:41:08] SY: So no regrets?

[00:41:10] SA: No regrets.

[00:41:11] SY: Number two, best advice I’ve ever received is?

[00:41:15] SA: The best advice I think is in some ways along the same lines, which is sort of you have to find your own path towards how your career is set up and sort of what you want your role to be. One thing that I’ve always found about myself is I tend to work on a lot of different projects in my jobs instead of sticking to one thing or to one team. I also tend to like fixing things and like jumping into bug fixing. If the site’s down, I’m all over it and that’s one of my favorite moments, honestly. I enjoy the adrenaline from that. I think for a long time, I told myself that to get better as an engineer or to advance in my career I would need to work on these bigger projects and building these things from scratch because that is sort of the most common way that people advance. But that’s just not really how my brain works, I think, and not really what I enjoy. And so the best advice I ever got was there’s people telling me that I am able to sort of choose my own path and that it’s okay if the type of engineer that I am is different than most other people, then that’s totally fine. And I can still be a really valuable contributor to the teams that I’m on and there’s no reason that I have to be the same as everyone else.

[00:42:53] SY: Number three, my first coding project was about?

[00:42:56] SA: I think it was that website that I mentioned with the black background and the red text.

[00:43:01] SY: Sophie’s Homepage?

[00:43:02] SA: Sophie’s Homepage made in Macromedia Dreamweaver at the time, I guess.

[00:43:06] SY: Number four, one thing I wish I knew when I first started to code is?

[00:43:12] SA: Everything you see on your computer, all of the technology and all of the applications on your computer are built with code and I think that code is something that you can learn how to do. Whether you haven’t learned to code at all yet or if you have learned some but have only worked on a certain type of project, I think it’s really easy to look at those and say, “I don’t really know how that could be built and sort of not even have any conception of it.” And I know that what I did was in my head, I kind of filled in that it was just like magic. Like when you click on that thing, how does it know to do that? I was like, “I don’t know. I don’t have any idea how it does that.” And instead of filling it in like, “Oh, somebody must’ve just like written some if statements that are like if you click this, then like loop through this list of things and check whatever it is.” My brain just sort of filled in that it was magic. This goes back to your question of the different skill sets between product and infrastructure development. I think it’s really important to realize that anything you see on your computer is just code that somebody wrote and maybe it’s more complicated code than what you’re used to and maybe it uses some different systems, but it is something that you can also learn how to do and is within reach and it is all just code and none of it is magic.

[00:44:47] SY: Well, thank you so much again for joining us, Sophie.

[00:44:49] SA: Thank you so much.

[00:44:56] SY: This show is produced and mixed by Levi Sharpe. You can reach out to us on Twitter at CodeNewbies or send me an email, hello@codenewbie.org. Join us for our weekly Twitter chats. We’ve got our Wednesday chats at 9 P.M. Eastern Time and our weekly coding check-in every Sunday at 2 P.M. Eastern Time. For more info on the podcast, check out www.codenewbie.org/podcast. Thanks for listening. See you next week.

Thank you to these sponsors for supporting the show!

Thank you to these sponsors for supporting the show!