We chat with Amy Chen, systems software engineer at VMware and creator of the Amy Codes YouTube channel, about her career two years into being a professional developer, getting into coding for distributed systems, and the benefits of creating a personal brand.
[00:00:05] SY: (Music) 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 creating a personal brand and Kubernetes with Amy Chen, Systems Software Engineer at VMware and creator of the Amy Codes YouTube channel.
[00:00:23] AC: I wanted to put myself out there so that when I was into reading places, people would offer me the benefit of the doubt.
[00:00:30] SY: Amy talks about transitioning from pre-med to computer science, learning to code for distributed systems and building a personal brand after this.
[00:00:45] Flatiron School is one of the best bootcamps around. On campus or online, you’ll build a community of like-minded coders and learn the fundamentals of what you need to know to dive into the rapidly growing tech field. Go to flatironschool.com/codenewbie to learn more. That’s flatironschool.com/codenewbie.
[00:01:05] MongoDB is the most popular non-relational database for a reason. It’s super intuitive and easy for developers to use. Now with MongoDB Atlas, you get its flexible document data model as a fully automated cloud service. It handles all the costly database operations and admin tasks like security, high availability, and data recovery so you don’t have to. Try MongoDB Atlas today at MongoDB.com/cloud.
[00:01:34] If you like this podcast, there’s a good chance you’ll also like one of the other tech podcasts that I host. It’s called Command Line Heroes and it’s produced by Red Hat. So if you’re looking for some really fun and informative tech podcast to fill your feed, check out Command Line Heroes at redhat.com/command-line-heroes. That’s redhat.com/command-line-heroes.
[00:02:03] SY: Thank you so much for being here.
[00:02:05] AC: Thank you so much for having me.
[00:02:06] SY: So tell us a little bit about how you got into coding.
[00:02:10] AC: So it’s actually a pretty funny story. So when I went to college I was pursuing medical school. So I was doing pre-med and then I studied cellular biology and neuroscience. After freshman year, I got kind of bored. I didn’t enjoy all the memorization that was involved.
[00:02:30] SY: There’s a lot of memorization.
[00:02:30] AC: Yeah, for sure.
[00:02:31] SY: I remember that. Yeah.
[00:02:32] AC: Yeah. And so I was like, “Oh, like, what should I do next?” And so it was pretty serendipitous what happened next. I had this weird phase where I would go on Omegle and like to talk to random strangers and like the chat roulette. This was also at the time that I was looking classes and I guess I was talking about how I was like, “Oh, I don’t really want to do pre-med. I don’t really want to pursue this major anymore.” And so the person just told me that I should try computer science and I did it kind of on a whim and I also dragged my friend along to do it with me. So it’s pretty random.
[00:03:06] SY: So when you tried computer science, oh, first of all, what does it mean to try computer science? What things did you try?
[00:03:12] AC: In this case trying computer science, what it means is like booking the introduction to computer science class. So I did that and I was also still taking classes from the previous major.
[00:03:24] SY: That sounds like an intense amount of work.
[00:03:27] AC: Yeah. It was definitely an interesting semester. So I’m glad when I did the full conversion over to the computer science major for sure.
[00:03:35] SY: So what was that introductory course like?
[00:03:38] AC: The class was teaching us like the basics of coding and the first language they taught us was Java. So it’s pretty interesting to use Java as the first language for someone entering computer science for the first time and being introduced to programming for the first time. It was also interesting because a lot of the students in the class already had a familiarity with software engineering and programming and this wasn’t their first time like literally touching a terminal or opening up any sort of code editor, but towards the end of the class, what I like anecdotally sort of experience was like everyone who didn’t have any background in programming or hadn’t like ever written a for loop before actually did better than the students that like had previous experience with programming.
[00:04:29] SY: Oh, wow.
[00:04:30] AC: I don’t really know why, but I can like speculate in the sense that like maybe they didn’t feel like they needed to study for a lot of things or like practice certain things versus like the students who never had experience before were like trying really, really hard all the time, myself included.
[00:04:49] SY: What was it about computer science that resonated with you?
[00:04:53] AC: So the things that I really hated about the whole pre-med track and then studying cellular biology and neuroscience was all the memorization involved and so computer science was kind of a really awesome recovery from that in the sense that you just have to remember a few specific rules and bend them in the way that you want and reapply them over and over again throughout the curriculum. I never really had to memorize anything. So that was pretty awesome. I probably should have realized I would have been at least okay at computer science or like programming and like pursuing this as a career because when I was in high school, I was actually pretty good at math. And so I’ve also heard like peers say this too where they didn’t realize that they should even have started pursuing software engineering or programming or computer science in college, but they realized later on when they look back that they probably should have pursued it because they were pretty good at math.
[00:05:57] SY: Yeah. So the math connection is interesting because I’ve heard a lot of people actually say that it’s less like math and more like, is it philosophy, I think because there’s a lot of logic involved in computer science. So I’m interested to hear your perspective. What is the connection between math and computer science and how you experienced it?
[00:06:14] AC: Yeah, for sure. I mean to me it’s just like the reapplying of rules over and over again. So for math, maybe it was like the way that my specific experience about it. It’s like I never felt like I had to memorize anything. It’s like after I learned certain formulas, it would kind of just like intuitively come to me when I was like taking tests or things like that and you just kind of have to like recognize patterns and like reapply them to like more of this, you know, specific problem domain into kind of like a neatly packed solution that you want and that’s kind of like my experience in programming where it’s just like, “I don’t really have to memorize anything.” It’s like things are at my fingertips to like Google and look up all the time. It’s just sort of like an index for things I need to like look up later on and then the similarities is that like I just have to reapply these similar solutions like over and over again till the final end product is kind of like neatly packaged and this like anything that I want. That’s kind of like how I see that connection.
[00:07:14] SY: Yeah, that makes sense. So when you are studying computer science, did you know what you wanted to do with that degree?
[00:07:21] AC: I think that I did in the sense that like I am the kind of person who definitely wouldn’t pursue a college degree without knowing that it has like a viable career afterwards. Definitely, I pursued computer science knowing that it was a pretty lucrative industry and also that there’s a lot of flexibility in terms of both lifestyle and living arrangements and things like that. So like for instance today, I work remotely and I love it and it’s awesome. And while I was doing that intro to computer science class, like I also joined my college’s club and I talked to them and like we were all sharing starting salaries and also like internship compensation and things like that.
[00:08:04] SY: Oh, that’s wonderful.
[00:08:05] AC: Yeah, and there is like a whole spreadsheet. So I definitely knew coming in that I would be able to feed myself, more to feed myself.
[00:08:13] SY: Good for you. Good for you. Yeah.
[00:08:15] AC: Yeah, like I have this degree.
[00:08:17] SY: So now that you have a CS degree, I’m wondering what your thoughts are on bootcamps and just kind of this world of self-taught developers and people going outside of the traditional four-year degree. What are your thoughts on that?
[00:08:28] AC: I definitely would compare it to like a trade school degree in a sense of like for computer science, right, like as a college degree, it’s pretty theoretical in nature in the sense that like just because I have a computer science degree doesn’t mean that once I entered the industry I’ll have everything I need to know in order to get started. Whereas when I look at bootcamps, it’s like they teach programming in a very practical way where it’s like, “Here are some frameworks you can use. Here’s how to program. Here’s how to use your code editor.” People are using web frameworks and like making web apps and things like that straight off the bat. They’re learning how to like test things. I have a peer. She went to Ada Academy, which is like a local bootcamp in Seattle specifically targeted at women and I believe non-binary identifying folks. And the students coming out like they do need like ramp up like everyone else does, but I feel like the things that they know are pretty practical, at least anecdotally from my peer who came out of that bootcamp. I see them as a way financially to like save money if your end goal is to enter the software engineering industry. I also think that there is a lot of bootcamps meeting like more regulation and things like that because like recently on Twitter, it’s like you’re seeing the results of these bootcamps and like they’re teaching curriculum isn’t necessarily super robust for these students to be able to come out and be successful in the industry, but I still wouldn’t use those examples to knock off bootcamps at all because I think they’re like a super awesome solution for a very, very practical industry.
[00:10:13] SY: So what was your first coding job outside of college?
[00:10:16] AC: So my first full-time coding job was with Rancher Labs. It’s like a DevOps container orchestrator company. So the way that the UI works is you have some web application that you want to develop that is containerized already into a binary and then this UI would help support bringing this web application online. So you can plug in different types of container orchestrators, like Kubernetes and Mesos and Docker Swarm at the time. And this was definitely an interesting first experience because this was before Kubernetes was basically the dominant container orchestrator. And today, that product actually they largely focus on Kubernetes itself because it seems clear that Kubernetes is the one.
[00:11:08] SY: Yeah.
[00:11:09] AC: It’s interesting when I talk to people that like my first job was in infrastructure because at the time that I graduated, new grads didn’t really pursue infrastructure and I don’t think that…
[00:11:20] SY: I was going to say, that seems like not the norm, I guess. What got you interested in it?
[00:11:25] AC: So for my internships and things like that, like I was doing back-end web development and I got kind of bored because all of my work would be contained within the web application framework itself and I wanted to know more about distributed systems and things like that. Also, I was following Jessie Frizzell on Twitter and so she was talking about Go and containers and all of those things and so I decided basically like three months before I started interviewing to like write like a quick web application with Go and the write up was pretty quick because Go is such a small programming language and you don’t really need much to get started with it.
[00:12:06] SY: Not much to Go.
[00:12:09] AC: But yeah, I wrote the web application because I wanted employers to know that like I didn’t have any professional experience in Go, but it’s like a lot of things from my internships are like transferable and it’s like once you know what language you basically know them all. And so I just didn’t want that to be a barrier for me to be hired.
[00:12:26] SY: So how much infrastructure did you cover in school?
[00:12:30] AC: Zero.
[00:12:32] SY: Okay.
[00:12:32] AC: Yeah. Coming into Rancher, I didn’t have any experience with like Docker or anything like that. I like vaguely knew what it was, like enough to be like, “Yeah, you like stick this binary in a container and it’s not a virtual machine in these ways, but I hadn’t liked use it in any practical level. So there was definitely a large ramp up when I joined the company for sure.
[00:13:01] SY: How did that feel just on a purely emotional level? You know, you have the CS degree, which I know is very powerful and probably got you in a lot of doors and made you feel like you knew what you were talking about because you have this awesome degree. But the job that you have is about a topic that you’ve never covered before. How did that feel?
[00:13:19] AC: Daunting for sure. I mean, what I would say about CS degrees is that like just because people have CS degrees, I don’t think it necessarily means that they will automatically be qualified for a job. And I think a lot of the reasons why people pursue CS degrees, even though like industry wise you have so many examples of people not having CS degrees and still succeeding is because it’s one of those like checkboxes that you kind of have to deal with where I was just like, “I don’t really want to face any barriers or like hiring managers interrogating me why I don’t have a CS degree,” because in a lot of large companies, you see like minimum requirement CS degree on their job forms whether or not they actually require it. That’s definitely why I completed my CS degree. But I think on a personal level, I definitely have a lot of like self-belief in the sense that like I believe that I learn things very quickly and I’m kind of like a serial hobbyist in the sense of like I think of a lot of hobbies and I dive into them very deeply. This is both outside of CS things and within my personal life. So while it was daunting, I also had the belief that I would be able to pick it up fairly quickly.
[00:14:39] SY: Good for you.
[00:14:41] AC: It’s definitely like a useful mental state to have and to train yourself in and I think that’s what being a serial hobbyist is kind of like helps me with.
[00:14:50] SY: Yeah.
[00:14:52] AC: It definitely helps me with my self-esteem when it comes to like learning things and picking things up quickly for sure.
[00:15:41] As a programmer, you think in objects, with MongoDB, so does your database. MongoDB is the most popular document-based database built for modern application developers in the cloud era. Millions of developers use MongoDB to power the world’s most innovative products and services from cryptocurrency to online gaming, IoT, and more. Try MongoDB today with Atlas, the global cloud database service that runs on AWS, Azure, and Google Cloud. Configure, deploy, and connect to your database in just a few minutes. Check it out at MongoDB.com/Atlas. That’s MongoDB.com/Atlas.
[00:16:25] SY: So tell me more about being a serial hobbyist. When you pick up a new hobby that you’re interested in, where do you start? How do you dig in and become almost an expert in that new hobby?
[00:16:35] AC: Something that I noticed people doing when they like try to learn new things is like they try to learn it in a very theoretical way where they’ll like read things. Let’s see Go for instance. People will be like, “Oh, let me like read this book about Go so that I know how to use Go.” When I do it, I’m just like I cannot learn things unless it’s like contextualized and I don’t learn things unless I need it. So for Go, the way that I learned it was, I was like, “Okay, let me have this like concrete example. I’m going to learn how to make this web application.” And so like what do you need to learn how to make a web application while you need to have like an HTTP server, also for like getting started in Go, it’s like this whole like directory structure. You have to learn how to build the Go Binary. You have to learn how to make handlers and things like that. And so like the way that I would describe my learning style is like a lazy learning style where it’s like I learn things as I go. And the other thing about Go that I can transfer to other hobbies is that I learned very well by having community around me and like being able to ask questions as I have them and have them be immediately answered. And so the thing about the Go Community is they have a Slack. And so what I would do is I would just like sit in the Slack, like program my web application, have a question, and Google search it for like maybe 10 minutes. But then when I got sick after 10 minutes, I’ll be like, “Someone, please help me. Why is this the way that it is?” And someone would be able to like immediately answer it. And so that’s kind of like what I do for my other hobbies too is like in the finding the community sense. So right now I’m like really into plants. And so I found a local plant community and have other people to share this hobby and also dive into the plant community on like YouTube and just like passively watch plant YouTube videos about people describing their plants and also like the genus and things like that.
[00:18:33] SY: And so when you think about your skills now in infrastructure, how do you view yourself? Do you see yourself as still kind of a beginner, an expert, somewhere in the middle? How do you feel about your own position in infrastructure?
[00:18:47] AC: For some context, I graduated in January 2017 and then I got my first job in March of 2017. So it’s about like two years, give or take a few months. I wouldn’t say that I am an expert per se, but I’m definitely not a novice. The way that I would describe myself is probably right now a Kubernetes application developer and that’s a very specific context and that the applications that I write they interact with the Kubernetes API. And so this specifically means interacting with something called Client Go. So that’s the Go Client for interacting with the Kubernetes API.
[00:19:28] SY: So for those of us who don’t know what Kubernetes is, let’s maybe start with that. Let’s maybe start with what is Kubernetes.
[00:19:35] AC: Let me back track. Kubernetes is called a container orchestration platform. So to explain what Kubernetes is, I would first have to explain what a container is. So I think the best analogy that most people understand is a container is sort of like a virtual machine. They’re actually both very different, but like on a conceptual level, you can imagine a container being this like tiny computer on your existing computer. So if you wanted to run like some distribution of Linux on your Mac Computer, you can spin up a container really quickly and be able to do that. In summary, a container orchestrator will manage the lifecycle of a container and it will also schedule these baby containers such that when there’s high-traffic, it’ll scale up the number of containers and it’ll also schedule these containers so that it can fluidly move across all the different servers when the resources are available and when it’s needed. The other area that I’m trying to develop more expertise in is actually in the installation and actually infrastructure level of setting up a Kubernetes cluster. So what that means is interacting with AWS, installing Kubernetes on two nodes that you bring up, so like separate machines, and then making sure that Kubernetes Control Plane and worker nodes all interact to become a cluster.
[00:21:10] SY: Coming up next, Amy talks about creating her YouTube channel, Amy Codes, and the benefits of building a personal brand even if you’re early in your career after this.
[00:23:04] SY: You can find it wherever you get your podcast and make sure to check out the show at redhat.com/commandline.
[00:23:16] So your name is Amy Chen, but you also go by Amy Codes.
[00:23:20] AC: Yeah.
[00:23:20] SY: And you have a YouTube channel that is called Amy Codes as well. Tell us a little about this YouTube channel.
[00:23:26] AC: Yeah. So I watch more YouTube than I watch Netflix. And so like I love watching Vlogs and I love even following people’s channels that are like less than 20K in subscribers, which today is kind of crazy to think that that’s like a small number of subscribers. So I used to like sometimes write blog posts on medium. So I thought that video was a great medium to like transfer knowledge basically. And the other reason why I started a YouTube channel was because of actually really selfish reasons where I wanted to put myself out there so that when I was into reading places, people would offer me the benefit of the doubt where they saw me being able to explain like pretty technical topics and know who I was before coming into a room and that’s like generally why I like putting myself out there. And also I think it like brings up really awesome opportunities for instance like conference speaking, like this interview and things like that. And so those are some reasons I put myself out there in general and also why I started a YouTube channel. It’s a lot easier to like go into a room where people kind of have a general gist of who you are and like believe that you’re technical when you’re trying to gain buy-in for whatever you’re trying to do and not meeting, whether it’s like getting another job or if it’s trying to explain why your technical solution for some project is like the right reason, like you don’t have to prove your technical chops, people will just believe that. Or if it’s like God forbid something were to happen to my job, I could just like reach out to people and be like, “Hey, I’m job hunting,” and then people would offer up their opportunities to me without me having to like go through calls, emailing, or like reach out to recruiters like via LinkedIn without them knowing who I am already.
[00:25:15] SY: So what kinds of things do you talk about on your YouTube channel?
[00:25:18] AC: So I haven’t actually posted for a year and I should probably talk about that. Basically it was the result of a bit of burn out and like in between I’ve been doing conference talks, but I think my goal for next year is to decrease the number of conference talks that I do and focus that energy back onto YouTube. But it’s like a range of like logging style and then also technical things.
[00:25:49] SY: So YouTube does not have a great reputation when it comes to community and it comes to comments. What’s your experience been like with that?
[00:25:57] AC: I don’t know that I’ve had much of a negative experience on my own personal channel. I’ve definitely seen comments on like conference channels and things like that where people will kind of comment on the way that I speak I guess because I’m pretty conversational. I don’t think that word fillers are necessarily like the worst thing in the world because I find that it brings think this conversational feel to it and that’s what I enjoy in conference talks where obviously prepared, but it’s also personable. When I look at the comments on like conference videos, I kind of just ignore it because I usually put that genre of people in this like giant bucket that’s faceless, and if I care about everyone’s comments, then I would just be like crippled with insecurity and not be able to produce anything. But yeah, random strangers, they just kind of fall into this bucket of giant slab of people that don’t really matter that much.
[00:26:57] SY: So I love this idea of building a personal brand and especially one that gets you some real benefits outside of the brand, right? The fact that you get job interviews, speaking gigs, all that stuff is really great. But I’m also wondering if there is any downside to establishing this so early in your career, maybe before you figured out what your brand even is. Since you just got out of school about two years ago, do you feel like there’s a risk of doing this too soon, too early?
[00:27:26] AC: So I think the kind of fear that people have is that if you start creating a personal brand too early, it’s like maybe like A, your interests change or 2, like you don’t know enough to be able to speak on it with expertise and have people like respect your opinion kind of thing. And I think a value of me establishing a personal brand both like early in my career and like having my career progression be very public is like people can kind of see a progression of like where I started from and how I’m evolving.
[00:28:00] SY: That’s pretty cool.
[00:28:01] AC: Yeah, definitely. And I think like personal brands, people shouldn’t think of it as like this box where you have to only do the thing that you originally established your brand to be and I think of it as a very fluid thing of like, “Maybe one day I don’t want to do infrastructure software engineering anymore.” And when that day comes, it’s like I’ll just push out content not related to that and like people come to associate you with different things very quickly and it’s all really just about like volume and the amount of content that you push out of that genre. So like even again like if it’s like outside of software engineering because I’m a serial hobbyist, this hobby only happened this year and people are already like associating me with plants. And it was kind of a really interesting like social media experience where I’m like, “I wondered like how to push out different things that I’m interested in,” and it’s good to know that like people will notice and internalize enthusiasm very quickly on the internet. And so that’s kind of like my strategy for like evolving the things that I enjoy doing.
[00:29:06] SY: So for folks who want to start building their brand specifically on YouTube, what advice do you have for them?
[00:29:13] AC: The first piece of advice that I would give is like do not seek perfection. The key to like gaining an audience on YouTube is not like necessarily like an incredible quality of video, like maybe that’s the case if you’re like some sort of like scenic videographer where you’re trying to make this like beautiful cinema graphic video of like some mountain, yeah, sure, like quality matters a lot for that. And to a certain extent, like quality matters for like technical content creation, but like not to the same degree. Building an audience on YouTube is mainly about consistency and the schedule and like how often you create videos. So people can depend that you’ll release a video like once a week or once every other week or like once a month on a specific date and time and they’ll like look for those videos, then that’s definitely something people depend upon. And then also the other thing to think about is relevancy. Don’t worry too much about how popular is this topic because you’ll gain the audience that is interested in your things by just consistently creating content.
[00:30:32] SY: Now at the end of every episode, we ask our guests to fill in the blanks of some very important questions. Amy, are you ready to fill in the blanks?
[00:30:39] AC: Yeah.
[00:30:40] SY: Number one, worst advice I’ve ever received is?
[00:30:43] AC: To wait for promotions because they’ll come when you deserve them.
[00:30:48] SY: Oh, tell me more about that.
[00:30:49] AC: This actually came from my parents. So I’ll give you some context. They are Chinese immigrants and they also are in slower industries and also from a different generation where people would stay at the same company for their entire lifetime. And so they definitely have like a very conservative approach when it comes to their employers. IT’S like a very much of a like don’t-rock-the-boat-too-much kind of mentality. And so I was talking to them about like the next promotion cycle and things like that and how I’m like talking to my manager about my next promotion and they got kind of scared where they’re like, “Oh, don’t rock the boat too much and wait for your promotion.” And I think that’s a bad idea because I don’t think employers have the incentive to promote you unless you indicate that you want one and also you need like a practical guideline of like how to get to the next level and this is definitely like a conversation that should be opened up with your manager like long before you are expecting your promotion. When it comes to like anything related to money, like I don’t want anything to be a surprise. If I don’t get a promotion, I know exactly why I didn’t get a promotion and like what I specifically need to work on in order to get that promotion and like a general idea of a timeline I should have to get there. And then if I do get a promotion, it’s like another indicator of like I know specifically what I need to continue to keep doing. Basically, if there’s any surprises, it’s like a different conversation that I have with my manager of like, “Hey, this can’t happen again the future.” I need to make sure that performance-wise I know everything that’s going on especially since it ties into my compensation packages.
[00:32:34] SY: Number two, best advice I’ve ever received is?
[00:32:37] AC: Don’t reject yourself for opportunities. Opportunities can come in different ways. It could be a job application. It could be like shooting for the next promotion. It could be targeting certain project that you want to do and I see this often among peers. Well, they’re kind of like reject themselves before they give the other person the opportunity to review them to see if they’re qualified for the job or for the opportunity. I think there is enough barriers in the world and to have yourself be one of them, it kind of sucks. And so when it comes to like myself pursuing things, I'm pretty optimistic. I’m just like, “Yeah, I’ll just put it out there and see what happens and let them make a decision and I’ll try my best up until that point.” And then once it’s out of my control, then yeah, it's out of my control and I tried my best.
[00:33:31] SY: Number three, my first coding project was about?
[00:34:49] SY: Number four, one thing I wish I knew when I first started to code is?
[00:34:54] AC: I wish I knew to like focus in general, so like focus on one language or one framework or like one concept at the time because a lot of what I did in the beginning of programming was like jumped from language to language because I thought for some reason it would be more marketable for my career. But the reality is, is like focus is really necessary to like gain that level of depth in order to like master your expertise in one area because for software engineering like so many ideas and so many topics are so transferable that like once you delve deep enough into one topic, the fluidity into moving into different things is super easy. So like for instance for like web applications, once you know one framework for writing web applications, you probably honestly know them all or at least the activation energy to like learning a new framework is like pretty low. And the same is like for most programming languages as well is like once you know one programming language, you pretty much know them all as well. So focus is the first thing I wish I knew.
[00:36:11] SY: Well, thank you so much for joining us, Amy.
[00:36:13] AC: Yeah. Thank you so much for having me. This was so much fun.
[00:36:22] This episode was edited and mixed by Levi Sharpe. You can reach out to us on Twitter at CodeNewbies or send me an email, email@example.com. 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!