Monica Powell didn't have the most straightforward path to her first job as a developer. She took a couple of years of graphic design in college, took a computer science class, joined a student-led web development agency, and then joined a tech startup where she did email marketing and development. At that point, Monica knew that she wanted to be a developer, but she knew too much to attend a boot camp and not enough to get a job. So, she took classes, landed an internship, and then eventually got hired as a web developer.
Meetups were an important part of Monica's development. When she was in college, she'd attend meet up events to get an opportunity to get off campus and see how people are using technology. She gravitates to women in tech events since she's always found those events to be safe places for her to learn new technologies and meet other people. As of November 2018, Monica is now organizing a meetup called "React Ladies" in NYC!
Contributing to open-source was also important for Monica. Open-source de-mystifies the software that you use. You can look through the source-code of any package that you're using in your project. There's also plenty of opportunities to contribute, and it doesn't have to be code, many projects need contributions to their documentation as well.
Joel Hooks: Hi Monica.
Monica Powell: Hi Joel. How's it going?
Joel Hooks: It's going really well. Thank you so much for taking time out of your day to speak with me today. I'm really excited to talk to you. I am interested in your perspective both as a developer and I think recently as somebody that's organizing events and speaking at conferences. And I was really curious, how did you get into software? How did you decide to become a software developer and what was your path like on that journey?
Monica Powell: So I would say my path into software engineering was, I took the scenic route into software engineering. So when I was younger I was on Neopets and MySpace and was starting to learn CSS and stuff. A lot of things didn't really make sense to me then, but it was something that I was interested in. In high school I ended up doing a couple of years of graphic design, so I learned how to make art in Photoshop Illustrator and then I was working on putting that art online. But then when I got to college, I wasn't sure where the connection between web development and computer science was. So I didn't take my first computer science class until sophomore year of college. And then as I got more involved in taking a few computer science classes at my school, there was a student run web development agency. So as soon as that started I got involved, and I started to learn more about technology.
Monica Powell: After I graduated, I ended up working at a tech startup doing mostly marketing and then moving into email development at that company. So when I started someone else was focusing on email development, and I was working with them to figure out how to make the emails more accessible because we were sending a lot of emails that just had images with the text inside the image. So I started to learn more about email development and how you code an email is a bit different, than how we code now in the front-end. And then I decided to quit my job and do an internship to go full time into software engineering, because I was at a point where I wanted to do more technical work but I didn't have a lot of production experience writing code. And I also didn't felt like I knew too much to go the bootcamp route.
Monica Powell: So basically how I got into tech was learning over a long period of time, with various classes, and also on my own, and then getting an internship for experience, and then using that experience to get a full time job as a software engineer.
Joel Hooks: So you weren't kidding when you said that this was the scene of crime. You really have done quite an interesting round of work. I've got a lot of questions too actually. And I'm wondering, because you said you did some graphic design earlier. I was wondering how did that affect your decisions in the process as you grew into a developer over time?
Monica Powell: I think definitely it made me interested in the front-end side of web development. So really wanting to be able to critically if I had a design, get that out in front of people. So I really enjoyed in my classes when we had to make our own website, it gave me a chance to be creative. So I would say that's probably how it informed how I approach web development. Just in terms of focusing on the front-end to start. And then as I got more into it, learning about different parts of development.
Joel Hooks: I think it was really interesting also that you said when you were in college there was a student run agency, and I think that's the first time I've ever heard of something like that. But I also think that's a brilliant idea in terms of giving people real practical experience. And can you tell me a little bit more about that? What was that like and how did that run?
Monica Powell: And I think that made it ... I was like, "Okay I'm going to take a computer science class because I'm learning more about what it's like." So one part of the Athena Digital Design Agency was actually teaching the classes. So actually giving the students the skills. And then the other half of the agency was connecting the students with local businesses who needed web development assistance. So I know at my school there's a few other student run web development agencies, so there's Barnard Babysitting and Barnard Bartending. So there definitely is an appetite from people in the community to hire students for their different professional needs.
Joel Hooks: I mean it sounds like a great way to get experience. When I was learning how to be a developer I suppose, I had to go out and find freelancer work. I had to make those connections and take a bunch of steps forward, where this eliminates a lot of that and the community's aware of it. So you all get to participate and grow together.
Monica Powell: Definitely.
Joel Hooks: Yeah. I like that a lot. So you've mentioned, I've seen and read that meetups have been important to you and important to your growth as a technologist. And I'm wondering how meetups have fit into your overall journey and what you see in terms of them being beneficial to other people that might be interested?
Monica Powell: So I would say for me, when I was in college going to a meet up events, it gave me the opportunity to get off campus and see how people are using technology. On campus, a lot of the stuff outside of the agency was really focused on theory of computer science. So it was nice to be able to go to events that are focused on how are people using technology in industry. And a lot of those events were free or at low cost. So there was definitely some organizations that I started out as just an attendee. And then as I became more comfortable with my own skills with the organization, I was able to step up and be a teaching assistant, lead workshops, volunteer in general.
Monica Powell: And now I'm an organizer of a meetup. But I definitely think just being able to have this safe place to grow and learn about other technologies. I gravitate towards a lot of women in tech events, those are the types of events that I've gravitated towards. And I've always found that those events have been safe places for me to learn new technologies and meet other people.
Joel Hooks: Why is it important for people to have a safe place? And I think I feel like the answer people would assume it's obvious, but why is it important to have a safe place where you can go and feel comfortable and learn with a community in general?
Monica Powell: I think it's helpful just because it can be frustrating learning. And so I know for me, you don't know, if you're like, "Okay, I don't understand this concept or I don't understand whatever." You just assume that everyone else knows it. And so I feel like there's some insecurity that comes with when you're learning something new. So it's nice to be in an environment where you're like, "Okay, maybe I am the only one who doesn't know what it is. Maybe I'm not. But either way I feel like that's okay. This people are coming here to learn and et cetera. And that's welcomed." I've also been active in Twitter. There's the CodeNewbie Community. So they have-
Joel Hooks: That's great.
Monica Powell: Yes, they have weekly Twitter chats if you just follow the #codenewbie. And I've also found that it's a super... They say they're the most supportive environments for programmers. So I think it's just nice to have a nice safe place to go to when you're like, "Okay, I'm frustrated, my code's not working. Is this ever going to make sense?" And to be able to connect with people who can either relate or if they can't really necessarily in that moment, at least they can support you and make you feel a little bit better in that moment.
Joel Hooks: Yeah. I think the ability to ... and comfort to ask, which I'm using the air quotes, "the dumb questions" right? Where we do is this obvious to everybody in the room? And my experience is, it's not, but then there's always the risk, right? Like if you're in a group where you don't feel safe, you're going to keep that question to yourself. And then other people that would have benefited from that question too are not going to hear it as well because you're ... The nervousness or whatever of somebody's reaction that, that you might get.
Monica Powell: Definitely.
Joel Hooks: So tell me about React JS Ladies. This is your meetup that you organize and I'm wondering both what the event is about or what your meetup is about, but then also your experience in creating and organizing your own meetup.
Monica Powell: So for my group, I try to host events that are centered around different topics within the React ecosystem. So that could include discussing a GraphQL, anything like React, React Native, TechTube and develop mail, ingest et cetera. So we've had various events where some are more into React and then others are more focused on more advanced topics. And I think our most popular format has been to do lightening talks with people who can hear it from four to five different speakers who talk about a wide variety of topics.
Joel Hooks: Yeah, those are nice for folks particularly I think to if you don't have a lot of speaking experience but then you also keep it short too. So it's a low commitment and opens up and makes the opportunity to speak too, I think more accessible to the people.
Monica Powell: Definitely.
Joel Hooks: So are we oversaturated with meetups at this point, or is there room for more folks to start their own communities in this space?
Monica Powell: I definitely think there is a lot of opportunity for people to start their own meetup groups depending on what their interests are. If you want to start a general tech meetup, then it's probably is already a general tech meetup in your community. But I do think that there's still a lot of opportunity for people to create their own communities that have whatever that energy is or environment, and that they're trying to curate, especially if it is like a more niche audience. I think there's a lot of opportunity. So yeah, I would definitely encourage if someone's seeing that there's something they're looking for in community, but they're not finding to consider curating their own, because it's not as ... I don't know, for me, I felt like before I started my meet up group, I never really thought about it.
Monica Powell: But then when I was like, "Okay, I would love to see. I made up, let's focus on this and this." And then after seeing ... For me what I thought was something lacking, and then being able to use that as the opportunity to create something. But I think it would have been harder if I was like, "Okay, I want to create a meetup for women in tech." Or something where it's like, "Okay, well there's already a lot of meetups for women in tech, so what's going to be the differentiator? Does this thing need to exist? Or even if it doesn't need to exist, is this something that I'm going to find value in doing?" And I think having something different that I'm bringing to it definitely helps. Even for example, for like CodeNewbie, it's very general in terms of, it can be for anyone who's learning how to code, it's more of experience.
Monica Powell: It doesn't matter what language we're using, but I know that whole thing is really driving in on being a very supportive community. And I feel that's something that a lot of other communities don't necessarily emphasize as much. So I think that's a huge differentiator that makes it so. It's like, "Yes, we need this thing in the world because it's making the world a better place." So I think if someone has some type of group that they're trying to ... or community they're trying to foster that they think the world doesn't have that, I would definitely encourage them to consider investing in that.
Joel Hooks: I think CodeNewbie is probably one of my favorite examples of building community in a really healthy way. They've been doing such a fantastic job of fostering and growing and creating this online community. And then, there's the Codeland Conference where they actually bring it together in person. And just keep growing that, in that community in different ways. It's really pretty wonderful and inspiring I think in a lot of ways.
Monica Powell: Definitely is.
Joel Hooks: So you encourage people to contribute to Open-source. And we're in October right now as we speak. And there's Hacktoberfest going on. And why do you recommend that folks might consider contributing to Open-source?
Monica Powell: I think that people should consider contributing Open-source because it gives people more experience if that's something that they're looking for. I think it teaches you how to collaborate better with people. So there's a lot of asynchronous communication. Maybe communicating with people that you've never worked with before when you're contributing to a project for the first time or even a maintainer, handling submissions from people that you haven't met before or haven't worked with before. So I think it's definitely makes that whole idea of software more collaborative.
Monica Powell: And I think also contributing to Open-source makes ... It demystify software a bit. So I think, at least for me it's very easy to see like, "Okay, this is Gatsby." And Gatsby is this established thing. And then being able to step aside and be like, "Okay, well I think I could improve the Gatsby docs." I think that makes it seem more accessible to me as a developer. Or it's like, "Okay, I can actually contribute something to this, as opposed to just consuming it." It makes it so that I feel more comfortable. If I have an idea of like, "Okay, I could actually go to my own, Django's thing for example, or Gatsby thing because I've contributed to other people's Django or Gatsby thing. So I have a better understanding of how they work and maybe some things they don't like about other things.
Monica Powell: So I think contributing to Open-source just makes the world of software more open for people who maybe think like, "Okay, I just need to use these other technologies and, it's I don't like them. Maybe I'll find something else." As opposed to being like, "Okay, how can I iterate and make this thing better than it was when I first encountered it."
Joel Hooks: So beyond, say, core library, the code side of it, what other opportunities are there for people that might want to contribute?
Monica Powell: I mean for me, I think I've seen a lot of opportunities to contribute to documentation. So sometimes I'll read document and then I'll be a little bit confused about what's happening. What it's thing to do. Maybe I'll try a couple of things and then it works. So I've always taken that as opportunity to actually update the documentation depending on, as long as it's not too opinionated of the change. I'll usually update it, submit a PR and then get it updated. And so I've had good luck doing that and having the changes be accepted. So I would say maybe documentation is a good way, depending on the project. There's other ways to contribute. But for me, I feel like that's been the most straightforward way to contribute to a project without necessarily having to set up the project locally and really dive into the internals of how it's working outside of your application of it.
Joel Hooks: I've noticed that a lot of, especially I guess bigger projects have ... They're using tags and labels to say, "Hey this is something, this is an issue that might be great if you are trying to start contributing." Which I think is a pretty good move in the right direction too.
Monica Powell: Yes. And I know there's certain websites you can go on, that will help make it easier to surface those that are good for first time contributors. So I definitely recommend people to, if they are interested in contributing to maybe look that way. For me, I found it a little bit overwhelming. Just because there's so many different potential things that I can contribute to. So I've tried to [inaudible 00:18:06] to projects that I'm already somewhat familiar with or using. Even if it's just like, "I just discovered this thing and I'm trying to figure out how it works." So.
Joel Hooks: I think it's also because you have something like React for instance, where it's huge. It's a massive project. There's a lot going on. Even compiling React from sources is quite ... It's a challenge. It's a technical challenge in and of itself. But then there's these smaller projects, there's these independent individual developers that are just making tools, whether it's a custom React hook for instance. And those I think are opportunities to start contributing and gaining confidence as well versus thinking, "I need to get a PR into React." Maybe, the scope of something smaller is a way to start as well.
Monica Powell: Yes.
Joel Hooks: So I think ... I don't know if this is a new trend or if it's been something that's been around for a long time, but I've noticed a lot of people trying to build developer portfolios. And I was wondering if you had any thoughts on what makes a good developer portfolio or what you would consider building for yourself as a developer portfolio?
Monica Powell: So I guess for what I would say for a good portfolio I'll say is, I think that less is more in terms of what's on the ... Presented. So making it seem like it's something that's curated. I think it's definitely a good idea for the website. I know it's something too ... Especially if you ... At least from my perspective as someone when I was newer to web development I just wanted to put every single thing that I've ever worked on, on my website and I think that it definitely is better to try to curate and more and really show your best foot on a website, because people are going to look at it and assume that, that's what you curated. So I definitely would recommend that people will try to take a step back, make sure that their content is curated.
Monica Powell: I think it's nice when personal or portfolio sites have personality. So I am drawn to websites that stand out. I have all these different running list of websites that inspire me or I wanted to draw some inspiration from. So I know like Sarah V. Lydic, She has a GraphQL Explorer for her website. So when you go to her website you can ... there's a schema and it's basically, you can explore and find out more information about her. And then there's also another website called aprilzero.com and the developer, he integrated all these different visualizations with his fitness tracker, his GPS, et cetera. So you can see everywhere he's been, his heart rate all this information, which is a lot of information. I wouldn't necessarily recommend that people go that route, but for me I just it's really visually compelling.
Monica Powell: And I memorize the URL, I saw this one, years and years ago. Every now and then I go back to it. So I think if someone is more leaning towards the creative side, I definitely think it's nice to see websites that stand out and are different than the normal website. But if someone is less creative, definitely at least curating the content, making it seem like a clean website, people will know how to navigate it, because I think there's not necessarily one format for a portfolio site. So just streamlining the navigation in such, as much as possible I think is important so that when someone comes to the first time, they can get a sense of what information they're going to be able to find and where without having to work too hard.
Joel Hooks: I think keeping it simple, right? If you do have strong design skills or that's an interest that you have, pursue it and show that personality. But otherwise it's clean and simple. When's the day, I would say. You don't have to have a really fancy whiz-bang site. You just want something that people can access, read, find the information and get a good overview of your skills.
Monica Powell: Definitely.
Joel Hooks: So I learned recently from you that Git actually allows us to time travel. I thought that was really interesting. And I think Git in general has so many layers. I've been using Git for pretty much as long as it's been around for a long time. It feels like about a decade. But I've been using this tool and I learned something new from you this week. Why is Git so challenging? If it is challenging, but I feel like it is. But, what makes Git challenging or difficult to approach and get into?
Monica Powell: I think for me when I was learning Git, I found it challenging because I didn't necessarily have the visual model of what was happening when I ran certain commands. And so I think that made it a lot more difficult. At the same time as when I was learning Git, I was also learning to commit online. So when I first started using Git, I really needed to use the GitHub, they have an application that you can download. That helps you visualize better what branch you're on, what files are there, et cetera. I know now there's more integration with visualizing the whole Git state of things, inside of editors for example, inside of JS code. You can have it integrate well with GitHub to see the state of the file. So I think for me that was the most challenging thing as I was learning Git.
Monica Powell: Just developing them into model of what's happening locally in my branch versus whatever other branch I'm working with. Or if I'm only making changes in my branch, what am I actually doing? So I know for example, for commands that I don't use as much, I don't have as strong with them as a model for what's actually happening. So I'll usually will then reference documentation in order to find that out. But I think once someone has a clear visualization, or at least for me I'm a visual learner. Once I have a clear visualization of what is actually happening, then it's easier for me to understand how to implement certain commands.
Joel Hooks: I feel like I have maybe like half a dozen Git commands that I actually know. And then everything else I just look up. I know that I can do this so I have to look it up. So it's how do I delete the last commit? I feel like that's when I've looked up a lot of time. You'll push the commit and be like, "Oops!" And then to me it's there's also the time aspect of it, which is interesting because you did this time travel idea in Git, but then there's this interesting idea of history and you can rewrite history and you can, in a shared environment, collaborate people's history and all that. Which to me has been a real ... Still is hard to get my head around the potential of what you can do with it. But why is Git essential as a developer? Is it essential as a developer? And if so why?
Monica Powell: I would say I think it is essential as a developer. Or at least some version of Version control. I think that it's your best friend. It's like a gift to your future self. So there's definitely certain things. Like If I leave out my gym clothes the night before I'm like, "Okay," in the morning. "that was for my future self." So there's definitely been times when I've been working on something and then things just don't go according to plan. So it is nice to easily be able to go back to a clean working state of code easily without it being a big thing. There's only but so many undos you can do, before you're just not in a good place and can't get back to a working state. So I think Version control is really good at being able to just incrementally store working changes and not have to worry about ... Then you can do whatever you want and if it works you can experiment. If it works.
Monica Powell: If it doesn't, then you can go back. So I think that is very helpful as a developer because I think for me there's a lot of exploration as I'm trying to solve a problem. And then also Git, does make collaborative easier, especially if you're using something like GitHub or GitLab. I think it just a lot of people expect people who are developing software to be familiar with Version control. And then if you're using library is React or something then it is ... And you want to look at different packages, et cetera. I think it is helpful, that it have familiarity with Git to be able to easily pull down a code or look into the source code is necessary.
Joel Hooks: I think it's interesting from a historical standpoint because you can go to any project on GitHub and dig through the history and see the evolution, and that's helped me from ... With my own code. But then it's also interesting too like, "Hey, here is an interesting library I like, you can go in and see how and what and hopefully if there's good commit messages, why changes were made over time and see how software evolves. Just from a purely historical learning perspective." It's really interesting to me as well. It's a good tool. How was it speaking at React confs?
Monica Powell: I feel like it was excited speaking at React confs. So this was my first, sorry, this is my second React confs. So I attended last year for the first time, and that was around the time that I was starting my meetup group. So then attending this time and my meet up group is about a year old. So yeah, I would say my experience speaking at React confs was positive. I did a lightening talks. So each year they have a few slots for lightening talks. So this year this format was presenting 20 slides for 20 seconds each. And so I think for me it was the opportunity to present at React confs because I did do a shorter lightening talk. I was able to focus more on Git, where I was, I wouldn't have been able to give a full length talk, at React confs about Git. So for me that was a good opportunity.
Monica Powell: Yeah. And I had previously given a longer version of that talk at a meetup. So then presenting it at React confs gave me the opportunity to revise the content, streamline it and I had to cut out a lot of things. But it definitely made me think about what are the most important things that I want to get across to this audience.
Joel Hooks: So you have some experience in public speaking and I think it's something that a lot of people aspire to do but maybe are nervous about doing it, or just haven't done it. It's really one of those things that's hard to get motivated to do the first time. And I'm wondering what are your recommendations or what are your tips for getting started if you're interested in doing any public speaking?
Monica Powell: Yes, so I would definitely, I guess go back to different events. So I know I haven't been to Toastmasters, but I know a lot of people have recommended Toastmasters to practice public speaking. So they have them throughout the world, I'm assuming. And not just United States where you can gather with a small group of people who are also interested in practicing public speaking and practice with them. So just getting comfortable with the idea of speaking in front of other people. I've gone to Write/Speak/Code events, where for Write/Speak/Code they focus every event on either helping people do more technical writing, more public speaking or contribute to open source more. And all of their events are very actionable. So I definitely feel like going to some of their events that are focused on speaking is very helpful for people who are considering it because they definitely are tailoring to people who maybe have less speaking experience, but then also people with more speaking experience and will help if idea generation is a problem or learning how to create an abstract is a problem.
Monica Powell: There's like a Global Diversity CFP Day and so that is focused on helping marginalized folks submit more CFP. So every year they have an event where it's happening nationwide. Each location has a different variation of the event. But the whole point is to encourage more first-time speakers. And so I attended Global Diversity CFP there the first time earlier this year, and that gave me the opportunity to write an abstract and hear from people who had spoken at events. So I definitely feel like it's important to maybe go to different events and learn more about speaking. I know I attended a panel where people who had reviewed comments proposals, we're talking about what they're looking for and how to write a good proposal, which I think is helpful if you haven't written one before.
Monica Powell: Just to get as much information as you can, so that you can write the best proposal as possible. And then I think actually when you are speaking, just it's nice to remember that the audience wants you to do well.
Joel Hooks: They do.
Monica Powell: Yes. So they want you to do well, they want to learn something from your talk. But I think, just that everyone's super eager. So the content is helpful to keep in mind. Of course practicing the talk is good. And then learning, what's your slide says. I know some people who want to memorize every single word. Other people want to read darkly office slides. I know for me to be comfortable I have to be familiar with the content. I don't want to memorize it. And I also don't want to read directly off of the slides because I think then I feel I'm reading a book in front of a room full of people and then I forget how to read. So yeah, I was definitely will say, going to different community events. Just remembering people want you to do well and then finding out how you're actually comfortable or most comfortable when presenting in front of a room full of people.
Joel Hooks: I needed somebody to remind me to breathe, I think when I did my first one. So what's your preferred stack of technology tools right now? What are you using to build applications?
Monica Powell: So at work I use a lot of Reacts GraphQL, different serverless technologies. So writing Lambda functions, a lot of writing, configuration as code. So a lot of YAML, which I'm not the biggest fan of Yemo, but it seems to be really popular for writing configs. I think people use either YAML or JSON. YAML can seem friendlier, but it also has ... It's really easy to have indentation errors with YAML. And then outside of work I've been using a lot of Gatsby, which has been gotten me to explore GraphQL more, and go more into React. So I recently redid my personal website and so in that process I ended up building my own Gatsby site. So I based it off of the Gatsby ... They have Gatsby starter. So just the bare bones, it's the minimum viable product for a Gatsby site.
Monica Powell: So I was able to based off of that, I added additional styling, additional logic, and that required me to really dig into what's happening with Graffio. And then I really enjoy deploying things with Net Li-Fi. So Net Li-Fi is a hosting service and they integrate very well with GitHub. So I previously used GitHub pages, but I've now transitioned all my sites that are on GitHub pages to Netlify and based off of my site needs, I'm actually within their free tier. And the thing that about Net Li-Fi for example is, I started this project to collect positive affirmations called The Affirmation Generator. And so I have accepted a lot of contributions during Hacktoberfest and every single time someone opens a pull request, I nullify automatically for EHTR. It will generate a staging site. So the person who's making those changes can see like, "Okay did it pass all the nullify checks." And also actually go to the staging site and see what there's just, changes look outside of their local environment and ... Because sometimes it can be different in the staging site versus in their local environment.
Monica Powell: And I think for me as a maintainer, it's definitely been helpful because if someone makes changes to the content or even some of the logic, I can read the code. But then I'm also able to see what the site would look on LSI without having to manually pull everything down locally and then start it up. So it's definitely been a time saver and I think improve the experience for people who are contributing. It makes it seem a bit real I think.
Joel Hooks: I think one of the cool things about that too is that every time you build one of those, it exists forever. That site, that snapshot of the site, that URL, whatever it generates with the degenerated ID. That exist and you can visit it later. So associated with every commit is a build of your site and it's just so easy. It's one of the simplest things in terms of deploying and I've done it. I've copied, I've used FTP to deploy codes. All the way through now where I have this magical wondrous tool that just works for me. And I know there's a lot going on and I say it's easy and in fact it's incredibly complex, but at the same time, if you've ever used Ant or Maven or had to go back and do the FTP stuff, this stuff is really quite a miracle on the whole files in delivering product.
Monica Powell: FTP, I still have one WordPress site and I always just log in manually to see what's happening. It's not very this 2019 as me, but-
Joel Hooks: Yeah. I have a 21 year old, the DreamHost account that still has some active sites that, so every now and then, I have to figure out how to go back in time and work on those things. But not for modern times Monica. Monica it was really great talking to you and I appreciate you taking the time out of your day to come chat with us. Thank you so much. I look forward to seeing what you do next. Thanks.
Monica Powell: Thank you for having me.