#72 Katrina Owen, one little piece at a time
Transcript
⚠ The following transcript was automatically generated.
❤ Help us out, Submit
a pull-request to correct potential mistakes
Katrina Owen 0:00
While I was at that conference, two different people on two different occasions told me, Katrina, you should give a talk. I was like, No, no, no, no, I should not give a talk. I'm definitely not someone who should give a talk. So no. And one of them sort of let it slide and the other person said, Listen, giving a talk is really, really hard. And it's really, really worth it.
Katrina Owen 0:26
Just think about it.
Tim Bourguignon 0:34
Hello, and welcome to developer's journey, the podcast shining a light on Developers Live from all over the world. My name is Tim Bourguignon. And today I received Katrina. Oh, when Katrina is an ecosystem engineer at GitHub, she accidentally became a developer while pursuing a degree in molecular biology. When programming our focus is on automation, workflow, optimization, and refactoring, she works primarily in go and Ruby contributes to several open source projects, and its creator of exoticism.io, a platform for code practice and programming mentorship. Katrina, welcome to dev journey. Thanks so much, Tim, I have to stop right there. What's that story behind this accidental start I just mentioned.
Katrina Owen 1:24
So it's kind of an odd story, which is maybe the best kind I came from my background is very much not technical. And I mean, that not just me, but my whole family, I grew up without technology around me, we didn't have a radio, we didn't have a television. Um, my, my parents were very much of the, you know, we had books at home, but they were always about astrology and eaching and, you know, medicinal plants and that sort of thing. So I was never really exposed to things like rational thought, the scientific method, you know, logical decision making, that sort of thing. So, I, I sort of learned from very early on that the way to live life is to take you know, every day as it comes and go with the flow and kind of, there were no decisions to be made, I was just met with opportunities, which I chose to take or not, so I kind of lived all of my life accidentally ended up. I did music in high school, even though I'm not very good at that. I moved to France, kind of by accident, studied physical theater, didn't like that much. So I ended up doing circus for a few years. got injured, also wasn't very good at acrobatics. Anyway, a whole bunch of things. I ended up in the south of France as an actress on on stage, I was working at the National Theatre of nice, and I hated my life. I really did not like my life at this point. I was 25 years old. And I was always, always struggling. And at one point, I realized that it doesn't have to be that way. I could go get a regular job. And I and I started thinking like, what does a regular job mean? And I was like, well, I kind of like science, I've always liked, you know, reading about how things were invented how things were discovered how the world fits together. And even though this wasn't something that was actively encouraged by my family, and I was able to go read about these things. So I decided I'm going to go to university. And to do that, I had to go take some exams in math and physics and chemistry to even get accepted to university. So I did that I took some exams passed did really well. And I applied to two university programs, one in aerospace engineering, and one in molecular biology and biochemistry. And I got accepted to both. So at this point, I was kind of flipping a coin. And I didn't really care what science I ended up studying, it just had to be something kind of normal, something useful. So I ended up mostly kind of by accident, choosing biology, I think there were two main reasons why I ended up in biology rather than aerospace. The first is that there were 400 students in the first year of aerospace. And there were two women, I think, in the cohort. And I didn't want to be one of two. And the second was that I had only been doing math seriously at that point for about 18 months. And everyone else who was doing aerospace had been doing math since they were like five at a very high level. So I figured biology is probably a better fit, which it turned out not necessarily to be It was fun. It was interesting. But it wasn't necessarily I discovered sort of as I was studying that I really liked the applied part of science the the way that you use science to To solve problems, I'm not the type of person who would make a good theoretical physicist or whatever. So anyway, I went to college or university because this was in Norway. And I got my first computer, which was kind of awesome. I put Linux on it because there was an install Fest, sort of the first week of university, I started learning how to play around with bash, I took a calculus class where we had to do programming, and mathematically, it was the most amazing thing ever, they had to kick me out of the computer lab at night, close. It was super fun, I got sucked into the the logic puzzles side of figuring out, you know how things fit together. And I remember distinctly the time where I solved I wrote this program in Mathematica to solve this calculus problem. And I got, like all of these, you know, decimal points long, this whole page of decimal points where I expected get all zeros. But it was like zero point, lots of little tiny, you know, lots of zeros, and then a little bit here and there, which was the first time I learned about floating point
Katrina Owen 6:10
arithmetic.
Katrina Owen 6:12
It was amazing. So anyway, after after university, or throughout University, at the very end of my studies, I had some time left over where I could take whatever credits I wanted. So I took all programming classes. And then I started picking up, I guess, piecework, you might say, a little jobs for friends, who were willing to pay me to fix little things. And I just kind of stumbled farther and farther into programming until I was being paid to do it full time.
Tim Bourguignon 6:40
Wow. That's a slippery slope.
Katrina Owen 6:43
But that's nice, slippery slope. It's a good slip. Yeah, that's
Tim Bourguignon 6:46
a good slip. There's something funny, she said, he said, You. Among other things, you preferred biology because it was more like a applied part of science, which, in my opinion, is absolutely what we're doing in programming. Yeah, there is a very fringe that is in theory, but the major risk to us is just tinkering with stuff, seeing how it works.
Katrina Owen 7:11
Exactly, which is why I think programming turned out to be such a good fit, whereas computer science would not have been a very good fit for me probably, did you
Tim Bourguignon 7:18
realize this while doing this, this short feedback and try out things was part of the fun
Katrina Owen 7:25
there. I don't think I thought about it very consciously, I did realize while studying biology that the the classes that I hated the most were all about just memorizing evolution happened this way. And therefore it like lates in this way, and adds this molecule and then some other, you know, enzyme comes and cuts it off. And I'm like, why is it like this? Well, because evolution, there's no good reason, it just happened that way. And therefore, we have to, you know, memorize 100 steps that totally don't necessarily make sense. They just are that way, like I didn't really enjoy that I really enjoyed when it was taking things down to first principles and saying, Well, why, you know, how can we solve a problem using what we know? Do you manage to, to
Tim Bourguignon 8:08
find map this to our to computer science problems? Did you manage to get those problems that you don't like, once you realize what it is for and what the the applied part is going to be? And then kind of gain interest in going through theory?
Katrina Owen 8:23
Um, yeah, I have, I definitely find I only care about theory if it's going to help me solve a problem. So as soon as I start realizing that, oh, you know, what actually helps to understand, you know, binary trees to solve this category of problem that I am faced with, I will go learn everything I can about binary trees, or whatever. And I really enjoy that. But if it's just in the abstract of like, this is some, you know, theorem that, you know, doesn't really mean anything concrete to me at the moment, and I have a really hard time focusing on it.
Tim Bourguignon 8:57
I know this feeling. My parents told me, when I was a kid, I saw something like 12 or 13, I completely rejected math, because I said it's stupid. Nobody needs this. And my teacher discussing with my mom suddenly understood that I needed an applied part and and she came up with some some some weird explanation why you should absolutely need this. And apparently, my eyes opened at that time. And and from there on. I was I was interested. So that seems to be seems to be a thing, you know, for for some of us.
Katrina Owen 9:29
Yeah. That's awesome. I'm so glad your teacher was able to do that for you.
Tim Bourguignon 9:33
Yes. She was very good teacher, and he quit about my story. And we're here to talk about yours. So you said he ended up doing some programming jobs and you woke up Sunday and say the shoot I'm a programmer now. More or less,
Katrina Owen 9:51
that is more or less the fact after a few years of doing it kind of off and on and more and more, I think in 2007 towards the end of 2007. was the first time I was really had that feeling of like, Oh, wait, I am a programmer. It's not just something I do for fun in my spare time or to pull in some extra cash. I was, I was working in LA for a fashion startup. And the whole idea behind the startup, the only reason I applied to this startup was one, it was a mile away from my house, and I don't have a driver's license. So it was a place I knew I could get to. But to and more importantly, their promise was that you will measure yourself, they'll measure the clothing and you will never have to go shopping again. And I really loved this price. I was like, if I never have to go clothes shopping again, I will be a happy camper. So I so I just kind of knocked on their door and said, Hey, do you need someone technical in your in your tech department? And they're like, uh, maybe, can you come in tomorrow for an interview? So I did, and they kind of hired me on the spot, um, which is pure luck. I think what what happened was the CTO looked at my resume and said, Hmm, a degree in molecular biology and biochemistry, you must be
Katrina Owen 11:03
pretty smart.
Tim Bourguignon 11:07
I think that was the whole the whole
Katrina Owen 11:08
premise. So they hired me on mostly just, you know, to mess around, help out with testing, help out with, you know, bug fixing or whatever. And within three months, I was writing production code full time.
Tim Bourguignon 11:21
Interesting stuff. And how long did you work there?
Katrina Owen 11:24
Three years. Yeah, I worked there for three years. At the end of it, I was starting. I think this is it, this place was very key to who I am now. Because it was a mess. It was truly truly a mess. In terms of like, the technology, the leadership, it was all over the place, there was a lot of interesting work being done. But it was the Wild West there was like things were breaking left and right. There were no controls on anything. Like when I joined. Um, we didn't even have a test server. Someone else was deploying the code. We didn't even know where the code live like it was. It was a mess. And little by little, so I got really, I'm very driven by frustration, and friction. So anytime I learned something, it's usually because I'm trying to solve something right now in my life. And so I ended up reading every book I could find about how to do you know, quality software development. So I read, you know, Martin Fowler's book on refactoring, I read a whole stack of books on testing, automated testing, test driven development,
you know, how to do QA,
various types of exploratory testing, pair programming, it was just the, you know, the usual whole stack. And nobody I worked with it. Well, there was one other person I worked with, who cared about these things, but nobody else did. And so I was more and more frustrated, I started writing automated tests, but we didn't have a CI server. So I would just run them on my laptop. And after three years, I just got so frustrated that I left. And my my one friend, she tells me that the CTO at that point after I left, came to her and asked, so why are we having so many more bugs and problems in production right now?
Katrina Owen 13:22
She told her that.
Katrina Owen 13:25
Yeah, Katrina was secretly fixing things. Which,
Katrina Owen 13:30
which is true, I would run the I would run the test suite and stuff would fail. And I'd go, you know, go fix it.
Tim Bourguignon 13:36
You say you said it was a it was key to you. And then that it was a mess? You mean that by as a forming? phase? Yeah, basically knew all the ropes.
Katrina Owen 13:46
Yeah, it was really it drove me to go very, very deep into the topics of refactoring and test driven development, which have really shaped my entire career. I feel
Tim Bourguignon 13:58
Hmm, okay. Okay. And how did that influence searching for next job.
Katrina Owen 14:03
So the next job, I decided that I wanted to be in a place that cared about testing or quality in some way, they didn't have to necessarily do it, but they had to agree that it was important. So
So for my next job I was in.
We moved to Norway at that point to Oslo. And my next job I interviewed at a small local startup, where I got super excited during the interview, I remember pulling up code and showing them some transformations. I've done some refactorings and some tests I'd written and like a super I had had a lot of fun in the interview. And, um, and it was very clear that they cared. They didn't know how they're basically the interview concluded with like, they don't know how to do unit testing and TDD and all these things, but they really want to they know like, they knew they needed it. So um, I had an offer by the time I walked out the door and started I think just A week later, how did you manage to evaluate during the interview that it wasn't showmanship that they really were?
Tim Bourguignon 15:09
were honest about? about it?
Katrina Owen 15:13
Oh, I have no idea. I think I'm just naive. And I take people at their word, you know. But it was very clear in my previous job, nobody cared like they didn't even pretend to care. So this was a step up no matter what, right?
Tim Bourguignon 15:25
Okay, gotcha. that's a that's a, that's a good point. I mean, you at least knew they the they didn't not care.
Katrina Owen 15:36
Yeah. And, and they were very, they were really they were smart. And they were fun. People, they had been really creative. Like they had worked together, even though it was a fairly, the current projects that they were working on this group of people had mostly been working together for, I don't know, almost 20 years, like they had started out in the television industry making documentaries for the national television company in Norway. And then they had written mobile apps for en whap. back before mobile apps were a thing and like they had done so many interesting things. So they were also there was definitely a group of people that I was no matter what happened, I was going to learn from them,
Tim Bourguignon 16:16
learn from them, but at the same time, introduce those very, very key and fundamental practices. Yeah, as a stills. I mean, you're three years into your career as a developer. Yeah. All right.
Katrina Owen 16:30
Yep. Three years properly, done doing development before that, but nothing that I felt could be like called serious development. So yeah, so I stayed at this company in Norway for three years. And it started out with, like, a lot of the people were like, hypothetically interested in this, but only one person was very like, on it every day where we would pair and we'd figure out how to write tests, and we would figure out how to make better code. And over time, more and more people got on board with the actual practices of writing, you know, more reliable software. And by the time I left, I think everyone, I think everyone was writing tests at at least like we, I didn't so much care that it had to be, like, tests first. Like if it's if it's test sometime around, when you're writing the code, I'm, I'm happy. And so that was kind of the practice a lot of pairing mostly, mostly for harder problems or debugging, we did a lot of like thinking out loud together, architectural, you know, whiteboard, design stuff. It was it was a fun, fun, fun group of people to work with.
Tim Bourguignon 17:38
Sounds like it sounds like it. What's, what's your recipe, you managed to turn a complete sheep around? around? No,
Katrina Owen 17:45
I don't feel like it was my doing, I feel like I was maybe a catalyst in there, they already wanted it, it was very clear that I couldn't do this unless they actually cared. And so because there was one other person there, who actively was willing to spend the time, like, we were able to work out a lot of the, like, I guess the basics of how this is going to work in this company. After a while we brought on a an ops person, and he was totally on board. So he set up, you know, ci for us, and he helped. It was just, I think, having someone in the mix who cared and who had done enough of it before to have some idea of how to get started. I think that was enough because this was an environment that was ripe for that type of growth.
Tim Bourguignon 18:36
Mm hmm. Very, very interesting. Very interesting. as impressive what what one person can can do and tilt the balance there was there was ready, or when the when the the soil was was fertile and then ready to go, but just needed one one impulse and one person gets get rolling and then things tend to, to to accelerate. Yeah, get one more guy that's exactly the right fit. And then one more person and so on. Yeah, impressive. Interesting. I think
Katrina Owen 19:09
it's an interesting thing to ponder every once in a while that you know, it sometimes it feels like I can't do anything. I'm just me like, I'm just alone. I'm just this one person. And it turns out that you know, there's a saying something about bad apples like it only takes one. But I think good apples also, it only takes one sometimes to really if the environment is right, it one good Apple can really affect people around around you really in a positive way. That's true. That's true.
Tim Bourguignon 19:42
You said you you were working closely with one person that triggers a thought in my mind. How is it the past the past three years at this at this fashion startup? Did you have anyone to to really challenge You technically like kind of mentor. So,
Katrina Owen 20:03
um, well, I didn't have any mentor that was for sure. I did have one other developer who she'd been doing development for, you know, probably at least 10 years longer than I had. And so she had a lot more experience. And she was something that someone that I could talk to actually, I did a bunch of work for her when I quit the fashion job I in between the two, the between the fashion job and then the Norway startup, I did a bunch of contracting work for this other developer who had her own company on the side. And I learned a ton from working with her and talking to her, but we very rarely actually worked together on things we were always, you know, off solving some, some lonely problem in some corner of the codebase how different was it? I mean, not not on the operative side, but working with this, this colleague so so in terms of, of teaching each other things? I mean, now in in this job in, in, in Norway, yeah, it was really inspiring. It was it felt very motivating to be able to show up every day and know that I, I really feel like we're pulling together like it's not that I'm, I'm smarter or better, or he's smarter, or better. It was I really felt like I was working with appear and we respected each other so much. And we had so much to learn together. And we really did that work together. It was it was very motivating thing. I knew that feeling as well.
Tim Bourguignon 21:28
It's fantastic to live to live it. Just have a contract with them.
Katrina Owen 21:31
Um, no, it's like every couple of years, I'll send an email or
Tim Bourguignon 21:37
Okay, maybe consider sending the the podcast some point there you go to react. Okay, so where did you go from there?
Katrina Owen 21:46
from there? So while I was in Norway, I was still on the hunt for how do you do things better, like now I felt like I was in an environment that encouraged it. And so I was still buying, you know, tons of books. And I saw that there was going to be a conference right across the border and yesterday in Sweden. And so I asked the, the leadership of the company, if if I could go if they would, you know, sponsor me to go to this conference. So they paid for the train ticket, and they paid for the conference ticket. And I went, this was in 2011. And I was entranced. I saw, you know, this is a Ruby conference, Nordic Ruby, I saw talks by people who in some ways, it felt like they were just like me, but they they just cared about something and got on stage and told good stories about those things that they cared about. I met a ton of really great people. And while I was at that conference, two different people on two different occasions told me, Katrina, you should give a talk. I was like, No, no, no, no, I should not give a talk. I'm definitely not someone who should give a talk. So no. And one of them sort of let it slide. And the other person said, Listen, giving a talk is really, really hard. And it's really, really worth it. Just think about it. So I left the conference thinking I'm never going to give a talk. But I mean, it's kind of flattering that they think that I could or should. And then I went back to my job in Norway, where I spent every morning I'd come in early, and I would refactor something just for fun. So as part of my just sort of daily practice of, you know, feeling more centered and learning something, and sometimes the the refactorings would go into the codebase. Sometimes I just throw them away. But every month or so we'd have our little Ruby meetup in Norway, where you know, 10 people might show up. And at the end of the meetup when people were ready to go, and it was fewer people, maybe three or four people left, I would often pull up a refactoring and just show people and say, This is something that I did. And at one of these meetups, someone said, I would totally watch a talk of like this. I was like, wow, I could do a talk. And so I applied for the next Nordic Ruby, which was, at that point, maybe six months away, and I prepared a refactoring talk. I got selected on it was a blind selection. So anonymous, anonymous selection process, which was probably very good, because I mean, nobody knew who I was. I was I was nobody. Seven people knew my name. They all worked at the same company. So yeah, I did this talk, and it went really, really well. And so I started getting invited to do this talk and other talks. In other places, I spoke in Belgium, I spoke in Scotland. I spoke in Seattle in the US. I started getting invited a lot and so I started speaking a lot and that catapulted my career trajectory. into somewhere where I never expected it to go. I suddenly was someone who people would recognize at conferences, or they would say, Oh, I watched this talk that you did. And they watched it online. It wasn't like they were at the same conference, this awesome video, and remembered enough about it to recognize me at some conference where we met, it was the strangest thing. And so from speaking at conferences, I met a lot more people and got more opportunities. So every single job that I have had, since that Norway job has been because I spoke at conferences met, someone had a conversation. And was, you know, given an opportunity to try something different to try something maybe a little bit experimental. So I tried a lot of things, I spent a year working at a developer training program in Denver. So this is a seven month. I mean, I, if I call it a boot camp, you might think it's the same as the, you know, 10, week 12 week things, and it really isn't. They go more in depth than than most of the boot camps do.
So I was I was trying to teach for a little bit, but after like, giving two classes, we decided that that was not a good fit for me. So I spent the whole year writing curriculum, and mentoring students one on one working with students one on one. And it was interesting, definitely interesting, very, very difficult, very challenging for me, not something I would want to try again, because it's just, you know, emotionally and mentally very, very taxing. It's not something that I do easily to interact with people to that degree every day. Um, so I did that for a year, I started exorcism while I was there. Mace mainly as a tool to help with what I was doing day to day. Um, and then, of course, that hit the first page of Hacker News and top of Slashdot and you know, if goodness knows where, where it ended up. Within weeks, there were thousands of people using it. And my whole life kind of got hijacked by that. So after the teaching thing, I went to startup, again, I'm very small, music oriented startup. So we were writing, I mean, they still do, we were writing collaboration software for EDM, electronic tronic, digital musicians, like DJs, that sort of thing. And that was very, very interesting. Technically, I learned a ton. This was my first like, full time go job. I did that for probably about a year and a half. And I was really early. On the on the back end team there, there was the the co founder, CTO, cio, who led the back end team or the technology team. And then there was a guy in Montreal. And then there was me. That was, that was kind of it for the technology back in side of things for for a while there. And now I think, I don't know, they were like, 150 people last time
Katrina Owen 28:07
I asked.
Katrina Owen 28:09
So they they grew a lot, but I couldn't find it in my heart of hearts to care about the DJs. Like, I just don't care. So
Katrina Owen 28:18
after a while,
Katrina Owen 28:20
I realized that I had to, I had to just quit because I couldn't give them my best self. I was doing interesting stuff I really enjoyed, like, at one point, we were reverse engineering a binary file format to be able to support one of the digital audio workstations that we needed to support. And that was some of the funnest stuff I've ever done, you know, looking at in a hex editor and finding, you know, markers to figure out like, where do they store different parts of data and things. But I couldn't, I didn't really care about our customers. And if that's not a very for me, that's not a very tenable, tenable position to be in. Yeah, I decided to leave, I took a bit of a break. And on that break, I'm someone I know from GitHub. Know is kind of an exaggeration. Someone I had met at several conferences, reached out to me and said, Hey, I was looking at some of the talks you've been doing lately. And I think there's a position that you should apply for it, GitHub. So I did. And I got accepted to that position. So I was working on their open source team for a while. And then I ended up shifting to the API team doing a lot more like low level technical plumbing type engineering work. And then from the API team, I've moved over to the application architecture team, where I am working with a handful of other people. I think there are seven people on my team directly. And then there's one of my peers has maybe Six people reporting to them. And this is the part of GitHub that cares about the hard technical problems, the technical debt that is preventing us from solving some critical business problems. So we're all kind of off in different silos, working on really complicated, but often very invisible problems, which is, I think, my happy place, I really am not a huge, I don't get very excited about making features. But I really get excited about solving, like complicated, gross technical debt
Tim Bourguignon 30:37
stuff. The problem solving a yes, is, is a common trend, but the fixing things and finding a way to make it better have been this refactoring. But on a broader scale. This is kind of an issue, isn't it?
Katrina Owen 30:53
Yeah. I think the problem that I'm working on right now is really interesting. It's, I've been working on the same sort of set of maybe 3000 lines of code for the past seven months. And I've made almost 200 pull requests to this code. And I think most people around me are worried on a sort of regular basis of like Katrina, you Okay, are you gonna be okay, keeping on slogging through this mess? And really, I you'd love it. I love it. I'm the only person who would love it. I think it's it really is a slog. It's tedious. But it's tedious in a very interesting way. And, and so I think, I think yes, it is an each, I think that it takes a special kind of resilience to, to frustration and boredom, to, to, to thrive, solving that type of problem, but I absolutely love it. Do
Tim Bourguignon 31:51
you think there are some experiences that you lived through in the past that makes you particularly fit for this job right now?
Katrina Owen 31:58
That's a really interesting question, Tim. I think maybe yes, I think growing up, there was a lot of instability and chaos. And this type of problem that I'm dealing with right now, is one of the most like, controlled situations I have ever been in there is there is no deadline, there's no, like, I don't have to deal with customer whims, or even like project manager whims. There's no, I know exactly what the problem is. I don't know how I'm going to solve it. I just know what the next step is going to be. But it's very controlled conditions. And so it I think that this lack of chaos is something that appeals very much to me,
Tim Bourguignon 32:45
which is interesting, because I would suppose that it's it's a lack of chaos in in the process, although the code seems to be the chaos dissolve? Yes.
Katrina Owen 32:56
Yeah. Yeah. But the process is, is definitely it feels very much under control. It's tiny, tiny steps, every single step, the tests are green. Like, the reason I have 200 pull requests is because I'm, I'm putting in 123 pull requests every day fixing a tiny slice a tiny slice yet another tiny slice, so that I can be certain that a I'm never gonna have like some complicated merge conflict with Master that I'm going to spend a week trying to untangle but be if there is a problem, I'm going to know exactly what caused it. Because it's just one tiny pull request. That's, that's amazing. And I'm just to switch gears a little bit.
Tim Bourguignon 33:34
When did the did this automation and workflow optimization that I talked about in your bio, came into the picture?
Katrina Owen 33:43
Oh, immediately until now,
Tim Bourguignon 33:45
we talk more about programming.
Katrina Owen 33:47
Yeah.
Katrina Owen 33:48
So it happened. As soon as I realized that you could program a computer to do boring things. Like there's a type of boring that the computer has trouble with, like detangling really complicated code that has grown on its own for like, 10 years. That's not something a computer is really good at right now. But, um, so a colleague of mine yesterday asked me, hey, if I wanted to sparkle, which is some internal GitHub thing that I kind of feel have very ambiguous feelings about if I wanted to sparkle this other colleague 400 times, you know, would it would I have to wait in between each time to not overwhelm our chat ups? And I was like, Well, I would probably put at least one second of sleep in there. But what they had meant was they're gonna copy paste 400 times this chat off. Where's the first my first thought is, you go find out? Where's the code written for the back end of the chat ups? What API is it using? How do you authenticate? Where's the test suite that shows how the API works? And then you write a script and you put asleep in there. As soon as I realized that, this is what computers do well, like, I will go To unknown lengths to automate something that seems silly to do manually, this,
Tim Bourguignon 35:09
this is perfect. This is actually the Sorry, sorry to bring you this cliche, but this is the cliche of the of the of the programmer. Do we once manually maybe twice, but it seems do this for a third time. It's it's a, it's a programming task now. Yeah. And I have to program the thing. Yeah.
Katrina Owen 35:26
I take I take Korean lessons every week. And so I record my lesson. And the way the lesson works is I bring a picture, like I bring lots of pictures from Instagram, like illustrations off of Instagram. And then we talk about this picture in Korean. And then afterwards, I cut up the audio file, so that there's one file per picture. And I edit that file down, and I add all the metadata. And I add the picture as the album cover, and I put this in iTunes so that I can listen to these Korean, like little conversations about these pictures later. But the whole, like, metadata piece of that is super tedious. So a few weeks ago, I wrote the I wrote the command line app, but you know, metadata, if eyes My my Korean lessons, and it's it's brilliant, it takes you know, now less than a second, it was taking half an hour every time to make sure you know, get all the metadata, right. And of course, you know, I do get it wrong. I'll type I'll miss type the teacher's name in the like artist field, because Korean is hard. And so now I don't get it wrong. And it takes a second. I love
Tim Bourguignon 36:30
it. Awesome. I'm sure I would need some some help doing this for the podcast. Although my my, my workflow is come down drastically in the last month, but
Katrina Owen 36:42
yeah, no, it does great. As soon as you're spending a ton of time on it every once in a while in the shower, in the bath or whatever. There'll be this like, Wait a second, this is
Tim Bourguignon 36:51
totally automatable. You just have to find the right angle to go at it. Yeah.
Katrina Owen 36:56
Yeah. Oh, and the trick for me was always like, Don't try to automate the whole thing, always just take one little piece, one of the, you know, highest friction biggest, most annoying pieces, and just automate that, because it's totally fine to do some of the glue work manually if you haven't figured out how to automate it. And as soon as you start, you know, automating one little piece, often you'll discover, you know, five or six more pieces that you can automate just from learning how to use the tools and everything. It's fun.
Tim Bourguignon 37:24
And here is a perfect, perfect, goodbye. Thank you very much. This is awesome. One thing I wanted to ask you is a bit more details about exorcism.io. Yeah, can you give us the pitch about the platform and and how it came to be?
Katrina Owen 37:40
Yeah, the origin story is, is sort of that I was looking to automate away, you know, 10 minutes of kind of tedious everyday work, when I was helping mentor the students with the developer training program. And that failed, because instead of 10 minutes every day, I now had, you know, five or six hours every day plus 20 hours on the weekend. Um, so I failed in my objective, but I did automate away the piece that I intended to automate away. The the basic idea for exorcism has evolved over the past six years, it started out very much of like, I just want people to have a place where they can practice little exercises and get feedback on how to use the language more idiomatically. And at that point, there was only Ruby, because we were only teaching Ruby at at the training program. Very quickly, though, we added Haskell and JavaScript. And you know, more and more languages. Now there are like 50 different languages. And the focus has become much more about taking someone who already knows how to program and helping them quickly get comfortable in a new programming language. And that means different things for for different languages, depending on what your background is. Up until now, we haven't really taken a deep look at like, if you have written Ruby and Java and Python, and now you're learning, you know, Haskell or F sharp, what are the things that are wildly different from the things in your experience? What do you have to unlearn? What do you have to learn that, that you've never touched on before? And so for the next 12 months, that's our main focus is figuring out what's unique about each of the languages and how do we figure out based on your background, what the focus of, of your practice will likely need to be to get you to this place where you're comfortable with, you know, the syntax and the data structures and the the main paradigms in in that language and also the idioms of, of the language community that the language lives in.
Tim Bourguignon 39:55
Hmm, that would be pretty deep if you manage to do this.
Katrina Owen 39:58
Yeah. So it's up It's totally happening. We're working with a couple of researchers at the University of Chicago who are has spent the past three years doing research on this. So it's gonna it's going to be a very interesting, it's going to be a very interesting year.
Tim Bourguignon 40:14
Do you have a blog on exiting that IO week? Where listeners can can follow an announcement about this? Absolutely.
Katrina Owen 40:20
Yeah. We just announced this last week, the the, I think is like, exorcism.io slash blog.
I'll put the, I'll send you the link after
Tim Bourguignon 40:28
Nice. Nice, nice. Um, you dropped a whole bunch of advices. Again, already on us, which is obviously absolutely fantastic. And would you have a very specific advice for for newcomers that just are just starting their career, maybe just out of university or just out of a bootcamp or, or just getting their first job after teaching themselves programming, what would be the one advice you would like to give them?
Katrina Owen 40:55
So I have two pieces of advice that are opposite sides of the same coin. One piece of advice is, don't worry about the big picture. Don't try to learn everything. Don't try to like, you know, drink from the high firehose and read all the articles and watch all the videos and take all the tutorials. Don't try to do it all just look at the error message in front of you, and learn, don't ignore. How should I say this, don't go to Stack Overflow, and just figure out what to copy paste to make the error go away. That error in front of you is, it's your perfect learning opportunity. figure out why it's happening. Use this error as the indicator of what you should learn right now. And sometimes, that's totally not going to be awesome. Like every time I have a problem with homebrew, like, the last thing I want to do is actually understand it, I just want it to go away. So I don't take my advice when it comes to dependency management, homebrew and bundler like oh my gosh. But like when you're actually programming in the language in the domain that you're that you are working in, use those error messages as the signal to tell you what to learn next, and then ignore everything else, you have plenty of time. The other side of this coin, is I've lost years of my life by focusing too much on the tiny details without understanding the big picture. So my other piece of advice is to go read a book called good strategy, bad strategy. So that you can understand what it means to have a strategy that is practical, that is logical that helps you make decisions. And to put a big picture in place, so that when you're focusing on the little details, you are doing the right things, by just the nature of having, having put the guidelines in place the guard guardrails in place to make sure that you are on the right path.
Tim Bourguignon 43:09
Fantastic. Thank you very much. Thank you so much, Tim. And we'll add the link to the to the book, good strategy, best read in the in the show notes, you can just scroll down and click on there. Okay, cool. Cool. Cool. Um, where could the listeners continue this discussion with you if they wanted to, or to contact you and and get this going?
Katrina Owen 43:28
So that's a complicated question, because I don't do social media at all. I'm not I mean, I have a Twitter account. I haven't logged in basically, for a long time. I don't have a Facebook account. I don't have a LinkedIn account. I am on GitHub, but I only use it to do my open source work and my day to day day job stuff. I don't have a blog, there's a blog on exorcism.io I sometimes contribute to it mostly I do copy editing. Um, the most likely thing is find me at a conference. And because I love having conversations, I just don't like having them online. So find me at a conference. My next conference is code motion in Berlin in November this year. Come Come find me. We'll we'll talk about everything, all the things.
Tim Bourguignon 44:14
Is there a way Is there a place where you where you announce so the conferences where you'll be at? No. Okay, so it's a really
Katrina Owen 44:23
it's a Yeah, potluck. A good luck. I mean, dang, I don't even know that correct. English idiom.
I think I think it's crapshoot. Is that the right one?
Tim Bourguignon 44:36
Don't ask me. Yeah, I'm foreigner. Yeah. Like you can send pigeons.
Katrina Owen 44:45
That's it. Yes, I take. I do accept pigeons. I will eat them for dinner. If you do send them I'm sorry.
Tim Bourguignon 44:54
That's a French your French heritage coming in It's been fantastic talking to you. It's Thank you so much. It's been such a pleasure. Thank you, Tim. And this has been another episode of developer's journey, and we'll see each other next week. Bye bye.
Dear listener, if you haven't subscribed yet, you can find this podcast in iTunes, Google music, Stitcher, Spotify, and much more, head over to www dot journey dot info to read the shownotes find all the links mentioned during the episode. And of course links to the podcast on all these platforms. Don't miss the next developer's journey story by subscribing to the podcast with the app of your choice right now. And if you like what we do, please rate the podcast, write a comment on those platforms, and promote the podcast and social media. This really helps fellow developers discover the podcast and those fantastic journeys. Thank you