The Modern .NET Show

Episode 99 - Copy-Pasting with Iris Classon

Embedded Player

Episode 99 - Copy-Pasting with Iris Classon
The .NET Core Podcast

Episode 99 - Copy-Pasting with Iris Classon

Supporting The Show

If this episode was interesting or useful to you, please consider supporting the show with one of the above options.

Episode Transcription

Hello everyone and welcome to THE .NET Core Podcast. An award-winning podcast where we reach into the core of the .NET technology stack and, with the help of the .NET community, present you with the information that you need in order to grok the many moving parts of one of the biggest cross-platform, multi-application frameworks on the planet.

I am your host, Jamie “GaProgMan” Taylor. In this episode I talked with Iris Classon about her book “The Unlikely Success of a Copy-Paste Developer”, and what she has been up to since she was last on the show - back on episode 24. As well as discussing Iris’ new book, we talked about some of the lessons that we’ve had to learn during our careers - including “pulling a GitLab” and deleting all the data from a server.

I really think that you’ll enjoy this episode, as we approached these scary subjects with humour and goodwill.

So let’s sit back, open up a terminal, type in dotnet new podcast and let the show begin.

The following is a machine transcription, as such there may be subtle errors. If you would like to help to fix this transcription, please see this GitHub repository

Jamie

So the first thing I’d like to say Iris is thank you ever so much for being back on the show. It’s been ages since you are back on; episode 24. For context, this is going to be episode 99.

Iris

Oh wow.

Jamie

Yeah, so it’s a long time. So welcome back on the show.

Iris

Thank you. Thank you for having me back.

Jamie

Hey, I mean, it’s great to hear from you. Yeah, I was just saying in the pre recording bit that we do, we recorded our episode. And then the world went a bit wobbly. So that’s it. Like, I feel like-

Iris

It sort of has again, but let’s not-

Jamie

Let’s not let’s not try to dwell on those things. But yeah, so I hope everything’s going well. Are you well? Is everything happy?

Iris

Yeah. I mean, I’ve got to get a lot of things down during the pandemic. Got ourselves another kid. Because, yeah, we’re just like punishing ourselves. So we got ourselves another kid, we got married, bought a house, wrote a couple of books. And, yeah, that’s it. But that’s a lot, though. It was a busy year. That was all within one year.

Jamie

That’s a lot more than I did during the last three, I can tell you that much. You want to know what I did: I sat on the couch and eat crisps. That’s what I did.

Iris

There was this advertisement in Germany that they said, these are our national heroes, people not going out during the pandemic.

Jamie

But now I’ve got to pay for it all because I’ve got to get up and do yoga every day; go for a run every couple of days. I tell you, I’d much rather be sitting on the couch eating fruit. But-

Iris

Do you like running?

Jamie

I used to, I used to. For people who know me in real life. I don’t look like a runner. But I used to run maybe six, seven miles every two or three days. Because where I used to work. This was like five or six years ago - no, it’ll longer than that it’d be about 10 years ago - we all used to go for a run at lunch together. So we’d all just like we’d all down tools, get changed, go for a run, come back and then have lunch together. And that was really good, because it really forced me out because you sort of naturally sort of buddied up with a bunch of people. And that was really good. Because everyone’s like,, “Hey, come on. You can do it, Jamie.” And I’m like, “I can’t. I’m dying.” And they’re like, “you’ve just walked outside dude, you’ve not even started running yet.” But yeah, I used to I don’t so much now, because I don’t need to go anywhere now. That’s the problem. And I have no accountability buddies. So maybe I need some accountability buddies.

Iris

I actually, because we started our work we started working from from home, basically, the minute it came to Sweden, we didn’t even wait. So I had worked at this new workplace called GreenByte - officially now called Power Factors - for approximately three weeks before we started working from home, and I got myself a walking pad. So I’ve been walking, walking and walking meetings. And then I got used to that. And I started walking while I was writing code, which sounds a bit insane, but it’s interesting what your body can adapt to. So the walking pad has become a very dear friend.

Jamie

If I had the room to stand up whilst I was working, I’d get one myself. But it’s a very low roof in here.

Iris

So ergonomic-

Jamie

Not so much I mean, I’d be sort of hunched over. That’s the problem.

Iris

LIttle tiny pedals underneath the table.

Jamie

Now that I could do, I know that my brother has one of those. He has it because he gets sciatica. He has this thing to put under his desk and it just has pedals on it and he just sits on pedals all day. So maybe I should get one of those. I don’t know. I don’t know. Maybe I just shouldn’t be so lazy. That’s what it is. That’s what it is. But anyway, we’re not on the show to talk about how lazy I am. Although I could talk about it all day.

Iris

That’s what you gets. You know, I’m a personal trainer and dietician. So don’t get me started on that. I’ll shut up about that, now. I’m trying so hard not to swear. For those who didn’t hear the previous podcast. I use a word that means poop. But apparently it’s really bad swear word in the UK. So I was beep instead. And it sounds so much worse. It sounds like I said like the C word or I don’t know what. I was really really bad. So I’m trying so hard not to say the poo word. Because it’s used a lot here because in Sweden, it’s not a big deal if you say it trying so hard.

Jamie

Well, I mean, it’s a difficult job that we do. Let’s be honest, when when I introduce myself to new people, or people who are new to me, they always say, “well, what’s computer programming like?” And I say, “well, I get paid to drink loads of coffee, and swear at a computer all day. That’s what I get to do.” And is that not what we do?

Iris

It is.

Jamie

Exactly. Oh, my goodness.

But Iris, I was just wondering for folks who haven’t heard the previous episode - because you brought it up just that and I’ve mentioned it earlier on - would you mind giving everyone just a really quick introduction, you’ve said there already that you have the history of the personal training and the dietitian and we talked about how, you know, we’re both developers and all that kind of stuff. But I was wondering, just for just maybe an elevator pitch, 30 seconds, a minute, whatever, that kind of thing.

Iris

Who I am what I do?

Jamie

I’m putting you on the spot now. Yeah, really putting you on the spot now.

Iris

Oh, I nearly said the word I nearly said the word. Oh, oh, darn. I can say that.

ll right, Iris Classon. I used to work as a personal trainer and clinical dietitian. Turns out it’s not as fun as I thought it would be. So I decided to try something completely different. Just randomly decided on learning programming had no idea what I was doing. Turned out it was my dream job. Absolutely love it. Been a Microsoft MVP since my second year as a software developer, I think it’s on my 10th year soon. And now lately, I’ve decided I’m going to become filthy rich writing books, which I told Jamie is like aiming for the Olympic team, although you haven’t really done any sports. Everybody knows you don’t make money as an author, but I mean, I like crazy ideas. So why not? So that’s what I’m doing. I’m still writing code, never gonna stop writing code. But I’m also writing a few words now.

Jamie

I feel like with your boundless enthusiasm, you are probably going to be the only person on the planet who makes money writing books. That seems to be that-

Iris

There are a few more like Stephen King - I just listened to his book on writing, which is really, really good. Very fascinating. He’s sort of been a role model for me.

Jamie

I see. So does that mean the next book from from Iris Classon is going to be a horror story.

Iris

No, no.

I can’t believe like, I read all his books. And I just couldn’t stop reading them. But now I, the older I get, I just I just want to I just want to watch like funny stuff on TV and high school music type of movies or high school movies. Just cheerful, predictable movies where everybody’s happy. So my writing style has become more like comedy. So I want to make people laugh. I was trying to write a really funny book. But apparently it’s a little bit anxiety inducing as well. That was not the intention. But I’ll embrace any emotions resulting from the book. Might be my own anxiety, probably is because although I am not the main character in the book, the book was definitely inspired by actual events, like 90% of it.

Jamie

Well, I mean, let’s talk about that. So you have this new book out now called The Unlikely Success of a Copy Paste Developer. And, you know, for context I’ve read it. In fact, I finished it only a few days before we recorded this, which is now in the past.

Iris

Oh, it took that long to read it?

Jamie

Yeah, it took several months. No. It was a really quick read. For me, it was really good. I liked it. And partially because I’m looking through it going, “yeah, I remember when that happened to me, I remember that. I remember this. I remember this happening.” And it’s not about me. But like, there’s bits in there that I’m like, “yep, yep, I get exactly what’s going on here. I know exactly what yep, that’s exactly what happened. This has happened. And, you know, this, this thing and that thing,” and, you know, the way that certain people are reacting, and like I know people like that. It made me worried about whether I’m a good person or not. But there you go.

Iris

I keep getting the question like, “is your husband in the book?” And they also had a previous colleague asking me, “am I in the book?” And I’ll say “no, the book is full of assholes. So you didn’t qualify.” Not enough assholes, idiots, idiots. But no, not necessarily. It is actually a lot of the people are based on real people. A lot of the characters are based on real people and I’m sort of worried that some some of those might read the book and go like, “what the?!”

In particular David, David exists.

Jamie

All right, okay.

Iris

But, when David reads the book is gonna go like, “yeah, I like David. I like David. David is the best.” That’s why it works. So well. He’ll probably go around and tell everybody, “I’m David, have you read the book? I am David.”

Jamie

I like it. So just to put a little bit of context in there then. So what is the book about? I mean, I’ve read it right. So it’s a leading question for me, but I’m giving you a chance here, Iris: sell the book to the people who are listening. What’s it about? Is it real? Is it fiction?What’s going on?

Iris

Sort of fiction, more of like documentary of my life.

All right, what the book is about? Well, it’s about the software developer, consultant, Leo, who well just wants to get some work done. And then head home just in his life, bit of an introvert, a little bit of social anxiety. But everything sort of comes crashing down. When Leo is told that all software developers, everybody has to help out with customer support. And obviously, if you’re a software developer, you don’t want to have any customer contact. So that is, that’s a nightmare. So Lea decides that, “an architect, that’s what I’ll become,” because architects don’t have to help with anything besides sitting on their throne and sort of just architect things. There’s this guy, Michael, who talks about architecting, like architects do. And there’s some nipples involved as well. But Leo, trying so hard to become an architect, accidentally manages to make a repository public and becomes an overnight celebrity, and apparently an overnight celebrity within open source, which is not something for Leo. And it’s just downhill from there.

Jamie

I like it. Like I say, I’ve already read it. But yeah, that’s, that is a wonderful description of the book.

Iris

The description sounds a little bit random, but I promise it makes more sense.

Jamie

Those are the beats of the story, I have to say. Almost everything. I do like… So there’s a number of characters. There aren’t very many characters, which is good for my point of view, because I’m like, “who did what now what?” You don’t want to be in that position. Books in the past-

Iris

There are four main characters, and there are a total of 32 characters overall in the book. But what - sorry there’s one main character and there are three supporting characters.

Jamie

Yeah, I’ve read books in the past, where it’s like, “hang on a minute, this person hasn’t appeared for 50 pages, what were they doing?” And you have to like, you end up with flashcards and bits of string on the wall, you know-

Iris

I can’t do that. I cannot read books that start off with a map where everybody lives. And that’s sort of like a dictionary thing of a Game of Thrones, looking at you. And then Lord of the Rings, oh Lord. I mean, Lord of the Rings, there’s so many characters did you notice that the ending actually took half an hour? When they said goodbye to each other, that was half an half an hour. I cannot do books like that. Hats off to the author writing them, but I just don’t have the mental capacity to- yeah, no, if they’re not on Facebook, you know, and I get birthday reminders. I will forget them.

Jamie

So you see, this is where I lose my my geek card, nerd card, wherever: I’ve never read nor seen the Lord of the Rings books nor movies. I got half an hour into the first Lord of the Rings movie and fell asleep. I feel like everybody now has just gone, “unsubscribe. Delete. Jamie’s an idiot. Unfollow on Twitter. We don’t want anything to do with him.” I’ll have to send my MVP award back. Nobody wants to know me anymore. Because I’ve just said that I don’t like The Lord of the Rings.

Iris

I’ll join you. And I’ll let everybody knows that before I watch anything. I have to read the full plot on Wikipedia episode by episode. And then I’ll decide if it’s worth watching. I’ll even read all the reviews on Rotten Tomatoes - preferably Rotten Tomatoes. And if it sounds good, then I’ll watch it. “But what about the suspense?” I don’t need it. The suspence is: does it match up with my fantasy? When I read the description the plot, did it actually like happen like that. And to not to ruin it for my husband, I just I don’t tell him I just sound really smart and go like, “you know what happened now? Like, did you? Did you notice that?” So yeah.

Jamie

So I’ve done that in the past just because I’ve seen that many movies, but I’ve never actually thought to read like the Wikipedia or summary or something, and then sit there and go, “hmm, I wonder… oh, there they go,” and then just start telling people what’s going to happen?

Iris

Yeah, and he’s like , “wow, how did you knows?” I’m literally holding the phone in my hand - it’s like the massive the big iPhone, the one that’s like the size of my face. And just says like, “plot: episode two.” And I’m looking there, and I’m like, “I don’t know, I’m just guessing, you know.”

Jamie

I like it.

So one of the things I really liked about about the book is, it feels like some of the characters - or at least the supporting characters - feel a little bit caricaturey. Like you said, some of them are very real.

Iris

Yeah. Michael is a combination of a lot of different people. And I haven’t actually had somebody rub their nipples in front of me - not at the office anyway.

Jamie

I don’t know what to say Iris. Good night, everybody.

But yeah, so Michael is the architect, right? And there’s something about, there’s a flashback to when David and Leo are interviewing Michael. And Michael’s come in. And he’s like, “yeah, I’m the architect. And I’m the best.” And there’s some wonderful exchange there. I’ve met people who are exactly like Michael, and if you’ll allow me to just use one line from the book.

Iris

Yeah.

Jamie

Which is David says to Michael, “how do you debug software?” And he says, “I don’t put bugs there in the first place.” And I know so many people, just like that.

Iris

That was an actual interview.

Jamie

Oh right. Okay.

Iris

Yeah, that was an actual interview. I was sitting there with a candidate like and I just couldn’t get any real answers. It was so frustrating. I was showing him a file. It was like older code, a lot of static, you know. And he was like, “static. I don’t like that.” And it’s like, “okay, yeah, tell me, why don’t you like that?” “Because it’s smelly.” And I was like, “Okay, what do you mean?” And he said, “I would say it’s a code smell. Smelly code,” like, all right. “So you, what would you do?” “Not that.” “Okay, but what would you do?” And then he’s kind of like, “well, I just remove it.” “Remove what?” “Static.” “So you just remove the static modifier?” “Yeah.” I was like, “can you like, think of any consequences? You know,” and he was like, “nope, like, it’ll be less smelly.” “I was like, Okay.” And it was just such an absurd conversation.

I can imagine that it would have been. So personally, I’m very against using principles as like, hard and fast rules.

Yeah.

Jamie

You can’t, like if somebody says to me, “methods can be no longer than seven lines long.” And I’m like, “but what if it needs eight lines?”

Iris

There are algorithms? Oh, well, actually, you can have a really long line.

Jamie

Exactly right.

Iris

If you use Resharper. It often suggests, “would you like to LINQuefy this?” This for C# developers, “Would you like to LINQuefy this?” and you go like, “yeah, show me what you got.” And you get, like, a really long ass line - I’ll just go from here up to Stockholm in a roundabout, and back, but I can now think like, “okay, yeah, well, line.”

Jamie

Yep, that’s great. The problem with the single line statements like that is that they’re like, let’s say you have a for loop and you’re looping around some collection that’s relatively easy to read and understand. When you fall into using LINQ - and there’s nothing wrong with LINQ, I like to use LINQ every now and again - but I also have to think about, “who else is going to read this code?” And not just, “is it a junior developer? Is it a senior developer?” What about me tomorrow? Am I going to remember this does?

Iris

it sort of sounds like, “hey, for each person that goes to the school, everybody’s going to do this and then we’re going to do this.” It’s like somebody just talking a lot of a lot, a lot, a lot a lot a lot with a lot of like side stories, you know, the person or that person that never finishes an actual story. And then at the end, return.

Jamie

Exactly.

Iris

Return what? Like what, what did you do? Like I don’t know, I just bla-la-la-la-la.

But yeah, it were there is, it’s also very, very satisfying in a way, just being able to just write that, like some old scripture that nobody understands. And he just works and you know, nobody’s gonna touch it. And if you do git blame on it, you know, you can’t find who, who edited a specific section, there’s just a long line, you know, so you can hide, it’s, it’s nice, though.

Jamie

So you’re saying your for those single line statements now, because you can hide in the git history.

Iris

I’m a little divided on that.

Jamie

But yeah, I’m very personally I’m very against someone coming in and saying, “this principle must be followed, because it is set in stone.” And I’m like, “look, even you know, the person who wrote that principle doesn’t even use it 100% of the time, you know.”

I’m gonna bring up Uncle Bob, but not because I’m following his politics, but because of his experience and the knowledge that he shares. And he talks about you know, “you must, you must always programme to interfaces. And you must always write methods that are this long and no longer.” And I’m like, “but what if there is no interface?” What if, because they can, you know, I’m not saying don’t, you know, I’m not saying, “don’t do dependency injection and things like that.” But sometimes, especially if you’re doing something that’s throw away code, that you know, is going to be replaced tomorrow, after the demo. You have it written down, you’ve got it signed by the project manager, “this code will never get to production.” Well, if you need a quick fix, there’s nothing wrong with just throwing in a new. Yes, new is glue, but it doesn’t mean that you can’t do it, right? You can totally go work around these principles, if you know that the code is going to be replaced. I’m all for whatever solves the problem, right? Because-

Iris

I just find him I still find, I can’t say “Uncle Bob” is so weird, particularly as a woman. Robert, I still find the Robert to be fairly pragmatic, when you when you have a conversation with him, I think is just his way of speaking. And when he writes a book that is like a very strong recommendation, and he sort of just assumes people are going to apply a little bit of thinking. But I think in particular, if you’re new to programming, and you’re so desperate, first, just you know, there’s just so much information to, to keep in your mind. So it’s, it’s so much easier when you just have these strict rules that you can follow until you actually have to follow them. And with the interfaces in particular, that we get stuff like, “okay, so I’m writing this class, and then you right click Extract interface,” and you go like, “why?” “Because we must have the interface.” “Why?” “Because I really like Objective-C.” No, just kidding. But you end up with a lot of header interfaces. Does Objective-C still exist?

Jamie

Yeah, Objective-C still exists.

Iris

Like, is it still around? Do people know what I’m talking about? Like, “is she working for a bank or something?”

Jamie

I mean, who needs low level languages these days, just write everything in Swift. It’s fine.

Iris

Just ended up with a lot of header interfaces. Yeah, without like, usually, you can use the interfaces, obviously, for testing and so on. And, yeah, but I just see it so often that people just add them without any thought about what they’re actually going to do with them. Just add them just to add them.

Jamie

Yeah, it’s, like I say, I’m not advocating against them. But like you said, it requires a little bit of thought of, “do I really need to do this? And if I do, what are the consequences?” Not just, “I’ll blindly follow this, and I’ll do this than the other because,” you know, a lot of people that I know will fall directly into, “I must write object oriented programming.” And I say to them, “yeah, but-”

Iris

But that’s not cool anymore. It’s sort of cool. It means it’s a lot about fashion, you know. I mean, in the late 90s, I used to pluck my eyebrows, so they just looked like two pieces of string. And now the fashion is to have this humongous eyebrows, sort of drawn on like with a sharpie pen. And the same thing is with with code, there’s fashion and it’s seems to be changing faster and faster. And, and right now, I can’t say that C# is a purely object oriented language anymore. It’s a mixture of a lot of things. And if you look at the feature requests, I don’t know where we’re going. There’s still a lot of things happening. Yup.

Jamie

Yeah, it’s an interesting one-

Iris

And a lot of the things that we’re really appreciated are like, like inheritance. That’s like, do we still do that? Or is that, that’s sort of a bad thing now? Right, isn’t it?

Jamie

I honestly don’t know. I can’t keep up with Twitter and its opinions.

But yeah, but it’s the same. It’s like, you know, when people say to me when they’re really dogmatic about something, “must do it this way.” And I’m like, “well why?” Right? I’m not trying to be contrary and explain to me why-

Iris

You’re supposed to ask why five times? Five?

Jamie

Yeah.

Iris

Let’s try that. Ask a question.

Jamie

Yeah.

Iris

No, ask me your question.

Jamie

So it needs to be object oriented.

Iris

Why?

Jamie

Because then it will be object oriented.

Iris

Why?

Jamie

Because then I could do dots on everything. And it’s so easy. It’s all encapsulated.

Iris

But why?

Jamie

Because then I can take what I think the thing needs to do and put it all in one place.

Iris

How many? I have one wide left, right?

Jamie

Yeah, I think so. Yeah.

Iris

Why?

Jamie

Because I was told to do it that way.

Iris

You forgot to say it’s supposed to… it’s supposed to resemble the world, which is full of objects, right? Something like that.

Jamie

Yeah. But then, you see, that’s the thing, right? You can look at the world with an object oriented point of view and say, “this is a thing. These are the properties that define its thing-ness,” or, and I feel like I’m gonna go a bit philosophically, you could think of the world in a functional way: “this is a thing, and this is what it does. And this is how it changes the world. Or rather, this is how it changes the thing that it’s talking to, but doesn’t change the world,” right? And you get into all sorts of crazy, crazy points of views, but or you can even think of things as as procedural: “I pull on the handle, I push the door open, and then I walk into the door,” not: “I send the message, ‘rotate the handle’ to the door object, then I send the message, ‘push’ to the door. Then I send the message ’lift’ to my left leg and start walking forwards,” right. It’s you don’t have to you don’t have to.

Iris

Excuse me, IDoor.

Jamie

Okay, yeah. Right. Yeah. It should be IDoor.

Iris

The IDoor has an IHandle. And IHandle only accepts a maximum of seven IKeys, okay. All right. No more than seven IKeys. Okay.

Jamie

Yep.

Iris

Unless it’s a static singleton, manager helper utility. I was going to say service, but the service should not be static. All right. I don’t know what what what’s it? What is this podcast about? The interview? Yes, yes.

Jamie

Yes. There we go.

Iris

Yeah, I think that, that there’s something- there’s a part in the book where Leo takes this. You said earlier, Leo takes this, this repository of work, puts it out on GitHub and makes it open.

Jamie

And then there’s this whole section about-

Iris

By mistake

Jamie

Well yeah, okay. Yeah, by mistake. But there’s, there’s this, there’s this whole section about the anxiety, not just of, “I’ve made the mistake and made it open source and pushed it out to the world.” But also this, “what if someone comes along and starts poking at it and saying, ‘you’ve got this wrong,’ or ‘you’ve done this wrong,’?” and there’s this whole section about as a person who’s sending in pull requests, and they’re very critical. They’re like, “hey, you’ve made a typo here. And you’ve made a grammatical mistake there”. And it’s like, I’ve been in that situation-

Iris

You really need nitpicking. And I have to admit, as a, that’s a little bit of me, I just, I still get so nervous about pull requests. I, you know, we have a Slack channel at work where all the pull requests are automatically added to a Slack channel. And I know, nobody follows that channel, they probably even removed the notifications for it, because it’s very, very busy. But I still have this anxiety that people - other the people that are my colleagues will actually go look at my pull request. Like I’m a fairly decent software developer, but I still get massive anxiety with pull requests. It’s just, it’s like doing a technical interview over and over and over again.


Episode 100 Announcement

Hello everyone,

I am very sorry to interrupt this episode of the show, but I wanted to ask a favour of you all. As you will have known by looking at the podcatcher that you’re listening to this on, episode 100 of the show is coming up really quickly and I’m having an AMA (or an “ask me anything”) to celebrate. To collect questions, I’ve set up an ama page on the website over at dotnetcore.show/2022-ama. If you have any questions on .NET (and any of the related technologies), podcasting, or literally anything else then do head over to dotnetcore.show/2022-ama.

I’d love to add your question to the episode, but the only way to make sure that it’s added is for you to submit it in time. We do have a cut off point and that’s June 1st, 2022. So get your questions in quickly. and I’ll make sure to put a link into the podcatcher you’re listening to this on, so you don’t have to make any notes or anything. Just press through on the podcatcher and type up your question.

Anyway, back to the episode.


Jamie

I really appreciated that you put that in the book, because I feel like: if I feel it, and you’ve said you feel it, that means that there’s at least two people in the world that feel that anxiety, which means there must be more.

Iris

Oh, yeah.

Jamie

And so I really appreciated that you put out there to say, “hey. Don’t worry, this is,” it’s almost like it’s almost like you’re saying to the reader, “you will feel this way. But guess what, come with me for the rest of the story. And you’ll see that hopefully it’s not going to be that bad,” right?

Iris

Yeah.

Jamie

So I feel like when you first start working if people work in open source - and Leo does this accidentally - but when you work in open source or when you work with other people, and it’s up to those other people to decide whether your code is good enough, there really is that anxiety.

Iris

Yeah it is.

Jamie

Like you say, “oh, gosh, what if I’ve done this single line statement, and it should have been a for loop. Or what if someone’s gonna go, ‘hey, you know, you failed your pull request, because you didn’t burn Resharper. And you’ve got loads of statics, and you didn’t use the interfaces and all that kind of stuff’.” And then you worry that you look like, well, I worry that I look like a, like an idiot. And I’m like, “oh, my gosh, I can’t believe I didn’t do this.” Or oh, “gosh, I can’t believe I didn’t do that.”

Iris

What advice I can give to people listening, if you want to get get started with open source, good repositories to start with are actually Microsoft repositories. They have very strong guidelines, regarding how to be respectful, and so on. And I found them to be very gentle and positive. That’s been a really good experience. You can usually have, there’s usually this tag called up for grabs, there’s even this website isn’t called up-for-grabs.net, where you can - based on different filters - find repositories that you can contribute to, with issues that are for beginners. Like open source beginners, or maybe even programming beginners, it could be just formatting stuff for just doing, you know, adding comments, and then removing comments and then adding them back in. Or I don’t know, just extracting a lot of interfaces, there are different types of up for grabs issues that you can start with. And the repositories that have up for grabs usually are also quite helpful, and not so judgmental about your pull request.

Jamie

Yeah, I absolutely agree there’s - especially, I mean even if you don’t do the the Microsoft repositories - if you find a wonderful repository that will allow you to make these, these these up for grabs tags. I use Visual Studio Code for a whole bunch of stuff, not for programming, but most mostly for documentation. There’s a wonderful extension pack that Microsoft have put out for Visual Studio Code, I think it’s called the docs authoring pack. So that’s d-o-c-s authoring pack. And when you instal that you get like a linter for markdown, you get a spellcheck, you get loads of really good stuff that’s useful for that. And if you’re working on some of the - especially the Microsoft documentation - they recommend you instal that first. And then one of the tasks could be pull the repo and just fix any of the problems that the extension comes up with. And then submit a pull request, right? And that’s, that’s not like you’re not doing. It’s not like you’re sitting around not doing anything.

Iris

As long as you don’t do what I did. Oh, I need I must add this to the next book. I am so incredibly stupid. I, so I was written documentation. It was like some Azure stuff. And I always get it in Swedish, although I always prefer English. But it was so horribly translated. So I had like, it’s like super passive. Okay, non passive aggressive pull request where I changed, I made all the necessary changes to make it look like somewhat decent Swedish translation. And I had several people from Microsoft involved trying to get a pull request approved. And it took weeks there was a lot of work. And then turns out like it was machine translated. So it wouldn’t even matter if it was approved because you just automatically regenerate really poorly. And just the translation was, have you ever done like captions when you’ve done Google Meet? It’s that level, so it was just absurd some really naughty words as well. Because we love double words in Swedish. So “book writer” you write it as “bookwriter” as one word, so we like to just smash words together, but he hadn’t done that when you don’t do that. It just has a completely different meaning. So sorry, for all the people I pulled into this passion project mine to fix this Swedish translation. When it turns out the bad person was machine learning.

So yeah, double check that before you do a pull request to to fix automated translations

Jamie

It sounds like your next job is fixing automated translations. That’s-

Iris

Yeah, I don’t know how that stuff works, actually. It’d be really interesting to know because it was, yeah, it was pretty bad.

Jamie

I would guess that there would be a Markov chain involved somewhere. I know that a lot of transcription stuff is Markov chains. So it’ll figure out the first word, or that are a couple of words and try to find the context of the sentence. And then it will use essentially guessing, to say, “well, in 90% of the times, when you say ’the’, and it’s about a car, you’re gonna say ‘car’ next, So I’ll just put car there and see what happens,” right? And then it takes that car and says, “well, 90% of the times when you say ‘car,’ you’re gonna say the colour of it. So I’ll find the colour in the sentence and put that there.” And so most, it is amazing that just most transcriptions are just, it just, it blows my mind how they work. At least that’s my understanding.

Iris

The problem with the translation or trans-translational-transcription-translation to Swedish is that we don’t have a lot of technical terms in Swedish, we use actual English terms, but they were trying really hard to generate nuance. Or they would just, they would just assume there would be a Swedish word, and they will just take it even though it means something completely different. So I think it was something about peak domains. It was just Yeah.

Jamie

Oh, my goodness But yeah-

Iris

I come up with all the stories for the book, like stuff that I’ve experienced. And I don’t know if I’m just really good at ending up in weird situations and meeting strange people.

Jamie

I mean, you’ve met me and I’m strange, so-

Iris

Oh, yeah, you’re definitely the next book.

Jamie

Oh, thank you very much. Now I’m sitting here going, “oh, my goodness. Am I David?”

Iris

Not David, there’s only one David.

Jamie

Oh, my goodness.

But yeah, so like, so what I really liked, I’ve said this a lot. But I really really liked the, the, the frank and honest way that you told Leo’s story. There’s a point in the story where Leo does something very bad, or rather, does something doesn’t realise that it’s a bad set of steps and gets into lots of trouble. And I think that for a lot of people. They get very worried about, “if I push this button, what will actually happen?” You know, there’s two, there’s two types of people, right, there’s the the techno-fear which is, “oh, my goodness, if I push this button, the world will explode.” And the other type of people - the techno-joy - where they go, “I want to explode the world.” And it’s like, I feel as though a lot of at least a lot of the developers I know fall on that techno-fear side of it, especially the first time that we’re ever doing anything big. And we’re like, “yeah, but if I push this button, and it deletes the server, wontI get in trouble?” Yes.

Iris

It depends on, it depends on who you work for.

Jamie

Well, yeah, that’s true.

Iris

I did try to coin a new term called “to GitLab something.” I actually, I really, really like it GitLab. And it’s a reference to GitLab, somebody at GitLab accidentally did a recursive delete on the production servers. And they actually, so they recovered all the servers and live stream data on YouTube and people are eating popcorn and watching it for like two days. They were like, “okay, here comes next team who is taking on the night shift thing,” continue. They had a lot of questions like, “would you fight 100 cats, or would you fight 12 dolphins?” It was actually really fun to watch. I think the stream is still up, the videos are still up. And I really liked how they, how they managed it. And I think they probably grew in popularity. afterwards. The person was not fired, which I think is really good. Because if somebody has that kind of power, that kind of access, well I mean, accidents are gonna happen. So-

Jamie

Yep, yep. And perhaps as a failing on how the system was set up, right? You know, if people, like when my clients come to me and say, “we want you to go on to the live server and,” I’m like, “no. No one has access to the live server. That’s how that works. Live servers, there’s like a wall around it. And to get in you need to like you need to like not get in. That’s That’s how that works. No one should act, in my opinion, not once you have access to the live server, ever.”

Iris

I mean, in real life, like most places, I’ve worked, every single person that has access to the server. It’s like, “can you just go and delete that from the database?” You know, like, everybody has that access.

Jamie

And when everyone has access, no one has access, right? Because then there’s no accountability. Because most likely, as is mentioned in the book, you’re all sharing one user account.

Iris

Yeah. “So how do I log in?” “Oh, it’s just it’s admin and the usual password.” “Oh, is it the one with 123 at the end?” “No, we added exclamation mark. To make it a little bit more secure.”

Jamie

“It was in the email.” Don’t email passwords, people.

Oh, my goodness. Yeah, I really liked that, how It was a super scary passage to read when when Leo does something, and does this does does a GitLab, right. And when Leo does a GitLab, and it’s really scary to read, because I’m seeing myself I’m like, “I remember when I did that.”

Iris

Yeah. And Leo’s actually trying to save another difficult situation, that might have something to do about checking in sensitive information into the repository.

Jamie

But just the frank and honest way of saying, “hey, this person is doing two things at once. And these two things are very difficult tasks. And one of them is an accidental whoopsie. And then that brings about another accidental oops, moment.”

Iris

Yeah.

Jamie

That it’s the biggest accidental whoops, moment you can have, because the person wasn’t concentrating on what they do, right? Because people make mistakes.

Iris

Yeah. And usually when you make a mistake, you sort of panic trying to fix it, and it’s within that panic, that’s usually make another mistake. And I know that’s happened to me many, many, many, many times in particularly git panics. When you’re trying to sort out a merge, they start getting frustrated, you get anxious, and then you go like, “oh… force push!”

Jamie

I don’t care. I’m the right one.

Iris

It doesn’t cover your eyes, like, “oh, I hope so. I hope this works.”

Jamie

“If I don’t see it, it’s not happening. It’s fine.”

I’ll tell you real quick about the one that I did. And it wasn’t even a work thing. I tend to have multiple hard drives in my computer at once. And this is what I actually stopped after this moment, I started looking into proper backup and storage of my important stuff. So I have multiple hard drives in my computer. And I’m like, “you know what, I’m kind of sick of using Ubuntu. I’m going to try ElementaryOS because I’ve heard it’s really good.” Put it on a USB, threw the USB into my computer, and started it up. And I’m like, “brilliant. Okay, try it. Yep, this is nice. I like it install.”

What I usually do when I install a new operating system, is I open the computer before I turned it on, and pull the cables for all of my hard drives except the main drive. That day. I didn’t.

Iris

Oh.

Jamie

Yeah. I had a local backup copy on another machine of all of my photographs taken throughout my life. I didn’t on that main machine anymore.

Iris

Oh, no.

Jamie

Don’t do that, folks. But it was like I was, I got all the way through the installation. I’m like, “Yeah, this is great. This is wonderful. Wait, wait, wait, wait, wait, why is gparted still showing my Ubuntu install? Ah.”

Iris

Something similar happened with with a friend of mine. So a friend of mine called me like, fully on panicking, couldn’t get Windows up and running. And he was really concerned he couldn’t access his hard disk. And I was like, “well, you could run Ubuntu on a USB stick and access your hard drive like that.” And he was very eager to try this so eager that he booted up. Before I had the chance to tell him to run it in memory. I was like, “and you ran it in memory. Right?” And hes like, “I’ll talk to you later,” and just hung up.

Jamie

Oh, my goodness.

Iris

So yeah. Stuff happens.

Jamie

Yeah, I mean, this is the thing, right? We all make that mistake once we will make the force push mistake. We all make the-

Iris

Oh, checking in secrets, passwords. That was actually the first thing I did at my new job.

Jamie

Right.

Iris

And I think it’s like a ritual because I just assumed that we wouldn’t have that stuff in the repository to begin with. So I set everything up. And then when I checked in they go like, “oh, yeah, did you did you exclude the config files?” [I was like,] “it’s not in the Git ignore?”, “No, no, you have to do that manually.” And I was like, “wait, what?”

And I was like, “no, I checked it in.” And he was like, “oh, that’s okay. Everybody does that. I’ll just I’ll just, I’ll just amend your commit.” I was like, “huh.”

And now something I’ve learned that you can’t really, once you’ve pushed something, it’s there forever. So you always have to we rotate, or not rotate, call it “rotate passwords,” we actually change the passwords and keys very often. And this was not production. But nonetheless. Yeah, once it’s there, it’s there forever. And I do believe that approximately 99.999999% of developers, at some point have checked in a secret, or a key or something like that.

Jamie

Yeah. It’s a rite of passage. Yeah. Don’t learn how not to do it until you’ve done it wrong once, right?

Iris

If you haven’t done it, are you even a developer?

Jamie

Exactly right. This is why when I’m mentoring people, I say, “right, first of all, just git add . on - just do it now. And then commit it, don’t push it, but just do it. Right. Okay, now to tell you, you’ve just committed your secrets. Okay, now we’re going to learn about .gitignore, right?” And then that way, they could do it in a safe space. That’s what I tried to do. Because you know, you can you can, then you can then go, “hey, look, okay, you’ve made a mistake. Let’s talk about how to get out of that mistake. Or let’s talk about how not to do that in the future.”

Iris

Yeah the problem is with checking in a password is that then if you check in the password, that’s, that’s your, that’s your one password, you know, most people have this one password. So then you need to go to all your social accounts, your email, your bank account, absolutely everywhere and just changed the password, obviously, by just incrementing, the last number or adding another magical character. But that’s, yeah, that’s the problem with pushing your passwords.

Jamie

A1nd if you haven’t ever done it, I would recommend you do it: go to GitHub, in the search box type in something like, “revoking API key,” or “revoking user secrets,” and you will get millions of commits; because it doesn’t just show you - because like you, you don’t just search the code, it’s such as commit strings as well. So you get millions of commits, where people are like, “oh, I’m revoking this, or I’m rotating this key.” And it’s because of that.

Iris

Imagine that you accidentally push a password and, and you do a new commit, removing the password. And you write in the commit message, “removing super secret, very safe password.”

Jamie

Seriously, seriously. I challenge everyone who’s listening. And Iris, when you get some time after we’ve talked, go to GitHub, hit the search box and type in “removing API key,” or “removing password,” and there will there will be 1000s of them. And I’m not, I’m not saying this is in any way to make fun of those people. But to say, look, everybody does it. Like you said everybody does?

Iris

It is fun because we’ve all done it. I’m not saying people should do it. But it happens to the best and the worst of us. It happens. And I mean, you just saw you just gotta laugh at some things, just because it’s so absurd how easy it is to mess up our job. Just one night lack of sleep or just a minor distraction. You know, just arguing with your spouse or I don’t know, having a kid kept you up all night. And then there you go. Just one little commit. And you’ve committed to sin.

Jamie

Absolutely. It’s easily done. And I think that’s one of the things that I think is really important for everyone when they’re learning. And I think it’s something that comes up a lot in that it’s a good lesson to take if you take no other lessons. That is a good lesson to take from this [and] from your book is that: everyone will make mistakes. It’s not that big a deal. Right? Yes, it causes some embarrassment. And yes, it can mean that you have to restore a backup. And yes, it means that you may get in trouble with the clients. But guess what, I’m going to use a phrase and I hate to use this one but, “nobody died.” Right? Everything’s going to be okay. You know, even if you get fired, and you have to go find another job, guess what, there’s another job out there for you. You know, it’s not - you live and you learn the important bit is to be able to reflect upon that experience and go, “do you know what, I messed up. I know exactly how I messed up. I know why I messed up, and I know how to fix it for next time. So I don’t do it.” That’s all that really matters, right? That’s all I’m looking for.

Iris

And that’s why we have pull requests. Absolutely. Because you want somebody to pick it up, the errors a little bit earlier. And also because then if something goes wrong, you have to share the blame.

Jamie

Absolutely. You’ve got an accountability buddy.

Iris

Just you add somebody who’s, yeah, was in on it.

Jamie

Absolutely. Absolutely. I like it. I can add somebody who’s in on it. I have a little co-conspirator at work, I like it.

Excellent. Okay. So we’ve talked a little bit about. See, I didn’t, what I really like is we didn’t just talk about the book, we talked about all of these other things that are not just .NET related, right? We talked about, should you follow the principles? We’ve talked about, you know, we talked about committing and not worrying about making a mistake, which is something that’s really important.

In a previous part of my career, I was a teacher, and I used to tell people all the time - I worked as a high school math teacher - and I said, “don’t worry about making a mistake, if you get it wrong. As long as like I said, as long as you can recognise you got it wrong, and how you got it wrong, and how you can maybe change it so that you get it right next time. That’s, that is, that is learning.” Just knowing it is not learning, getting it wrong, and then then recognising how to get it right. That’s learning. So let’s do that. Let’s not worry about getting it wrong. And I try to, I hope that there are enough developers, like you and I Iris, who willing to sit with people and say, “look okay, let’s provide a situation where you can get it wrong. But where there are no catastrophic problems, right.”

Iris

Yeah.

Jamie

And I think that, I genuinely think that a lot of, that almost all developers, in fact, all developers should go and buy the, in fact, no, I think that people who are not developers as well, like the David of this book, I keep saying David right? David’s like a PM, and they’re the stereotypical PM, if you’ve ever seen office space, he is the guy who goes, “yeah, we’re gonna have to, you’re gonna have to come in on Monday, on Sunday. And Saturday.” He’s that guy, right? And I feel like, if people have enough wherewithal and enough self reflection, they can see those behaviours and go, “I can understand why my development team are really upset with me today.”

Iris

I gotta say about David, he was only he was supposed to be just like a small side note like, but he just took over as I was writing, David just took over. And honestly, he is what David does the best just takes over. And it’s just weird because I had beta readers, because I wanted to make sure like, non-techie people could read the book as well. Although it’s very specifically for software or IT people. But even the beta readers, they really enjoy the book. And all of them just really hate-liked David. And I’m surprised because he wasn’t supposed to be a big character in the book, but it just turned out like that. Yeah, they wanted more of him: more David.

Jamie

More David.

Iris

Obviously, Leo was very popular. But David was, and another person James, I thought James was going to be sort of the sidekick and really big character, but David out shone him I think. Yes.

Then Michael, yeah, Michael is Michael. Michael is just standing in a corner _bleep_ing his bleep. So-

Jamie

And that’s where we leave the episode.

Iris

Are you gonna bleep that?

Jamie

Maybe. I’ll tell you what, I leave you saying, “are you gonna bleep that?” as well. Then people will be like, “I really want to know what Iris said.”

Iris

No, no, no-no-no. Michael standing in the corner, rubbing his bleep. Like, I’m just gonna let you think about that for a moment.

Jamie

Well, I was actually - so this bit will go out - but I was actually gonna have it. “Michael was standing in the corner beeping his beep.” That’s how I was going to have it. I wont really, that’s just me being silly.

But okay, so I genuinely think that everyone should read this book, because I think there’s something in there for all developers to learn from. And like I said, there’s loads in there about. I felt a certain empathy towards, like, I’ve known project managers who were like David, and I felt a certain empathy towards David because I could understand it from their point of view.

He’s a Scrum master. You know.

Well, yeah. And he learns about Agile by going to an XP conference.

Iris

Yeah.

Jamie

I’m just gonna leave it at that.

Iris

That’s an actual story. That-

Jamie

Oh right. Wow.

Iris

Yeah, I had somebody write to me about this on Twitter. I can’t give too much details.

Jamie

Right. Okay.

But yeah, so tell the people again, about the, I guess, if you’ve got the book to hand, perhaps if you could tell the folks about the blurb on the back of the book that’ll give them a chance to get an idea about the book. Give them an idea of the name again, just so they can remember-

Iris

I’ll just see if I can find my blurb let me just google myself. I’m actually going to Amazon I’m gonna go “Iris Classon” in books. In all departments, oh, I exist in all departments. I’m just gonna read read the blurb. Should I do it with a dramatic flair?

I mean, if you want to.

It’s the hottest summer the UK has ever seen. And a lazy subpar developer is suffering from an existential crisis. Leo has been told that all developers must help with customer support, barring architects. But Leo has a plan: impress with a quick fix to a big problem and consequently be promoted to god of code - an architect. What Leo didn’t plan on was making the code public and becoming an overnight sensation. What could possibly go wrong? Will Leo make it or break it?

Jamie

Excellent.

Iris

Yeah

Jamie

And folks can order that on Amazon can’t they?

Iris

Yeah on Amazon, or directly through me as well. Yep.

Jamie

Brilliant. Okay.

Iris

Obviously, we get a signed copy. I’ll just do a little doodle in a corner and it will make the book like double its value.

Jamie

Absolutely, I have my signed copy right here.

Iris

Or not. What did I write in your book? Did I write anything?

Jamie

Yeah, you wrote: To Jamie, thank you for the fun interview and podcast. I had a blast. And then you signed it.

Iris

Okay.

Jamie

I mean, I’ll show you but obviously the listeners wont see it.

Iris

I was trying to write funny things in every single, I think I ran ran out of funny things to write I think I wrote somewhere. “I’m sorry for what I pushed to master when I was hungry,” or something like that. “Or I hate conflict. So I always force push.”

Jamie

I like it. I like it.

Iris

Or something like that. And I just want to tell everybody who reads the book that Michael, not Michael: Martin, the dentist is real. It’s my dentist. And the stories are true. Except the tunic. It was a towel. I’m just gonna leave it at that. People don’t believe me. But I have the emails. I just-

Jamie

For some reason, that makes it worse.

Iris

I just meet the weirdest people

Jamie

Fair enough.

Iris

I love myt dentist. But I’ve actually seen a new dentist because my husband was a little bit uncomfortable with me going to Martin after he heard the stories.

Jamie

Fair enough. Fair enough. Oh, my goodness.

Well, Iris, I just want to thank you for spending another - well, I spent more than an hour but we’ve recorded for an hour. Thank you ever so much for for being on the show again. I really appreciate it, the humour and the stories that you’ve brought. I think there’s going to be so much for developers regardless of where they are in their journey. And regardless of the technology stack that they are using. There are stories here, and humour and jokes that we’ve hopefully both told - but I don’t think mine were funny - that will help people to sort of grow and become better developers. I want to thank you for that.

Iris

Thank you. Those are very nice words. Thank you very much.

Jamie

You’re very welcome. Yeah, you’re very welcome. I have to say can you tell that I practice them but that that’s an even worse joke. That’s how I-

Iris

I was gonna make it a joke but I IAppreciate it. Just trying to add another interface before the podcast ends.

Jamie

IAppreciate, I like it.

Iris

IAppreciate it.

Jamie

Well, like I said, Thank you ever so much Iris. And yeah. Thank you ever so much, and see you later.

Iris

Thank you

The above is a machine transcription, as such there may be subtle errors. If you would like to help to fix this transcription, please see this GitHub repository

Wrapping Up

That was my interview with Iris Classon. Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of the interview. The show notes, as always, can be found at dotnetcore.show, and there will be a link directly to them in your podcatcher.

And don’t forget to spread the word, leave a rating or review on your podcatcher of choice - head over to dotnetcore.show/subscribe for ways to do that - reach out via our contact page, and to come back next time for more .NET goodness.

I will see you again real soon. See you later folks.

Follow the show

You can find the show on any of these places