Alice Goldfuss 0:00
I was like, oh man, I am the only person on this team in this entire company who doesn't know how kernels work, or how to analyze a kernel crash. I need to figure this out. So I was teaching myself like, Oh, yeah, okay, these bits are flipped, that maps to this user. And like, this is what this is what that register means. This is what a register is, like, I'm gonna figure out like, I learned all of that frantically, because I thought everyone else already knew. And I didn't know that it was something most people in programming don't encounter. And a lot of people don't know how to do. I came in as like, Oh, it's still crashing. And I was like, Yeah, I analyzed the kernel crash, and it led me to this hardware error. And then it's the PCI bus. I became known as the person who knew how to analyze kernel crashes. I actually had another engineering team asked me to teach them it was an indication I was like, Oh, wait, you don't know how to do that? Wasn't this a, like a freshman level class for you?

Tim Bourguignon 1:05
Hello, and welcome to developer's journey, the podcast, bringing you the making of stories of successful software developers. To help you on your upcoming journey. My name is Tim Bourguignon, and on this episode 125, I receive Alice Goldfuss. Alice is a systems punk with years of experience working on cutting-edge container platforms, building modern infrastructure at scale, and streaming Capture the Flag challenges on the weekends. Alice, welcome to dev journey.

Alice Goldfuss 1:40
Hi, it's great to be here. Thanks for having me.

Tim Bourguignon 1:42
So Alice the show exists to help the listeners understand what your story looked like, and imagine how to shape their own future. So let's go back to your beginnings, shall we? Where would you place the start of your developer's journey?

Alice Goldfuss 1:58
So there's when I started trying to become a developer, and then there's all of the things that happened before then that laid the foundation. And when I talk to people about my path, they always ask me, how did you get into code? How did you get into computers, and they're asking that, usually, because they are earlier in their career earlier in their journey. And they want to see how I got in so they can compare to the steps that they're taking, and try to replicate them. And when you were talking about that kind of journey, and the kind of events that happened in someone's life and the steps they took, I feel you always have to put it in perspective and context of where that person was coming from the resources available to them the privileges they had, the experiences they had, and just sheer luck. And I think of that in a big web, like it is impossible for someone else to replicate my journey. But I can sort of give broad strokes. I want to start by saying that i i don't believe in the concept of like a sole job. Like I don't believe in soulmates and I believe in soul jobs. I think that people have a variety of different skills that can be applicable to a variety of different jobs. And when I think of the things that make me good at computers or being a good engineer, I think well, I'm disciplined, and I'm detail oriented, and I am a self starter when it comes to learning things. I am good at taking large amounts of information and drilling down into them. I can see the bigger picture I asked the right questions, I can talk to people and build a narrative. And those skills have been extremely useful to me in my developer journey. But they would also make me a very good epic fantasy novelist or a good murder detective. It just so happens that I'm doing computers. So if we want to talk about when I started my dev journey, like when I actually was like, I'm going to learn to code that would be 2013. But if we want to talk about all of the foundations that were in place before then there's a lot of stories there. I was always really good and interested in math. When I was really little, I was a, let's say precocious. And my mother would try to keep me engaged and off her back by having me do math problems with chalk like big thick sidewalk chalk would do math problems that way. I was always really good at math in school and doing the advanced programs. I really liked messing around with computer systems. I had some privilege there and that even though I grew up in a rural place in upstate New York, I did have access to a computer in my home and eventually the internet. My parents let me have this older desktop computer, I think. I think it ran windows 3.1 when I first got it, it was The green, the green desktop is what I recall. And Yep, green desktop. And eventually I think I got windows 95, I played a lot of ski free. But I also was in the dos and DOS games, and just messing around on the command line and navigating through that file system and accidentally when the computer was starting smashing the buttons until something happened. And usually what happened is, I would end up in the BIOS, and just messing around with what I found in there, like, I probably overclocked the thing without realizing it. But what I really wanted to do was change the colors of the menu to a ridiculous neon. So just the idea that I could experiment with things, and have that happen. And I really liked reading complex fiction and murder mysteries, and just a whole bunch of things went into that, plus the fact that because I grew up in a rural place, I mean, I did not see my friends after school, I just didn't, my friends all lived on kind of the other side of town, there was a highway separating us. And until I got my driver's license, the only way I could see my friends is if someone's parent was driving someone to and from someplace, we couldn't even bike to each other. It was just a highway, there was no public transit. So after school, I would go home. And that would be it just be me, in this kind of old farmhouse, doing my homework, and having to kind of like there's no study groups for me just by myself doing calculus and whatnot on my bed. And I feel like that kind of laid a foundation and taught me to sadly kind of just rely on myself and beat my head against things in private, which has served me well in my career. But so I have all those things going on leading up to 2013. And I should say that even though I enjoyed math and messing around with computers, I do not have a CS degree. Even though I enjoyed math and puzzles and doing like science fairs and stuff, I never really had a like a sponsor, or like a teacher pushing me that way. Even if my parents encouraged me there, my parents and parents are uncool. You don't want to listen to your parents. Like outside of the household, there just wasn't a lot of social pressure or expectation or encouragement. I specifically remember in high school, my study hall teacher was the school, quote unquote, computer teacher, there was a computer class. And I asked him, like, hey, like, do you think that would be my thing? I'd like to do computer class and he was just like, No, I don't, I don't think it's for you. I don't think it's your kind of a place. So I took Shakespeare instead. And I went and got a film degree. And it's just, you know, you look at your path and how things could have changed how you could have been pushed in a different direction. And that's, that's one of those places where I think if you had been like, you know what, Alice? You're a pain in my ass. But yeah, you should take the computer class come to computer class. That that could have been different for me. You would probably be doing films today. Yeah, I'd be doing film today. I'd be like man computers so boring. Like, yeah, I know how they work. I I have soldered enough. I am going to take my bolex and move into a studio apartment in Hollywood. I'm gonna make it big. The opposite path. But that is to say that yes, I did get a film degree. And I graduated. The recession from 2008 was still going relatively strong and the creative side of things. And creative internships in general like in film or advertising. They're unpaid. You do not get any pay. You just show up and make people coffee and hopefully learn something from them and be a good enough of a lapdog that they might throw, you know, $10 an hour. And even when I graduated, people were not hiring creative interns. They were not taking free labor. It was so bad. And my student loans came into repayment. So I was like, Okay, I have to I have to get a job. And I saw a Craigslist ad for a receptionist position as a part time receptionist position. And I thought, Okay, well, I can do this part time to pay off my student loans while I continue to try to break in to create a field. And I showed up and I interviewed for the receptionist position. But they I just so happened to have HTML CSS on my resume, because I didn't know HTML CSS. Because in high school, I had a live journal. And if you want to make your live journal look cool. You have to know HTML and CSS. So that's, that's why I learned it I also I I also knew like raw HTML from like Middle School, where I was making in Notepad plus, plus The best code editor ever, I was writing just raw HTML h ref strings to make like these static flat web pages about my favorite comic book characters. And I didn't understand what it meant to publish a website. But I knew how to open my notepad plus plus files in Firefox or Netscape locally. So I was like, yeah, look at that I made a website. For some reason, no one else can see it, but I made it. So I did have some of that. And I put it on my resume. And when I went into an interview for this receptionist position, they looked at my resume, and they said, Hey, you have HTML CSS on here? Would you interview for a tech support position we have? So I did. I remember I was it wasn't even really an interview it was they had me do this, this test online. But like, I had to answer questions about like HTML and CSS and like you passed. And the hiring manager brought me into his office and gave me the speech about how he was going to take a chance on me. And so I got a full time tech support position instead, which was great. It was more money. But it also meant that like, I could not spend as much time trying to break into the creative field. And I think that was one of the forks was when I had to decide like, well, am I going to make money now or am I going to try to become a writer or something like that. So I went with the tech support position. And even though it was tech support, and name, I did not get to really do a lot of computer things. I was the only woman on the team. And it was very customer heavy. We were making like websites for golf courses. extremely, extremely nice thing. And by the end of my time there, my position had basically become full time receptionist, because I was so good on the phone, compared to my teammates, and I actually showed up for work, that my manager basically moved me to doing receptionist things instead of tech support things. And I was so bored. I was just so incredibly bored. And this brings us up to 2013. So I'm incredibly bored. Being a receptionist, I had moved to Portland at this time, by train, which was fantastic. I'd like basically nothing to my name. So I, I bought a train ticket to Portland. I was in Texas at the time, and I put all my belongings in two boxes, and I had a bike and I got on a train. And three days later I was in Portland, it was great. And so I was in this little studio apartment in Portland, you being a receptionist for this company in Texas, and just utterly bored out of my mind and wanting to do more with computers and wanting to understand more about how computers worked. And so this is one of the points where it comes down to like privilege and luck because I had the privilege of having this incredibly boring job that was still paying my bills. And I had the luck that there was this brand new website, incredibly cutting edge called Coursera. Incredibly new, no one had heard of it. And Coursera posited. What if, what if you could do college classes online. I was like, Wow, that sounds swell. Nice. I think it was the first year of Coursera operating. And there was this class that was happening for the first time through Rice University, I believe. And it was an intro to programming class and I had tried to do programming like Ruby. And it just didn't stick for me. It didn't feel like I was talking to a computer. I felt like I was talking to a five year old and I didn't like it. But this intro programming class was teaching people Python. And it was supposed to be an eight week class, where you learn how to write Python and you make games of increasing difficulties. So the first week you make a text base, rock, paper, scissors game, by the last week you were making asteroids with image assets and sound effects. And it was very cool. It was incredibly intense. And so I did this class at night. And it was basically a part time job in and of itself. And at the time, I had no idea that a tech community existed. I didn't know about meetups, I didn't know about Stack Overflow. I was just trying to learn to program from this class, beating my head against it the way I always had back in my rural farmhouse high school days. And that's how I learned and I this must have been this was at the end of 2012. I got my first job in doing like programming in 2013. But in 2012 I was taking this class I specifically remember that because I was incredibly hung up on this one problem. And I was working on it like late at night. And I decided to take a walk down to a nearby, like bar and see who had won the presidential election because I didn't have cable. And so I went for a walk, I saw that Obama had won a second term. And then I came back and figured out what my programming problems. So just do that don't don't do it now that, you know, it didn't work so well for me in 2016. But in 2012, that worked pretty well. And so I was learning that and this is it's difficult to tell people to take that specific step, because now you know, eight years later, Coursera is paid. It's a, it's if you want to, if you want to take the exact class that I took, first of all, it's now split into two different classes. And if you want to submit homework or get a certificate of completion, you have to pay money, I think it's $50 per class. So right out the gate, if you want to do what I did, you need $100. And also all that time. So that didn't quite work. But when I did it, it was completely free. And I ended up in early 2013, starting to interview for places, and I started interviewing for places because at my quote unquote tech support job, where I was supposed to be doing tech support, but was really a receptionist. In addition to being receptionist, I had basically one tech support job, which was to help customers, I filter out spam email, because we provided customers with email addresses and one of our customers, someone did not like him. And or he did this to himself. But his email inbox ended up getting flooded with a lot of emails, he didn't want to get, let's say, from certain types of websites. And what he would do is every one of those emails he got, he would just forward to our tech support email individually. And, and every time he did that, he would make a new ticket. So I'd be going in the system and be like, Oh, man, look at all these emails from like, like, Girls Gone Wild calm, like fantastic. And what I would have to do is I would have to collect each of the email addresses that they were originating from, and make them into a list and hand them off to someone else in tech support to put them in a block list. And this to me seemed inefficient. I was like, if I'm the one collecting the emails, why don't I also go and block them? And I talked to the guy who was doing this work. I was like, hey, like, what do you actually do when you blocked these emails? He says, Oh, I SSH into this mail server, and I add them to this list. And I said, that sounds like something that I can do I want to do that. And he goes, Okay, yeah, but you you need to ask our manager for permission to have access to that server. I was like, Okay. So I put in a formal request with our manager, you get access to the mail server explaining, you know, if I'm the one collecting these email addresses, why don't I also block them as well, that makes more sense. It's more efficient. And I didn't hear back from him, like weeks. And he wasn't responding to like my follow ups. And then one day, I got a call. And it was there was a team meeting happening, which never happened. And just again, to put it in context, I was in Portland, they were all still in Texas. So they were all in a room together. And I was on this line. And my managers opened up going, Alice, why do you need access to this server? I was like, Okay, so then I explained again, to the phone, why I thought it would be best if I had access to the server, and he just seemed very exasperated about it. And then the meeting ended and I didn't hear anything else. until about two weeks later, I noticed that there weren't any email tickets, there weren't any blocklist tickets. And I went and looked at my other co workers queues and they had started scooping them up, because my manager had given everyone access to that server without telling me and so everyone else is just taking the work that I was doing already and adding them to the blacklist because suddenly everyone had access, even though I was the person that had to justify needing access. And that's when I was like, You know what, screw this. I am going to start applying places I've been learning Python, I'm going to go do that. So I did, I started putting out resumes and I applied to a company called New Relic. And New Relic at the time, had a relatively new engineering office in Portland. I was one floor and the US Bank core building, which we call big pink. And I didn't know what to expect. I applied to a tech support position. And I applied completely cold I knew no one there. And again, I was not involved in any meetups or anything. I didn't even really know what New Relic did and this was sort of a bridge for me between this type of tech support have been doing for these golf course customers and stepping my foot into this actual tech for tech companies type of world. And I showed up and I was like trying to wear my best interview clothes. It was like a button down that my grandmother had bought me in like middle school and dress pants I had gotten from a thrift store. And I remember preparing for this interview, I been talking to my friends and we were like, oh, man, we you know, you're you have like a big important interview. What do people look like when they go to these big important interviews? So we went out to an outlet store? I saw I was like, what, what is the fanciest thing I could think of we went to an outlet store and I bought this leather. I'm like purse, like this big purse that you would think like a lawyer would carry. Then I was like, Okay, yeah, I'll get this big leather purse. And I'll get this like fo leather bound resume holder. And I'll put that in my purse. And I'll show up in my buttoned down. And I'll just be like, super professional for this professional interview, you know, just took the bus down to the office the day before just to make sure I really knew where it was. And I show up. And, of course, first of all, it's a tech office. And it was my first introduction to like a quote unquote, West toke West Coast tech office, where everything was very bright colors. And people were in hoodies. And I was very overdressed. And also everyone was very men. And then that was it was I was not expecting it. It was just, I thought I was going to be showing up and it was going to be like, like they had rented a corner of some floor and you have a shared bathroom situation or something is like no, they had this entire floor. They had a snack wall with Oreos. I don't even get Oreos growing up. We had like whatever Sam's Club Oreos words like no real Oreos, and chips. And they took me out to lunch. For my interview. It was wild to me. It was so wild that when they told me I got the job, I almost didn't take it. Because I was convinced that I didn't belong there. And I was going to basically burn a bridge because the people I worked with the Texas, they were kind of reactive that way I was if I put in my two weeks notice, and I burn that bridge, I was going to go work for New Relic. And after three months, they were going to realize that I didn't know what the hell I was doing. And they were going to fire me and then I was going to have no job. And I, I seriously, I almost didn't take it, I was debating it, I was like this is a risk, I should stay where it's safe. I'm not ready. I did take the job. And it was like the most money I had ever expected to ever make. Because again, I was coming from like a creative background. And it was just like even even tech support for this tech company was more money than I ever thought I'd be able to accomplish. And I showed up on my first day and they were like, here, here's a computer and a monitor for you. You get to unwrap them like this is your job now. And man that was just wild to me. And while at New Relic, and then my other companies I started, I continued basically this trend that I had started at my previous job, which was I have the job I do during the day to get money. And then I have the other job that I'm trying to get that I study for at night. Because now that I've had a taste of programming, I between getting the taste of programming, and the like two times I had signed into that mail server and use nano to update the block list. I was like there is something more here that I want to understand. And I wanted to get further and further down the stack, quote unquote closer to the metal and quo and I just wanted to understand how computers worked out how these machines worked. And I would have these jobs during the day where I was doing things that I was more or less proficient in and then at night, I would be trying to take the next step and continue learning. So while I was doing tech support at New Relic, so I was tech support for the Python agent, the Ruby agent, eventually the node agent and also kind of like i think i think there's just those three, we might have also had a server agent in there at some point. But while I was doing that during the day at night, I was continuing to learn how to program and I was lucky here and that the lead programmer on the Python agent, his name is Graham Dumbleton. He lives in Australia, which meant that he was working during the day during my evenings so I could annoy him at night. Graham is fantastic. He, I have not been able to work with him in some time. But he was he was a fantastic person to work for. He was very just straightforward. And it felt like he put challenges in front of you. And if you actually did them, then you'd be like, Oh, yeah, okay, you're worth talking to. And I'm all about that. And it was like, Yes, I will, I will climb that wall. It was fantastic. So I would talk to him in the evenings. And he would point me at different Python problems. And he would say, you know, usually I would be, this is Graham, usually, I would be the one trying to fix this customer problem or reproduce it, why don't you take a crack at that, which led me to try to figure out how to get a VM set up, which I was terrible at. And, and I got better. And eventually, there was an opening on the Python agent team. And Graham told me that I should interview for it. Uh, so I put my name in the hat. And they were like, yeah, we'll interview you. And then I got the flu. I got the flu so bad. I was in bed for weeks. People tell you like, Oh, yeah, I had the flu. And they're like walking around. Yeah, they don't have the flu. They do not. The flu is when you cannot stand. You feel like death. And I was that way for several weeks. And in the meantime, excuse me, I'm getting these emails from the hiring manager being like, Hey, we can't make these other candidates. Wait, you know, are you going to come in and interview was so stressful? I finally dragged myself in, barely recovered from the flu and did a full range of technicals, because they had never had a tech support person move into engineering before. I was very much a guinea pig. And so I did all these technical interviews of like, basically, like, what what you would consider a normal amount of whites whiteboarding interviews these days, but it was my first time really going through that process where I was like, write this code, solve this problem design this system, while I was recovering from the flu. And I got through the day, but I did not get the job. Not surprisingly, they said I would make a good junior developer, but they needed some more mid level, which is absolutely fine. But what that did for me, is it signaled to other engineering managers at New Relic, that I was capable of doing a developer job. And so very quickly, I was approached by multiple engineering managers who wanted me to join their team, I had other agent openings looking for junior engineers, the operations team was interested in having me and then there was also an internal tools team that was interested in having me. And it took me a while to like, figure out what I wanted to do. And I decided I wanted to go to the internal tools team, because I wanted to continue getting better at programming. And, and really have the chance to do it during the day and not have this extreme switch where so though the one of the openings was like I think the Ruby agent, or the node agent, and I knew Python, I was like, I don't want to go do Ruby when I'm still getting a grasp on Python. And I don't want to go do server provisioning, that doesn't have any programming involved. So to this internal tools team. And that was another great step in the right direction, because the internal tools team owned the internal QA data center for New Relic, which was a couple of racks of servers that we ran things like get up enterprise and Jenkins on and the QA environment. And the engineer on our team, who handled the operations for those racks, was going on paternity leave. And my manager asked me, they said, Hey, you have expressed interest in doing server stuff. Would you like to take over this internal data center, while your teammate is out on paternity leave? And I was like, heck, yes. Which meant that I had about a month to learn Linux and networking. And so again, I turned to the free resources that I could find. And the operations engineer was fantastic. It's, I have not had the benefit of having a lot of mentors. Like I haven't had multi year relationships with mentors who take me under their wing, but I have had a few instances of someone really helping me out and showing me the ropes. And this is one of them. His name is Dan Dan young. He was absolutely great to me. And he put up with so many excited puppy questions. I remember so the data center was was local to us. It was in a bank. And it was the kind of this this it felt very cool to me. Everything was extremely cool to me like, Oh, yeah, there's a bank, but we go through this secret door on the side and we go up and These murders stairs in a murder elevator. And then there's a data center. And you have to scan your hand and go into the data. Like you have to be registered and have a key card. It was so cool. And he put up with a lot of enthusiasm from me. Oh, man, I feel so bad for him in retrospect, because I, there was a day when we had multiple hardware failures. And we had to replace a motherboard. And I was like, Yeah, good to replace the motherboard, I was so stoked, I was just just imagine I like any amount of over the top puppy, I'd like Oh, oh, I have to put a motherboard, we're taking the server out of the rack and opening it and I get to touch the inside. And when you're replacing a motherboard, we were also replacing the heat sinks. So you get like the, like the carbon gel that you have to put under the heat sinks to attach it and I was like, Oh, I'm going to make the most efficient pattern. With my heat sink gel. I was I was completely insufferable. And while I was doing that, during the day, I was also doing I was learning networking at night. There was a I tried to look through this recently. And I don't think it exists anymore. But Juniper, for some reason, had a course, like just like, like an interactive thing online that taught you about networking. So it was like I knew I learned about hubs and switches and and the OSI model and stuff from this website. So I was trying to stuff that into my head at night, while learning how to do hardware repair during the day. And I was having a great time. But again, it was like I had the time to do it. And I was doing basically one and a half jobs. And then my coworker went on maternity leave for a month. And I was in control of these racks. And it was so so cool to me. But I came to learn that something that had been in the hopper was migrating the data center, from this bank facility to a larger colo that was like 10 blocks away that was like the more official like main internet exchange data center location. And my coworker was going to be returning on the day, the move happened. So I had to take care of all of the foundation work and making sure everything was good to go. And I reached out to all the stakeholders involved internally and I got all the spreadsheets filled out. And I had a plan for like when things were going to be closed down and things. And then about a week before the data center move was set to happen. I was like, Okay, last thing on my list is just to go, you know, set a time with our data center people. So they know that's when we'll be you're taking out the servers. And I went to the data center and several things went wrong at once. One of them is that the first time I had been introduced to the data center manager had been in the data center. So I had earplugs in and the servers were going and he was facing away from me. And I thought his name was Randall. I went to the data center. And I went to like their admin office. And here's how the conversation went. I came in, he came out of his office and said, Alice, how are you doing? And I said, Hi, Randall. And he went, What? It was like, Oh, you're your name's not Randall. And he's like, no, and I'm like, I am so sorry. I just came here to make sure that we're all on the same page for the data center move and he's when one data center move. Well, we're taking our survey, she's like, You're, you're ending being our customer. It's like, Ah, oh, no. Can you imagine someone comes in, insults you to their face, because they don't know your name. And then it's like, oh, by the way, you're losing money this month, because we're not going to be a customer anymore. I feel so bad for him. I didn't know what I thought someone else with more authority than me had called it because like, I wasn't in charge of that contract. I wasn't the one paying the bills. I thought someone else had made that phone call and I was just the Lackey. No, I got to break that news while getting his name wrong. So that was great. I will carry that with me to the day I die. The look on that poor person's face.

Tim Bourguignon 34:48
Well, at least you didn't feel bad about it beforehand.

Alice Goldfuss 34:52
Yeah, not beforehand, because I thought everything was fine. Yeah, I definitely was. I wasn't in the murder elevator being like, yeah, I'm gonna get his name wrong. And then I'm gonna slap him in the face. It was in the moment. So we both got hurt. So yes, the data center move happened. And at the time New Relic was trying to retrofit change their operations team into an SRP team. And I was asked to come join a new essary team. And based on just my work with the data center, and I said yes, and I became the first woman essary at New Relic, moving over there. And this this happened. The story that I was telling it happened in a relatively quick amount of time, I joined New Relic tech support in I believe, June of 2013. I or something, were somewhere around there, mid mid 2013. I became a software engineer by like, March or April of 2014. I did the data center move in like October of 2014. And then I got the job offer to be an SRP in December. So by January 1 of 2015, I was an SRP. So I went from tech support to SRP in like 18 months. Mm hmm. Not bad at all. Not bad at all. And yeah, i. So yeah, I became an SRE. And but I still wasn't satisfied, I was being an SRE. But I was part of the team that handled a lot of internal communications. And for a while, we were trying to address instability. So this is, this, by the way, is not unique to New Relic, this is something every tech company goes through, they go through these growing pains, where they're like expanding and contracting and trying to move fast and then trying to move slow. And we were just going through one of those growing pains. And one of the fixes that was proposed was having a change approval board. Which is not a new idea. But typically, a change approval board is a board. It's a group of people, where you have to go in front of them or submit a report saying this is what I want to deploy. And when, and they will sign off on it. Well, the change approval board was me for length of time. So I was a relatively new essary having to tell principal engineers, no, you can't deploy, or like, explain to me why you need to do this over lunch. And I feel like I'm getting very incredibly detailed with my entire story. I don't have a lot of blinking themes that I'm talking about here. But I will say that it got me to a point where I did a lot of incident response at New Relic. And incident response, the idea of the incident command system, where you have someone who is sort of calling the shots on how to address an outage. And then they have a lot of people supporting them, they have the people diving in on the technical side to actually apply fixes. They have people handling logistics, they have people handling communications and customer interactions. And then you have the person that's kind of directing this all. And I guess the idea is supposed to be kind of like a military top down structure where you're like a general and you have final say, I got very, very good at doing that role. And one of the reasons I think that I was so good at that role, is because of my film degree. Because the film program that I went to was very hands on vocational it wasn't like, you know, watch movies for four years and write reports It was no, you're going to be making films, and you need 20 other people to do your homework because you all have different roles on set. And the set role that I ended up doing most proficiently, was being the assistant director. And the assistant director is the person the director is in charge of everything in front of the camera. So cinematography, the actors, the sets, the design, the aesthetic of the whole thing that's in the directors realm. The assistant director is everything behind the camera. So making sure equipment is staged properly, making sure that we have food, making sure the actors show up on time making sure the director doesn't take too long, high fiving, the cinematographer over a super great shot they had the ad keeps everyone on time. And make sure if you have like if people are under guild rules, making sure we take the appropriate amount of breaks and we don't work too late and that kind of a thing. And you have to be pretty good at being a taskmaster, which in college who the heck wants to be the taskmaster and who wants to be friends with the taskmaster? basically no one but but I got the job done. And because I had that experience of coordinating, possibly literal fires on set, you know if you find out that a light is a little bit too close to a plant, there's there's some problems there. I got very good at navigating these fires in the Rapid Response and talking to a wide group of people and keeping things in my head, that translated very well to being an incident, responder. And by the end of my time at New Relic, not only was I an embedded essary on the team owning the entire metrics processing pipeline, but I was also on this small sort of, I guess, elite would be the word, it's an annoying word, this small group of people who are responsible for large incident response. So you know, oh, like a button doesn't work on the website, whatever the team can handle that, but Oh, hey, the data center is down. That's when we would get called in. And I did that fairly frequently. I mean, we had like, we had some gnarly outages, data centers going offline for six hours, the Amazon s3 outage that happened. I don't know if you remember that one. My my favorite detail from the Amazon s3 outage was that the image assets used for the Amazon status web page were stored in s3. So they couldn't update their own status web page to say that s3 was down because s3 was down. So yeah, I did that one. But it got to the point where I, I felt like I was in a rut again. And I wasn't getting what I wanted out of my job, I had found excuses, to investigate kernel crashes and learn how to do that, and mess around and Linux more. But I was starting to get bored again, like you would think doing. I wasn't sorry, at this point, I was giving conference talks and people, my Twitter was getting popular, which being known for your Twitter is like being known for like your hat or something very unfortunate. So it's no, it's like the least thing you want to be known for. But all this stuff was happening, but I was still very bored. So I started to learn C at night, I got the Knr book, and I started teaching myself C. And I just wanted to get deeper down. One of the reasons why I owned that data center. And one of the reasons why I became an SRS because it was getting me further and further down the stack, and closer and closer to the metal. But it still wasn't satisfying, because I was owning these things. And I was fixing these things. But I wasn't really building or understanding these things. The way I wanted to figuring out kernel crashes was the closest I got, but it wasn't something that my job really needed from me. We were distributed large scale systems, if a server crashes, who the hell cares? I wanted to know why that server crashed, but it didn't really matter. So I started learning C and looking elsewhere. And that's how I ended up at GitHub. I joined the GitHub team that owned the GLB, that GitHub load balancer, which was written in house and parts of which were written in C because I wanted to specifically work on that project and do more systems work. And I did, I did get to do more systems work. And I did get to work on GI bill, which was great. But then there was a reorg after about six months of my time there. And so I joined the somewhat newly developed, but they were already well in place before I got there, the team that owned the Kubernetes platform underneath GitHub. And I had done container work before at New Relic. It was just one of the many things that I had been doing because New Relic moved to New Relic was a very early adopter of Docker. extremely early there, there was nothing nothing like a container platform, or even a container deployment system. When New Relic started doing Docker, we actually built our own, called Centurion. And we were just patching things together. But by the time I got to GitHub Kubernetes was taking over and eating the world. And so I worked on Kubernetes on this team, and I also did kernel work, more kernel crash analysis. I and and still doing things on my own time, because when I, I the team that owned GLB got reorg and dissolved and I lost access to that work. Sorry, getting bored again. So I started doing more and more online classes, doing data structures and algorithms for fun doing c++ for fun doing assembly for fun. And I got into capture the flags. Which if you are a viewer listening and you don't know what a capture the flag is, it is a game. It's based on a real life game where groups of people will try to capture or steal a flag or a T shirt or scarf or something and someone else's territory. But there's also a computer version. In the information security slash cyber security realm of things there are CTF, they're kind of like computer eSports where you have teams of people and you have a professional level. where people are like flown in. And there's a group of people trying to protect a computer or a network. And there's a group of people trying to hack into it to get quote unquote, the flag, which could be a text file or an image or an email address, or what have you. I like to do see ETFs that are not as competitive, it's just me versus the computer. It's I'm either SSH into a server that has puzzles for me to figure out, or I'm doing a game in the browser that maybe I have to bring up a VM to do. But I started doing these CTS. And they were incredibly engaging, especially the reverse engineering ones, which is taking a binary and breaking it down into its assembly instructions to try and find vulnerabilities like buffer overflows. So you can unlock the binary, get the password, make it do something it's not supposed to do. I like those. And I like networking ones. And they're incredibly fun. And I found them so fun, that I started streaming them on Twitch, which is the game streaming platform. I'm going to say this, so people don't know what Twitch is. But you might not I didn't know. I was not into twitch before I started doing this. But it seemed like the best place to do it. And so I had people watching me do it. And it became sort of a team thing. Because ctfs are best done with a team because different people have different strengths and different weaknesses. I, for example, am terrible at browser attacks, which is kind of funny, because those are usually the entry level attacks that people do is they do cross site scripting or JavaScript or so they I'm terrible at JavaScript, I'm bad at it, to give me assembly in a binary any day, but JavaScript is terrible. But people will watch the streams and they'll be very helpful. And then we'll we'll get through it together. And that was really rewarding. Because not only am I playing a game with other people, but other people are seeing that CTS aren't that scary. And it's not just a bunch of people and hoodies being paid in suitcases of cash to break into your bank account. It's you know, it's a game you could play it's you're learning more things about computers and doing clever puzzles with computers. And I started doing that as well. And this is I guess, the point where I kind of trail off a bit because I feel like I feel like I lost, I lost the lead. That's that is sort of how I got in to development. I I guess the theme is just that I, I I got bored. So I did other things in the evening. And then those other things in the evening became my job. And it was very common for me to see something on the job and go, that is so cool. But I don't have a CS degree, I will never be able to do that. And but you know, since I know I'm never going to be able to do it professionally. It's fine if I try to figure out how to do it for fun, because I'm so stupid. And then that eventually ends up being my job. That is just something that has happened to me multiple times, where I I start to investigate something for fun, because I'll never actually be able to do it for real. And then suddenly, I'm employed doing that thing. So that that's the most I've had.

Tim Bourguignon 48:10
I have a giant smile on my face. It's been it's been a roller coaster listening to your story. It sounds very reflected upon, is it something you've told many times already?

Alice Goldfuss 48:23
I've told it somewhat frequently, not the entire story, not the the word garbage you just got there. I have not told that entire thing. But I've definitely had people ask me, how did you get into tech? How did you get started? What did you do? How did you get here? You're so young, how is that possible? What are you in the wrong conference room, whatever. And so I have gotten very, I have relayed various versions of this before but never like on a recording. I definitely have imposter syndrome. And part of that stems from the fact that I have never been the kind of person who was super interested in building things. I've never been I've never been a big side projects person because a I have an ops background. So I know if you build something, you have to maintain it. No, thank you. But also be I'm just kind of like that, that thing I want to build probably already exists. And I can just use what already exists. But what I do like to do is figure out how things work. Figure out down to the electron. Why that computer is doing what it did, because I really want to understand it. I want to say with absolute certainty. Yes, this is happening. For this reason, I can back it up. I know what's happening. And because I know how it works now I can predict how it will work in the future, which allows me to make better choices and not having a CS degree. And having that I need to know how this works. point of view has actually been kind of helpful for me. Not having a CS degree has definitely been bad for my imposter syndrome and has definitely You know, I got a bit of a later start than I might have had I had a CS degree. But it also meant that I didn't know when things were supposed to be hard. And kernel crashes, I think is a is a great illustration of this. Because I, we had these hosts that were crashing, and I technically on to the hardware for that team, I needed to figure out how they were crashing. And I just assumed that every other engineer I was working with knew exactly how the Linux kernel worked, and how to analyze a crash. And they could do this in their sleep, and they just weren't, because it was just an obvious thing that they had learned in like to see us one on one. And so I, I was like, Oh man, I am the only person on this team in this entire company who doesn't know how kernels work, or how to analyze a kernel crash, I need to figure this out. And I started it, we had an engineering off site, and a an engineering off site. And there was this one server that kept crashing, and I was up at like, 1am I couldn't sleep anyway, there was like parties happening. And I was on this website that was teaching me how to do a kernel crash analysis. And I was learning how to analyze kernel crashes from the server log, because the next day, I fully expect to have conversations with people where they were like, Oh, I noticed this server crashed. Why? And they would be able to figure it out. But I needed to be able to figure it out. So I was teaching myself like, Oh, yeah, okay, these, these bits are flipped that maps to this user. And like, this is what this is what that register means. This is what a register is like, I'm going to figure out like I, I learned all of that frantically, because I thought everyone else already knew. And I didn't know that it was something most people in programming don't encounter. And a lot of people don't know how to do. And what ended up happening is that within a week or so, because I had this, I came in as like, Oh, it's still crashing. And I was like yeah, I analyzed the kernel crash. And it led me to this hardware error. And then it's the PCI bus. And because I did that, I became known at New Relic as the person who knew how to analyze kernel crashes. I actually had another engineering team asked me to teach them how to analyze kernel crashes and core dumps. Which is he was it was an indication was like, Oh, wait, you, you don't know how to do that. Like, you're like the lead engineer on an agent team. How do you not know how to do that didn't wasn't this a, like a freshman level class for you. And that that has happened to me multiple times before is me just being in kind of this hole. And going everyone else knows this, but me I need to figure it out. And then it turns out that it's a difficult thing that other people don't know how to do. But it seems to work for you. It helps you dig deeper and not be bored anymore. And then get passionate about something else and learn even more. Yeah, basically, I just loads being bored.

Tim Bourguignon 53:05
Does a bit painful to hear that you had to go through all this, but really fun anyway, ah, as long as as long as my pain is entertaining, then it was all worth it. So any plans to apply at AMD or Intel to go further down the stack?

Alice Goldfuss 53:22
Um, I have considered it a bit I because I'm in Portland, I am actually near Intel. But you have to go in person. And I, I don't a I have a job now that I absolutely love. I'm very satisfied with it. And I don't want to leave it anytime soon. I'm not bored. But also be I actually don't think I would qualify for an Intel job. Because I don't have a CS degree. I don't have that formal education. I'm just a tinkerer. And so I don't think I would be up to their standards. But I would certainly love to like chat with people at Intel and learn more from them. I love learning lower level systems, things that are very cool. I have a habit of in Portland, it gets very dreary and dark during the winter. Like we don't get a lot of sunlight because of our latitude. And it's just like rainy all the time. So I have a tradition of doing a course during the winter just to pass the time. And one of the online classes I did a couple of years ago, I believe it was called the elements of computing or something like that, where you build a CPU from scratch logically starting with logic gates. So the first step is you're given a NAND gate and then you know, you have to make an Al u and then a CPU and come up with the peripherals and stuff which, again, is probably something people learn in their CS degrees, but it's something that I learned for fun on the side and I thought it was fantastic. Yes, I learned this during my CS degree, but I retained probably 10% of it, or 10% of what you retain. I did it because I wanted to do it. I was I was hungry for that knowledge.

Tim Bourguignon 55:00
That makes a giant difference. Oh, it was so cool listening to the story. Thank you very much. Um, you know what? It's evening for me. So it was a bedtime story?

Alice Goldfuss 55:09
Oh, yes, it's a horrifying one.

Tim Bourguignon 55:12
No, it was really cool. A really cool one. And let's end this on a on a funny note, you probably got many, many advice throughout your careers, what is the most stupid piece of advice you ever, ever got?

Alice Goldfuss 55:25
I think it's not a specific piece of advice that I can trace to like one person. But I have repeatedly gotten different flavors of advice that's like, Hey, you know, you tweet too much. Or, you know, you shouldn't, you shouldn't speak at so many conferences. And I disagree with this extremely, because there is your job. And then there is your career. And there is your greater community and your greater network. And being on Twitter and going to conferences was fantastic for my career and my general mental health, because so much of my career has been quite lonely, being the only person who looks like me on a team or in a department. And the first place I met other women in Ops, sorry, systems engineering was at conferences and on Twitter. And if I didn't have those connections, I don't know if I would have continued for as long as I had. And also having those connections, got me jobs got me articles got me things like this podcast. And so if someone tells you to like lay off your public presence, I would take that with a grain of salt. Like you can certainly split up your time better. Like Don't, don't tweet all the time during the day when you should clearly be working, tweet at night, tweet on the weekends, but don't abandon that community because that community is going to be there for you long after your job is. So that that would be probably the worst advice I've gotten just sort of in general.

Tim Bourguignon 56:54
Amen for communities. I totally agree. Thank you very much. So Alice, where would be the best place to continue this discussion with you or hear more about your stories?

Alice Goldfuss 57:09
Oh, well, first of all, I'm available underneath everyone's beds at night.

Tim Bourguignon 57:15
Don't say this! I'm going to bed in a minute...

Alice Goldfuss 57:19
Let me crawl out and talk to you about DevOps! I guess the best place to find me is Twitter. I will say though my Twitter account. I I do not have a like professional brand Twitter account, you'd think I would but I have been staunchly against a Twitter is my personal space. And yes, sometimes I talk about tech. But also I talk about things that are important to me. social causes. I don't know that shows I'm watching books I'm reading. But that that is the place where people can find all of this nonsense. So my Twitter handle is just my name Alice gold first. I currently have a Halloween name malas school plus, of course, I adopt that every year without fail. So yeah, that's probably the best place to find me. I also have a blog, which is linked to on my Twitter account, which is Alice goldfish calm. Because in addition to being annoying, I have actually put out some long longer works on things that people seem to enjoy. I have a popular blog post called How to get into SRP that people have found very helpful. And it's, it's basically, if you didn't find this podcast, particularly helpful, you might find that blog post because I actually, I took all of the things and all of the advice I usually give people and I collated it into this one long blog post. And there's a section at the end with a bunch of free resources. Because again, when I started my journey, it was I didn't have money, I was doing everything I could with no money. And I think that everyone else should have that same opportunity. So there's a bunch of free resources available at the end of that blog post to help people get a leg up the way I had a leg up.

Tim Bourguignon 59:06
And not to forget the twitch channel.

Alice Goldfuss 59:08
Oh, yeah, the twitch channel. Sure. I my twitch handle is not my name. My twitch handle is "bletchleypunk", which is a play on Bletchley Park, which is an incredible place in England. The the home of the code, the code crackers of world war two and the Enigma machine were at Bletchley Park so my handle on twitch is actually punk because I was feeling extremely clever that day. I do not. I used to stream weekly. I have not been streaming weekly this year, because it's 2020 and I'm basically just trying to survive. But I do have all of my old streams on they're in archive, so you can watch them. I do see ETFs but I also drink a lot of tea and discuss tea. So if you like tea or you like computers or you like both, I would check them.

Tim Bourguignon 1:00
:01 Alice, thank you very, very much.

Alice Goldfuss 1:00
:03 Thank you.

Tim Bourguignon 1:00
:04 And this has been another episode of developer's journey. We will see each other next week, bye. All right, this is Tim from a different time and space with a few comments to make. First, get the most of these developer's journey by subscribing to the podcast with the app of your choice, and get the new episodes automagically, right when the air. The podcast is available on all major platforms. Then, visit our website to find the show notes with all the links mentioned by our guests, the advices they gave us, their book, references and so on. And while you're there, use the comments to continue the discussion with our guests or with me, or reach out on Twitter or LinkedIn. Then a big big THANK YOU to the generous Patreon donors that help me pay the hosting bills. If you have a few coins to spare, please consider a small monthly donation. Every pledge, however small counts. Finally, please do someone a favor, tell them about the show today and help them on their journey.