Embedded - 78: Happy Cows

Episode Date: November 25, 2014

Chris Svec (@christophersvec) has an idea about adding empathy to software development. It is a good idea. His blog is Said Svec. He works for iRobot and they are hiring. (Chris' email is given toward... the end of the show but if you hit the contact link here, we'll pass along info to him.)  Obligatory cat video Embedded has an episode devoted to impostor syndrome.  O'Reilly's Head First book series is pretty awesome. Elecia is still talking about Thinking, Fast and Slow as a great way to understand brains. Chris Svec also recommends Make It Stick. The Richard Hamming quote came from his address to the Naval Postgraduate School. The whole lecture is available on YouTube.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded, the show for people who love gadgets. I'm Alicia White, back with my co-host Christopher White. Our guest this week is Chris Svek, and we're going to talk about empathy-driven development. Before we explain that, could I ask you for a tiny, tiny favor, listeners? It was my birthday recently, so if you want, you can consider it a gift to me. I'm totally fine with that, but if you could please go to iTunes and give us some stars, it would be awesome. And I promise we'll stop asking soon. Or at least put it back at the end of the show.
Starting point is 00:00:42 So now back to the fun. Having two Chris's on the show shouldn't be confusing at all. Hi, Chris 2. This is Chris 1. There's no meaning behind the ordering there. Sorry. Thanks for being on the show. Thanks, Chris. Wait, is that T-O-O or T-W-O? I don't know. I think we should just leave that behind. All right. Excellent. Excellent. This is what you and I have grown up with, so we're used to it. Could you tell us a bit about yourself? Sure. I've been being a Chris, which sums up a lot. I'm an embedded software engineer.
Starting point is 00:01:13 I work for iRobot right now, and I work on the home robots. So I actually work on the next generation Roomba vacuum cleaning robot that you may have seen a bunch of commercials for recently. But yeah, I'm an embedded software engineer. I started on the EE side. I used to design chips for Intel and AMD, and I sort of moved up the hardware stack to actually designing the chips at first and then writing software that ran internal to the chips. And now I write software that simply runs on the chips, and i am a mere consumer of the chips so um yeah that's kind of me ee to software not not an unusual path yeah i work with a bunch of people who you know followed similar chip company to software company i've always wanted
Starting point is 00:01:59 to know about irobot and my big question is do you actually test with cats? We test at home. We send robots home with our employees of course for internal stuff. Cats, kids, dogs, whatever you got. Although I do have to say we enjoy the YouTube cat videos at work quite a bit. I like the ones where the cat is bopping the dog whenever the vacuum cleaner goes by. Those are my favorite. Yeah, I feel bad for the dog, but those are really funny. So when we started talking
Starting point is 00:02:35 about doing a podcast, you had an idea. You called it empathy-driven development, which, is that where you start giving emotions to the vacuum cleaners? That's maybe the next few years, yeah, shortly before they take over. That's what we're doing. No, no, no. What could you design me to do? How could you do this to me?
Starting point is 00:02:56 That shall not kill humans. I suck dirt off the floor for a living. There's a great, what is it? It's called, oh, shoot, I'll I'll put it in the show notes maybe. Somebody has a, I think it's a self-aware Roomba is the name of the Twitter account. And it's basically a very depressed Roomba who goes around all day, apparently is self-aware. I'm sure our company doesn't sanction it, but it's still pretty funny. Anyway. Empathy-driven development. uh anyway empathy driven development what are the reasons that i'm here yes so empathy driven development is uh is just something i've been i've been kind of um it's been cooking around in my head for a while it's just kind of crystallized in the last six months um it's it's a way of trying to bring empathy into engineering specifically software engineering
Starting point is 00:03:40 um there's plenty of talk in in our, in the overall field, about having empathy for the customer, empathy for the end user, and especially like the design community is really big about this. The web community is pretty big about this. In the embedded world, I haven't seen as much of that. And then within a software development team, when I say empathy-driven development, what I mean is that we should have empathy as software engineers to other software engineers, to the people who will take over our code when we move on, or to the new hire who's just getting hired into your team, who's straight out of college. They're smart, they're bright, they're motivated, but they don't have 10 years of experience working in the code that you're working with.
Starting point is 00:04:24 So you want to have empathy for them. It's also the notion that you should have empathy for your future self, where I'm going to write some code, and a year from now, I'm going to find a bug, and I'm going to wonder what fool wrote this code in this foolish way. And I'm going to do a SVN blame or whatever version control tool you like. I'm going to do a blame, and I'm going to realize that fool was me. And you're going to feel bad for yourself. Why didn't I give myself some breadcrumbs?
Starting point is 00:04:49 Why didn't I document this better? Why didn't I make this clearer? So it's the whole thing of being empathy towards other software engineers, new hires or experienced people, and also your future self. So that's a longer description than I wanted, but that's kind of it. I mean, that makes sense. I do hear about empathy towards your users, and I strongly believe that, because why would you not be nice to your users?
Starting point is 00:05:16 But this idea of being nice to your coworkers, I don't know. I don't think that's how engineering is done. It's not just coworkers. It's coworkers you may never meet or people who follow you. I don't think that's how engineering is done. It's not just co-workers. It's co-workers you may never meet. Or people who follow you. I think it's a fascinating idea. And when I read the description before the show, it sort of struck me. Oh, yeah.
Starting point is 00:05:40 Of course you should be doing it? Of course people should be doing that. And then I started thinking about, in my career, and what things that I had done that go contrary to that and things I've seen other people do that are contrary to that. Even to the point of making it a point of pride, you know, oh, well, the next guy is going to have fun with this. Or the reverse, well, the guy before me wrote this code. Well, I don't know who that was. It must not be very good, so I'll just throw it out. And I think we're all guilty of that. So it's fascinating to me that
Starting point is 00:06:08 somebody has actually come to the realization that that's a bad thing because yeah, it should be a bad thing. Yeah, you definitely, I mean, I, you know, it's, it's empathy driven development. I sort of named it that I just needed a, you know, a hat hook to hold something. I'll hold the concept on, but you know, it's, it's almost something that shouldn't be capitalized. It's pretty general. I mean, like you both said and like I've said, the user experience community certainly is all about empathy. You should definitely have empathy for the person who's using your product. They're not a software engineer. You can't expect them to know how it works. But you should also expect the 22-year-old who just graduated college to
Starting point is 00:06:44 not know how your software is designed. And you should also expect the 22-year-old who just graduated college to not know how your software is designed. And you should expect, you know, I'm someone, I've been an iRobot for about a year now, and I'm a pretty experienced person. I worked for, you know, 12 years, 13 years. But when you're the new person on a project or at a company, you know, you don't have five, 10 years of kind of the context that everyone else has. And so being the new guy on the block, I think, also helped kind of kick my thinking to this. And it kind of plays into something that I remember Jack Gansel said, I think, when he was on the show, which was basically being professionals.
Starting point is 00:07:17 And I think that was his concept, right? Yes, definitely. Being a grown-up. Being a grown-up, yeah. And so being a grown-up means a grown-up yeah and so being a grown-up means treating those around you like grown-ups and and being professional towards them and leaving breadcrumbs for them and you know not just being a jerk and you know leaving impossible to maintain code behind while you go away well empathy is putting yourself in someone else's shoes and
Starting point is 00:07:40 looking around to see how it looks there and we've all been that new guy or girl, woman. Why am I the person having trouble with that? Anyway, we've all been that new person. Chris and I just avoid it because we're scared of this. So it makes a lot of sense. You know, you should be nice to them, why aren't we so why isn't this well duh of course we should all be good nice people understanding of other people's newness and forgetfulness and humanness why aren't why aren't we doing this i think i think it's not it's i
Starting point is 00:08:23 think it's more than just being nice. I think a lot of it is, well, first of all, in the tech community, we sort of have very unfortunately sort of praised the lone hero, like the firefighter who can single-handedly rewrite the code over a weekend and no one else can understand it. But man, that stuff works. And whoever it is, that hacker she's awesome she went off she hacked this thing together and it is an absolutely genius piece of software that no
Starting point is 00:08:52 one else can even approach and that's kind of i don't want to say that's our role model but that's certainly our that's kind of our ethos or that's kind of our that's kind of our um i don't know that's what we have a history of praising i feel like and that used to work i think 10 20 30 years ago when software systems and any systems were smaller and you could get by with a team of one to three really smart people and maybe you didn't need to communicate or really you know pass the baton back and forth with team programmers because maybe maybe a software project was didn't have to be as big or complicated but i think something that you know the longer and certainly the chips projects the chip projects i worked at at amd we had like 300 people working on some of those projects or 200 people working on some of those projects so to do meaningful work nowadays takes more and more people more and more communication And I think we need to let go of the old lone hacker geek in her bedroom
Starting point is 00:09:48 hacking away something that's genius and sort of realize that, hey, we're a team here. We need to work together. We can work together and actually have more fun and enjoy our jobs more if we sort of use empathy in our writing our code and dealing with each other so you have two ideas there and i totally agree about the empathy but i admit that i got into engineering because i was a bit of a loner and i have found the teams to be difficult sometimes i've gotten a lot better over my career, but in the beginning it was
Starting point is 00:10:25 a little off-putting to have to work in such large teams. And if I hadn't been building such neat things, I would have left because all this communication and having to worry about people's feelings, it was difficult to learn. Well, I wonder if it's a product of our education. Because when we're going through school and college and learning, you know, the tools that would become the skills that we need for these jobs, we're competing against other people, at least academically, right? It's like, well, you know, there's a curve, we're being graded, we are kind of working together, but everybody's working on their own project, their own personal project, which is their own education. And then you're dumped from
Starting point is 00:11:14 that straight into, okay, now you're in a company with a team, and you're smart, and other people are smart, and everybody's still trying to prove that they're smart and there's not really a bright shift, bright line shift between one mentality and the other. And so you end up with the rock star mentality, which is the word I've heard thrown around at all the jobs I've ever been at when we've been hiring people, oh, so-and-so's a rock star.
Starting point is 00:11:37 I only want green M&Ms. Yeah, no brown M&Ms, yeah. That's interesting I had not considered sort of the you know coming out of out of college
Starting point is 00:11:49 coming out of university and yeah that definitely is that you know you're on your own yeah you work on a team but your grade is your own your education is your project
Starting point is 00:11:56 that's an interesting that's an interesting history or genealogy that's interesting but we went to a school with a lot of study groups and we had a lot of group projects.
Starting point is 00:12:07 I didn't really participate in the study groups because see part where I said loner. One or two group projects, but they were... Yeah, I guess even clinic was still very... You didn't have a lot of experience and you were thrown together with people who were random. Different skill sets. You still were working on your own thing.
Starting point is 00:12:24 And even within those groups, your grade was your grade, right? That's true. To a certain extent. people who are random i just different skill sets you still were working on your own thing and even within those groups your grade was your grade right that's true to a certain extent yes it was a team project but other people could sink you and it wouldn't be like at a company where if somebody's doing poorly on a project you'd you'd try to step up and okay we need to get this done it would be you're going to ruin my grade. And actually, that made the rock star syndrome worse for me. The times that I worked on a group project and someone slacked off, and so I worked really hard in order to make sure that we at least met the bare minimum across.
Starting point is 00:13:01 And so I did the overnight hack it together and hope that it all works out so yeah i'm sorry chris i interrupted you you were you were starting to talk about university and college and oh no no i was just saying that that's interesting i hadn't i hadn't gone there i hadn't considered kind of it is a change i wonder if another change is also in college um you generally start from scratch on every new project, every class, every homework, you're starting over, you're not being thrust into some piece of software that's been alive for 10 years with a team. You know, maybe if you're a freshman and you could put on a team of seniors who've been working on a project for three or
Starting point is 00:13:38 four years, maybe that would kind of simulate more of the whole, this project is bigger than you, it's bigger than your A or B at the end of the semester. Whereas if you go into the working world and you're working with people who have started this system before you were born, maybe, depending on what you're doing, or at the very least have been working on this software for five, 10 years,
Starting point is 00:13:59 and you are thrust into the middle of it. So you have a starting point. You're not starting with a blank slate, but you also are starting with a bunch of assumptions that you just don't have a clue about. So I wonder if there's some way to kind of tie more of that into a university. I know that some universities are starting to do projects where you get in and you're part of some bigger project
Starting point is 00:14:20 your whole four years, your whole time there, and you're working with juniors, seniors, freshmen, sophomores. So there is kind of more of this life cycle to it i wonder if that's sort of more holistic sort of a project helps people avoid some of that rock star mentality and helps people you know feel like oh we're in this together and know how to work in a team i don't know i'm just thinking out loud here certainly understanding and getting a sense of a history of a project even how to use version control in order to figure out what's going on. We had one class where we had a six-month-long project,
Starting point is 00:14:50 and you had to do version control or you really regretted it. But that was it. I mean, there wasn't a lot more that was important for continuity. In six months, you can remember what you were doing for the whole six months. One of the things about the empathy-driven development that I liked was empathy for yourself in the future. I often write the comments for me in a year who's forgotten this and is really tired.
Starting point is 00:15:19 And so I try to put in enough detail to describe stuff, but not so much that it's overwhelming. So, yeah. You mentioned offline about imposter syndrome. We did a show about that, but it was like seven years ago in dog years. So, you know, there's a lot of women in tech conversations about imposter syndrome
Starting point is 00:15:46 but that's not the only place that exists no no and in fact when i started doing this this talk when i started kind of pulling together what ended up being a talk when i was at irobotica you know about the sympathy driven development i started realizing that this is not you know i'm again i'm not trying to create some methodology'm, again, I'm not trying to create some methodology or anything like that. I'm just trying to sort of get us all thinking about each other, quite frankly, like communication 101 is empathy. And how can we sort of relate to each other better? How can we relate to this, again, the 22 year old coming out of college who was in a dog eat dog world? How can we relate to them not knowing about version control? How can we do all this kind of stuff?
Starting point is 00:16:26 I thought, well, part of the problem is that we have kind of, some of us have some defense, we're kind of defensive, we feel insecure, we feel imposter syndrome. And as I started talking about that around the office, I realized that a lot of people had it. And it was interesting. I gave a talk to 60 software engineers at iRobot. And I put a slide up there that just had imposter syndrome on there.
Starting point is 00:16:49 And a couple people just raised their hands right off the bat, like before I said anything. And I said, all right, well, who here knows what it is and admits to having it? And a bunch of people raised their hands. Then I said, okay, here's what imposter syndrome is. It's basically feeling like you're a fraud. And I would say about two-thirds of the people in the room raised their hands. And that's, well, because of, you know, we have a reasonable percentage of women at iRobot,
Starting point is 00:17:13 but it's still more men than women. So two-thirds of the room raised their hands. So that's men and women. Yeah, that's definitely, I mean, my personal experience. Anecdotally, you know. I've often felt that way. And I think what you said early on in your description, the defensiveness, it's both wanting to be that rock star and being afraid that you're not.
Starting point is 00:17:38 And that you never will be, that you never were. And so I think it's sort of a toxic thing that seeps into how you work and maybe how you write code and maybe how you approach the next person. Because, yeah, your insecurities flow into all the kinds of decisions you make sometimes. And I think getting over that, I think, is an important step in getting to what you're saying about being more empathetic. Yeah, but I think just admitting that, hey, you know what, I'm not perfect. And I remember one of the women who raised her hands, she is probably one of the best software developers I've ever worked with. And she has worked on the systems, the robots, for a long time.
Starting point is 00:18:19 She knows everything. She's super easy to work with. When I saw her saying, oh, she feels like that, I'm kind of like, how you how can you think that like you're awesome she's like i don't think so and so i mean just realizing it's everywhere i think is an important first step for all of us to realize hey we're human we screw up we don't know some things we assume that everyone else knows more than us like we assume that i have a slide in the talk and i've seen it on the web other places where we assume that like we know some amount of information and everyone else knows what we know plus a ton more right and this is part of the whole insecurity thing and then the truth is that
Starting point is 00:18:56 i know a bunch of stuff and you know a bunch of stuff and you know everyone knows a bunch of stuff and we're all coming at it from different angles because you used to work at a hardware startup and you used to work at you know dell some you know a huge company and you used to work in this other company and you are fresh out of college and so you have you know you you have the youth that me and my 37 year old self don't you know don't have quite finger on the pulse of the 23 year old anymore so we all come to the table with different skills and experiences and like uh we just need to need to not undervalue um what we bring to the table with different skills and experiences and like uh we just need to need to not undervalue um what we bring to the table and realize that everyone brings something of value
Starting point is 00:19:32 now this is getting a little more touchy-feely than i really wanted to but it is realizing we're all human and we can embrace that and make our software better um more maintainable make it you know easier to work with easier to jump in as the new person, and also just more enjoyable to work on yourself. If someone else has taken the time to document their code well or to make it easy to jump in a new code, you're going to enjoy your job more. And I spend too many hours at my job every day
Starting point is 00:20:02 away from my family and my home and, you know, we're doing whatever else that I want to enjoy my job. I don't want to, you know, go into work and be like, I got to touch this code that I'm scared of that, you know, is just going to break all around me if I even look at it wrong. I want to be able to just walk in and just enjoy my job every day. And I think having empathy for my colleagues, having this kind of real, we're all real here, mindset can help that. And as I've talked about this in my job and other people have kind of picked up on it and people will now, I see it actually having some small benefits over the weeks and months since I've started talking about this, that I wrote about
Starting point is 00:20:39 anyway, of people, you know, being a little more open with each other, people talking about empathy and it's not just a buzzword. It's not just, just you know this touchy-feely feel goodery kind of stuff it's like i said communications basic communications so okay basic communications but what do you want us to do with empathy driven development what would tactically, how is it going to change my day tomorrow? Yes, that is maybe my next talk. I don't know. What it really boils down to is, I think at first, if we admit that this is something that can be good,
Starting point is 00:21:22 that it's good to think about who is going to be consuming your code. And maybe that's an end user in the products standpoint, but the person consuming your code is your fellow software engineer. So step one is just realizing that. Step two, like you said, empathy is putting yourself in someone else's shoes. So when you finish up a function, before you check in your code tomorrow,
Starting point is 00:21:45 or before you think about starting a design, stop and think, all right, who else is going to have to work on this? So in the case of a function that you're about to check in, you're making some sort of a bug fix, and you could just check in the bug and just, you know, you fix the four lines that are required or whatever, and you could just check it in and close the bug and be done. Or you could write a little bit in the comment for the bug
Starting point is 00:22:10 or in your bug tracking system or in the code itself for what was actually the cause of the bug and how you could fix it or how you did fix it. Or maybe even what future problems you think it might cause, but you didn't have time to fix today because we needed to get this in for shipping the next rev of the product or whatever it is. So that's just off the top of my head,
Starting point is 00:22:32 an example of something you can do. Well, I think you can codify certain actions. You can say you have to run a static checker on your code before you commit it. You have to run these build check scripts. You have to do certain things so that you don't, at least in the very short term, make things worse for other people. I mean, I know we're talking about long term,
Starting point is 00:22:53 sort of the next developer or at least your colleague who might see your code in weeks or months. But, you know, there's ways to screw up the code right now for everybody else and ruin their weekend that can be made a little bit easier by saying, here's a process for making sure that you're not doing something that's going to harm somebody else. And maybe it's code that another team needs for a different project that you could hold up and isn't important to you necessarily right now but it might be very important to them um the thing i also wanted to kind of touch on was that i could see imposter syndrome and this
Starting point is 00:23:33 sort of mixing together and and maybe this is a personal problem but turning into sort of feared fear driven development where i'm kind of paralyzed by oh god i don't want to touch this code because i might i might make it bad for the next person or i might make a mistake that uh that affects the next person or affects this other group and i actually find myself doing that sometimes you know depending on which area of code i'm in wow i am being really careful and i know it's a good thing, but the emotion I'm feeling is not necessarily warm feelings to the next person.
Starting point is 00:24:10 Are you a perfectionist by any chance? You'd have to ask the other hosts. Sometimes. Definitely sometimes. And, you know, it depends on what we're working on. You know, iRobot has more than vacuum and home robots.
Starting point is 00:24:30 They have the bomb disposal robots. And if I was working on the software for that, I don't know if I would care as much about my next person being happy, that I would care about their shoes being good, so much as making sure that my robot worked. And that I was not afraid at any point that I was going to make my coat break. And so I can see what my Christopher is saying. That there is an element of don't screw up.
Starting point is 00:25:03 Even with empathy driven development that you have to make sure you can i don't want to say justify your actions because that seems wrong but but have this awareness of there are multiple masters in software you you're working towards shipping on time shipping a product you're proud of, shipping a product consumers want, shipping a product that has good code that future people can live with, my colleagues. And usually I have this pyramid of cost and time and features. And where are you on this pyramid? And now if I add another corner that's, I don't know, that's empathy? That doesn't quite work.
Starting point is 00:25:53 You could break it down to common terms like maintainability, testability. Reusability. Reusability. These are all things that we use as terms in software design that are sort of vague. But I think implementing those and making sure you understand what those mean and designing your software in such a way that it is extensible, it is maintainable, reusable, that does make it easier for the next person. And that's at a higher level than just your day-to-day pounding on a keyboard.
Starting point is 00:26:24 And if you could do that with empathy in mind, then I think that would be better. If you just had the directive to make your code reusable, that is not as good as make it reusable because of empathy. Right, and make it reusable specifically with the new hire, new grad from college. Make it, you know, make it so that someone who does not know that the system architecture looks like this, because, of course, everyone knows that the system architecture looks was, you know, how would a empathy driven development? Is that like another, you know, capital M methodology? Is this like agile or
Starting point is 00:27:09 test driven development or something like that? And I don't, it's definitely not anything like that. Frankly, I think the concept of empathy sort of scales very well through any of the three legs of the triangle that you're talking about and sort of anything we do and if we can get comfortable thinking all right who's going to have to use what i'm working on that can help us make it more reliable or more maintainable or more usable or you know especially like you're saying the bomb disposing robot or you know someone who's writing code for a pacemaker you know you have your empathy will sort of be more for the end user in that case than from your fellow software engineer. But then again, you don't want your next fellow software engineer
Starting point is 00:27:49 to have a hard time modifying the code and screw something up and potentially kill somebody. So it's all a balancing act. But I think the concept of empathy, I think it can scale and be really, really helpful for us to sort of admit that it's a first-class sort of design problem and design resource. And I think that Christopher had it right with there are these other terms we use and what they should stem from is empathy and not from directive. And so I was going to ask you, well, how much should we, how much should this additional empathy cost us? I mean, you talked about taking a minute, you look at your code, you look at your
Starting point is 00:28:36 function and you see, is this the best I could do, not only for right now, but for the next person's understanding. And that takes time. And we're contractors, so time equals money. It's a very direct relationship for us. It should be a direct relationship for everyone, but that's a different rant. For us in particular, an extra 10 minutes costs somebody some money. So can we justify it? And yes you if you say i'm making it more reusable i'm making it more maintainable then absolutely we can justify it i'm making it more
Starting point is 00:29:13 empathetic that should be a justification but it's not yet that's that's a hard sell i mean the word empathy is just sort of it can be a very throwaway sort of thing it sounds you know quite frankly i will have this conversation with people i mentioned the word empathy is just sort of it can be a very throwaway sort of thing it sounds you know quite frankly i will have this conversation with people i mentioned the word empathy and you know geeks don't like feelings i'm just going to be stereotypical there geeks don't like feelings and empathy sounds like something that requires feelings or involves feelings so again i'm playing a stereotype here if you want to complain go ahead and email alicia and don't email me about it. We have other people. We can have them email. Wait, we can't send it to the amp hour again.
Starting point is 00:29:48 I wasn't going to send it to that. Don't send it to the amp hour. Is that what you said? No. A couple of times we've mentioned it. That wasn't where I was headed. Okay. They have a good podcast, too. Let's see.
Starting point is 00:30:02 What was I saying? I forget. Geeks don't like empathy because they love Spock. I don't think you said that part, but I added it. No, it was implied. But as a geek, as soon as I mentioned feelings, you went to Spock, and so there you are. But yeah, we don't tend to like the word empathy.
Starting point is 00:30:19 It's hard to sell, right? You go to your VP of sales, and he asks you why you're two weeks late and it's costing a million bucks a week and you say empathy. That's not the right way to go. That's a quick way out the door. Yeah. But, okay, so it's a turnaround.
Starting point is 00:30:32 So you're empathetic. So you think, okay, VP of sales, put yourself in his shoes. He's got customers banging down his door. His CEO says, look, you're out of here if you don't give me a million bucks a week in revenue. So, you know, you're out of here if you don't give me a million bucks a week in revenue. So you understand his constraints. Even if you completely disagree with his decision to push this feature out the door before documenting it more or making it more stable or doing whatever it is you want to do, realize he's coming at you with this business case, with this deadline. For some reason, you may completely disagree with that reason but if you can put yourself in his
Starting point is 00:31:05 shoes and understand that reason you're you've got at least a little bit of a leg up and at least a little bit of advantage in having a conversation with him about the trade-offs if you just think oh he's he's dumb and you know sales is sales is bad engineering is good engineering is smart sales is dumb which is again the stupid stereotype that engineers have. You've sort of given up. You're playing a foolish game. And I think recognizing that the other party may have other motivations and information and sort of putting yourself in their shoes, I think,
Starting point is 00:31:39 can go a long way to helping your work relationships. This is so embarrassing i remember i remember why talk yeah chatting with with my christopher and saying about someone i don't know whether they're being malicious or just stupid and i do want to kind of go back and say, you know, really, that person is neither one of those things. They just don't have the same information, the same background that you do. They have something else, and that something else is valuable. You just don't know what it is yet.
Starting point is 00:32:16 I think what you're saying is right. I think it's a really tall order for a lot of people to do what you're saying. But I also think that a lot of engineers don't understand, and this is a little bit of a tangent, but don't understand the rest of the business. And so it's hard for them to put themselves in other roles' shoes because, well, engineering is the important thing. We make things.
Starting point is 00:32:40 The rest of you people in marketing and sales or whatever, you collect your huge bonuses and sit in your desk and play solitaire or whatever we imagine they do but really businesses are designed along these roles for a reason and they're not less important not really yeah in fact they may be more as an engineer go try to sell your your product to you know a million people and see how well that goes and so it's And so it comes back to education, educating other people that look, you may disagree with this person, but you better understand their job at least somewhat as well as they do
Starting point is 00:33:17 before you can really disagree with them about a decision they made. And that's a tall order. Cross-functional development is really important. I mean, the more I do hardware, the more i understand how some of my hardware engineers have just been no don't put down the soldering iron and walk away i will do that for you but that goes both ways oh it absolutely goes both ways and i've had some of my electrical engineers here's how you learn to solder and here's how you decide what you're going to do. And those are people I will be friends with for the rest of my life. It definitely goes both ways. I think it's a couple of really interesting things in there.
Starting point is 00:33:52 And so, you know, the whole discounting the other parts of the business. I can remember, you know, I was 22 or 24 coming out of college. And I remember thinking, like, I don't know what all those business people do. Just like you're saying there. And I really thought, you know what matters in my company making money? It's 95% of it is us engineers doing awesome stuff because, you know, of course, we're all smart. And the problem with a lot of engineers is that, you know, we tended to take hard classes and we thought they were harder than any liberal arts classes and whatever. We were just much arrogant.
Starting point is 00:34:21 We have proof. We have proof that engineering is harder now. Are you sure? There are lots of studies that say that. Wait, what? Yes. We wrote the studies. That's the problem. That's the problem.
Starting point is 00:34:34 But yeah, so we come out, and 95% of what drives a business success and drives my paycheck must be engineering. And the other 5%, I'll accept that that's some businessy thing but it's not really necessary and like as i got older and as i worked at a couple different companies and as i started especially working at smaller companies you realize that that is just not true and in fact you know i would say engineering the actual technical part of a product let's say it's 30 of the overall puzzle and And I would say the other 70%, obviously I'm just making numbers up here, but the other 70% is absolutely not technical. Furthermore, I think, and I make this point in my talk, that sort of having a product, whether it's a web product
Starting point is 00:35:19 or an embedded product or software heart or whatever, having a product that simply works and does what it says on the box, I feel like that used to be sort of enough, at least in the software world, to get you maybe some revenue and have a business around. I feel like the bar has lowered for creating especially web apps and for creating usable pieces of software. And so merely having a software that does what it says in the box
Starting point is 00:35:44 is sort of table stakes nowadays and so you have to have something else along with that to actually make money to be a viable company and that's not to say that companies can't be screwed up and that people can't be incompetent in other roles, it's just
Starting point is 00:35:59 you ought to know the difference yep, well and you know us engineers we think we don't make mistakes and you know, whatever we did, it's foolish, right? It's absolutely foolish to think that. Bug tracking systems for a reason.
Starting point is 00:36:12 Every time I think that I look at my Twitter feed and how many typos I have. It's so embarrassing. I'm sure when I listen back to this and hear myself talk, I'm going to be like, what, why did I say like that? That doesn't even make sense. Like that,
Starting point is 00:36:24 that doesn't even grammatically parse. What are you talking about? The key is not to listen back. Yeah, we've gotten over that. Do you just not listen back? I guess, Chris, you do. Sometimes I do. I have to edit them, so. Yeah, I get to hear it a lot.
Starting point is 00:36:37 That's probably why you resisted to being a co-host for so long. So do you have a manifesto for empathy-driven i i don't i don't have any any good tagline um hippocratic oath for engineers actually in your slides you had you had readable oh right right yeah that that that is the one word sort of like I feel like the most important sort of thing that came out of that talk. What generated that talk in the first place and this whole thing in the first place, the sort of concrete thing was at iRobot, we came up with a set of software best practices for the organization. And it was a few of us who kind of more senior guys and we kind of put together a three- or four-page Word doc that had, I feel like, a pretty good, concise list of things we should do, and we tried not to be too prescriptive.
Starting point is 00:37:32 And, you know, at iRobot, we have embedded software. Like, I'm writing very, very low-level sleep code on a Cortex-M3 microprocessor. And then we have people writing Java on robots, and we have Linux running on robots, and we actually have Lisp code running in a bunch of our robots. And I really hope that I think that I think that I can say all these things. My legal staff at iRobot are nice people. So I think we're okay. But we have tons of different software. We have iOS software, we have Android software, we have tons of different software. There's no way that you can write down a list of rules. And so I was going to present
Starting point is 00:38:07 this list of software best practices to the organization. And as I tried to think about the best way to do that, I thought, there's really nothing here that isn't sort of coming out of a just make sure your code reads well for the next person who has to come in after you. And that was kind of the last straw after I thought about that. Then this talk sort of spilled out, and this whole concept of empathy-driven development sort of spilled out.
Starting point is 00:38:42 So yeah, readable, I feel like, is also a good hook to hang your hat on because if you think about what's readable to a compiler, like your code, it kind of has two audiences. The first audience is a compiler, right? And the compiler accepts garbage, right? You know, there's obfuscated C contest that shows just how bad code a compiler will accept. And the example I give in the talk, I think is some code that is in the shape
Starting point is 00:39:03 of like a nuclear radiation sign or something. And I don't even know what it compiles into but the compiler is happy with just inane garbage now granted the compiler is necessary but it is not sufficient so pleasing the compiler is necessary but not sufficient to writing good maintainable extensible code and so making it readable for your future self and for the new grad out of college who comes after you i think is maybe not a manifesto but it's certainly a good one word sort of call to action but you had more words in your slide deck that you'd come up with as part of this i did i did um yeah readable reasoned, reusable, reused, repeatable, and reliable. So these were just the six names. Alliteratives.
Starting point is 00:39:49 Yeah, the six alliterative names. Six R's. I made pirate jokes in the emails. You did make pirate jokes. Yeah, I never thought, I never realized that before, and I will not be able to. And now you're totally going to use it in your slide deck, aren't you? Oh, absolutely. I'll put your picture up there. With a little patch drawn over. No, but these are just kind of the six things that we sort of could classify our six best practices we boil it down to. But I don't even use that in the talk anymore.
Starting point is 00:40:21 I think I used that in the first time I gave the talk. But I feel like just getting the notion into people's heads that, hey, think about each other, think about your future self, think about each other, is a big enough topic that everything else will kind of work itself out if we can all get better at thinking about each other and thinking about, you know, putting yourself in each other's shoes. And I think everything else will take care of itself. Has it made a difference? How long ago did you give the talk for the first time and have you seen any changes so i gave the talk the first time let's say in july of this year i think so short sample time yeah not very long i'm gonna talk a couple times i'm giving it a couple weeks um i have seen it
Starting point is 00:41:04 resonate with people people have come up to me and first of all said thank you for talking about um thank you for talking about uh imposter syndrome like i thought i was the only one that's always one of the symptoms yeah absolutely absolutely but um so that's been like if nothing else that's been a very positive thing but i have seen people talking about sort of the empathy side of of okay we're doing a new system um let's actually get together and put down on paper how this is going to look because we both know that you know you're going to end up on a different project in six months or you know i just designed this really nasty thing uh yeah i need to go and sort of because of
Starting point is 00:41:44 empathy i need to go and and make it more explainable or more understandable to somebody let me put that on the wiki or let me put that in the one note or whatever so i've seen little bits and pieces of it um too early to say you know whether it's actually a net positive or a net negative who knows but uh i've seen what i've seen gives me hope and uh and i i think it has some legs and I think it has some use. So I'm, I'm hopeful. Good. Do you think we all need to be writers in order to make readable code? I see this cause I wrote a book and you know, I get to say things like that.
Starting point is 00:42:22 Do you think your code is more readable though? No. Okay. Do you think your code is more readable now? No. Okay. But, you know. I think the way that I actually stumbled upon empathy was I was thinking about what it is that we do. We have these six, like the readable reason, these six R's, the end of pirate software best practices. Pirate code. Exactly, pirate code.
Starting point is 00:42:44 I can't stand it is she making pirate cases achieve across the mic thing no um and uh and i mean there's gotta be something that's gonna be what what are we doing here and i you know i flash back to the office space the two bobs sitting across the table you know what would you say you do here? And I sort of thought, we really write fiction. Like, all the software stuff is actually very, very fictional, right? So we create worlds, and we create classes, and we sort of get to create, it's fiction. It's kind of a generalization, but we sort of, we're writing fiction.
Starting point is 00:43:24 We actually even create the constraints that we are later bound by. And so then I started thinking, well, what is it that fiction authors have to do? You know, so look at J.K. Rowling. She has to put herself in the head. She's the Harry Potter author. Her job is to put herself in the shoes of both Harry Potter, both her character. What's he going to do? What's he going to be motivated by?
Starting point is 00:43:48 Will he really fall in love with Hermione? Will he really hate Snape as much as he does? Will he identify with Voldemort even a little bit? And she also has to put herself in the shoes of her readers. The 12-year-old kid who's going to be reading her books, the 30-year-old guy who's going to be reading her books, the 30-year-old guy who's reading the book on his own, the 40-year-old guy
Starting point is 00:44:09 who's reading the book to his kids. So she has to kind of serve both audiences, if you will. And she has to really put herself in these different people's shoes. And I thought, you know, I wonder if that can help us at all. And so that's kind of how I developed this.
Starting point is 00:44:24 So when you say, do we need to be a better writer? I think we can use a lot of the same tools, which is, you know, is this believable? Is this writable? Can the reader follow? I'm sure when you were writing your book, Alicia, you must have thought, okay, can a reader who just picks it up and plunges into chapter seven, can they pick up the thread of what i'm talking about without being completely lost am i right yeah uh and o'reilly especially encouraged that that i think about my users and then they also had this nice description of your readers are not dumb people so when you feel like you're talking down to them or you're over explaining, just delete that.
Starting point is 00:45:08 The people around you are smart. They just don't know what you know. And that's the part you're giving them. You're not trying to make them feel dumb. You're trying to not make them feel dumb or they're going to throw your book away. You want them to feel smart but also feel like they're learning something. And i think that makes sense with code as well i think
Starting point is 00:45:29 it does i love that point actually that almost that almost sounds like maybe it's an antidote to imposter syndrome so or rather let me make sure i heard you right i really told you to assume that your audience that your readers are smart they just don't know what you know yeah so turn that around so what if you thought hey my colleagues probably think that i'm smart i just don't know what they know and i wonder if we started to sort of treat each other like that and maybe even tell each other that i wonder if that would help sort of raise the, get rid of some of that imposter syndrome. Well, the other thing, and I do talk about imposter syndrome, usually more in the women and tech areas. And I talk about it as ways to battle it.
Starting point is 00:46:16 And one of the ways that has worked for me is to have, have the rockstar deck to go ahead and put together. And for me, it slides because pictures are, are useful for me of, of what I have done that other people seem to find impressive. And then when I'm about to go in for an interview or I just feel like, oh my God, I'm never going to understand this code or this data sheet. It's so hard. Maybe I should just, I don't know, maybe I should just go bake cookies. I'm good at that. I look at the slide deck and it makes me remember that there have been other hard things I have done, I have pushed through. I just need to be a little bit more stubborn about allowing myself time to let this sink in. And I like that. And I talk to other
Starting point is 00:47:14 people about, you know, it doesn't have to be a slide deck. Maybe it's a piece of paper. Maybe it's your resume going through and remembering you did these things and people respected you for them. And so, yeah, there's a lot of imposter syndrome things. And I think you're right. When you look at these things you've done that you do know and realize these other people don't necessarily know them. And if you're willing to exchange, if you're willing to teach them they might be willing to teach you without condensation that's condensation is not the right word condensation no no i don't think condescension condescension condescension condescension thank god i have that
Starting point is 00:48:01 new vocabulary thing i've been working on there were a few words that flew by that i want to make sure we kind of come back to because i think there's some important bits one is the word audience because we are multiple audiences we have i like that chris had that yeah as different audiences need different things but realizing you do have an audience as a coder it It's not, the audience is not the instruction cache. Well, it is one. As a geek, we think the compiler is our audience. Right, right, right. And I think you kind of said that too. But that's not the only audience.
Starting point is 00:48:36 People are going to, people are going to be looking at what you do. And the other thing, which is kind of related to that, is there's another R word that I think needs to be included. And that's respect. Oh, yeah. That's a difficult piece because is there's another R word that I think needs to be included, and that's respect. Oh, yeah. And that's a difficult piece because you could be working on a team
Starting point is 00:48:51 where you don't socialize with people, you don't know them very well. Or you're remote. Or you're remote. And you have to get to the kind of thing you're talking about where you think, well, people don't know, or people think that I'm smart and other people have things of value that they know that I don't know. That's respect.
Starting point is 00:49:10 And I think you have to know people and get to know them a little bit outside of, you know, the bug tracking system and git commits. I'm not good with automatic respect. No, right. I mean, people have a title. Even when I worked with like at ShotSpatz Butter and there were police chiefs. And you really have to respect them because they have a gun. Okay, well, that's different. And it's obvious that they have a gun.
Starting point is 00:49:37 And being a police chief is not an easy job. And I know that because I've talked to enough of them now. And yet, it's really hard to just, yes, sir. I grew up in California. Sir is not something you say unless you're in the military speaking to a superior. So I think making respect a default. Making respect a default is hard for me. I'm used to people earning respect.
Starting point is 00:50:04 But that's back to the rock star mentality. It should be default. You should be able to lose respect, but you shouldn't have to earn it. People should be innocent until proven guilty. Yeah. Interesting. I'm actually, if you don't mind, Chris,
Starting point is 00:50:15 I'm going to steal that respect line. Steal whatever you like. Remember what I said. The seven R's. Now there are seven R's in the pirate code. Yay. Seven R's. That's a good R's in the pirate code. Yay! That's a good number.
Starting point is 00:50:27 It's better than six. So I have a slide in my talk, and I say, you know, I'm reading off my talk here, so one second. So approach readability with empathy means that your code should be understandable by a new colleague. You can assume they're smart, they're motivated, and they're eager, but they don't have your memories, your assumptions, or your experience. Meet them where they are, not where you are. And I think you can sum all that up with respect. Like that's just sort of
Starting point is 00:50:53 one word way to sort of say all that. And like O'Reilly told you, Alicia, that, you know, assume your users, your readers, your audience is smart. Don't pander. Don don't talk down don't be condescending but you know lift them up teach them something that you know yeah and i think i think a fantastic i just uh that this vision through what we're talking about this if you guys have ever read any of kathy sierra's um headfirst series of books yes so if i like them very much oh my god i think kathy sierra is just a phenomenal writer and just a phenomenal just her ideas are just fantastic um her um the premise of these books if people aren't familiar with them is it's a series of tech books um that i think orally publishes them don't they do all right so there's a headfirst series and
Starting point is 00:51:43 they're tech books and they basically take some great, great pains to realize that you as a reader have this brain and have this psychology and have this, you know, lizard brain or this hind brain or whatever. And that reading 300 pages of dense material won't necessarily make you learn anything. And so she flips the normal tech book on its head and sort of meets you where you are and goes in with like big pictures and cartoons and changes the the kind of format of the book up from anything you've seen before and you know you may you may love her books or you may hate those books but at the very least like she has tried something um i'll say revolutionary that i think really tries to sort of be empathetic to meet people where they are. I mean, her whole, she's given a series of talks, I think, like the Business of Software
Starting point is 00:52:27 Conference and a couple other places about basically making your users kick ass. And I think the whole O'Reilly thing that they told you about your book, Alicia, which is, you know, your users are smart, your readers are smart, teach them something they don't know, goes right along with what Kathy Sierra's thing is, which is you want to teach and empower your users, your readers, your audience to do something they couldn't do before. Those headfirst books have a lot of cognitive psychology behind them, looking at how brains learn
Starting point is 00:53:00 and how many times you have to say something in order for this to stick and how many different ways you have to say something in order for this to stick and how many different ways you have to say it and how you have to engage the people to be more than just passively reading in order for it to stick they're big i mean you know maybe you get a book about java and it's 150 pages but the headfirst book is 350 pages at the the end of each of those, in three months, when you haven't done more than read these books, the headfirst one is likely to be the one you remember. And they're faster to read.
Starting point is 00:53:35 Well, they're pretty faster. They are faster for me to read because I don't have to keep rereading things. I tend to remember them. But yeah, they don't work for everybody. She tends to I tend to remember them. But yeah, it works for everybody. She tends to repeat things at different intervals, which I think is scientifically proven to help us remember stuff.
Starting point is 00:53:52 So yeah, she meets the audience where they are and yeah, using cognitive psychology. One of the things I want to do is I want to learn that there's got to be people, there's got to be sociologists and psychologists that have looked at how empathy sort of works in the workplace. And there's, there's got to be people who study this as opposed to me, who's just, you know,
Starting point is 00:54:12 I'm a software engineer who stumbled upon this thing that could be a good idea. There's got to be some, some research out there and some, some people who understand this better than the three of us do. Right. So I want to look into that more. So you're saying you have imposter syndrome about imposter syndrome. That's exactly right. And I think this one's realistic though, because I know that I know that I don't know very much about it, but yeah, I think, I think this is, I think this is a, a deep topic, which, which I mean, shoot in just an hour talking with you two an hour talking with you two, you just generate a lot more thoughts
Starting point is 00:54:47 in my head. Yeah, this is great. Regarding what you were saying, Thinking Fast and Slow by Daniel Kahneman. It's an incredibly dense and amazingly actionable book in cognitive psychology where he talks about how your brain works and why it is so easy to fool. And I've thought, if you ever want to be a con artist, this is the book you should start with.
Starting point is 00:55:17 But even if you don't want to be a con artist and you want to know what are the fallacies people fall into and why and how to prevent them it it was really good and it's it's on my list of books that i want to read multiple times which most non-fiction books don't make it into the multiple time book right of course it's ginormous and took took me about three months to read but you know it was really good so i want to switch gears from uh empathy driven development i'm actually sorry i want to make one more oh sure so that book is a phenomenal book and as soon as you said that i thought about another book which i just had to look up here while we were doing this. Sorry. It's called Make It Stick, The Science of Successful Learning.
Starting point is 00:56:06 It's by Peter Brown. And it is along the same lines, but he actually looks at the science of teaching and recall and sort of flips a lot of conventional things that we've been taught on its ear. So anyway, another excellent book is this Make It Stick, The Science of Successful Learning. Sorry. No, that's great. I will add it to my list and to the show notes. So, so switching gears, are you, do you have any other questions?
Starting point is 00:56:37 So many. Probably time for another show worth of questions. So it's a good, I think it's very interesting you stumbled upon this. I think it's the right time to have a discussion, to start a discussion, a dialogue about this kind of, putting this kind of thought back into engineering. And I just want to encourage you to keep spreading it around
Starting point is 00:57:04 outside of my robot yeah i sent you a couple of conferences uh suggesting maybe doing some proposals because i agree i would like to have it spread around more we seem to have gotten into a bit of a habit of only talking about people who are kind of mean and stuff and it'd be nice to talk more about the good parts of engineering and how to make how to shine a light more on those and the supplies outside of engineering absolutely but i think that's a good place to start yeah yeah but i mean your your show is a good example you bring a bunch of people on here and your show is actually a very um positive uplift i mean you bring a bunch
Starting point is 00:57:42 of people on the show who like what they're doing, who seem to like the companies they work for, who, I mean, yeah, whatever. We all have little annoying grousing things that we complain about, you know, some company foolish policy or whatever. But for the most part, you've got people on your show who obviously love what they do and seem to work with pretty cool people. And you are obviously friends with some of these people. And so, you know, you guys have a lot of empathy for each other. You have a good time. So I think it's a good example of, yeah, it's a good time in the industry, and it's a good time to sort of get better at what we're doing through empathy, I think. So that's cool. Empathy is a good way to get better at this.
Starting point is 00:58:17 I need more of it. So it'll make me think at least. But as I went through my email to prep for the show, I realized you've emailed a couple of times. I think one of the first was after the imposter show. But I was talking to an executive at a large-ish company who found it difficult to believe that people listen to a show a whole hour long about embedded software and hardware.
Starting point is 00:58:46 And I did my usual sort of clam up because I was in public. And if you meet me at a conference, I'm either hyper because I'm trying not to be shy or I'm quiet because I have given in to my terminal sinus. And I said, they do, according to our statistics. What should I have said to him about people who listen and why they listen? I don't know. I listen. I enjoy your podcast. Why do I do that? Because I like the field and you have interesting interviews with interesting people. I mean, can you share your listener numbers? Does iTunes give you like how many people download in podcasts of yours? A few thousand an episode.
Starting point is 00:59:37 Oh, yeah, that's pretty huge. I mean, that's the beauty of the Internet and podcasts is that, you know, this is kind of a niche podcast but think of how many companies have people doing what we do and plenty of us enjoy this more than just the eight to five thing and so it shouldn't be too surprising that people would want to listen to it you know on their commuter or on a run or you know on on the side so other soldering as someone who listens to a ton of technical podcasts, the question, when she told me that somebody had asked her that, my brain kind of locked up.
Starting point is 01:00:11 I was like, I don't know. Why wouldn't you? What do you do on your commute? You listen to NPR, probably. Which is no different in its own way. I mean, it's people talking. That's my point. It's exactly the same thing.
Starting point is 01:00:26 This is just more focused on something than the general news that you get on NPR or whatever you listen to. Yeah, you know, if I'd brought up NPR, that would have totally stuck for him. Well, good. Now I have words to say for next time. Just share your subscriber count.
Starting point is 01:00:46 I don't always like to um the subscriber count is is cool and sort of strange i i'm pleased but i do often pretend there are less than 100 listeners because then i can say what i want without worrying but if i start thinking about how large, it does get a bit intimidating. And it's been somewhat bad for putting together conference proposals. And this is also the Amp Hour. Dave had a rant on the Amp Hour about how he didn't make proposals for conferences. I don't know whether it was ever or very often, but he seldom did because his audience base is so much larger than a conference room would be. And he has, I mean, they have more listeners on the Amp Hour, and he has his video blog
Starting point is 01:01:35 that has just way, way more listeners. He's super popular, yeah. Super popular. Mm-hmm, mm-hmm. So he's got a huge audience. But even our couple thousand, I'm not going to, I mean, I kind of packed a room at the Embedded Systems Conference, and there's still only a couple hundred. And with all of my technical difficulties,
Starting point is 01:01:55 I did a crappy job of talking because I didn't get to break and restart and say, can we do that part again, which now we can do on the show so it's a little it has the the larger listener basis made me less likely to speak at conferences especially when i have to do a whole clean new presentation and i have to commute and blah blah i'm lazy it's it's easy to get on the microphones and so many people do have in things they want to talk about that they're enthusiastic about, their jobs or ideas. Next week we're talking to somebody about electrifying trucks. I'm so excited about electrifying trucks. That sounds dangerous.
Starting point is 01:02:37 I know. I don't think it's going to be that dangerous. It does sound cool. I will tune in. After I rate you on iTunes. Thank you. Well, I think we're about out of time
Starting point is 01:02:53 and I think it's probably getting late where you are and dinner time where we are. Yes. Do you have anything left to ask, Christopher? No, I threw in my last comments before the last topic there. I hear iRobot is hiring and that you like working there. Where'd you hear that?
Starting point is 01:03:13 From you. That's right. Yes, yes, we are hiring. We are growing quite a bit. We have a lot of software engineers and actually electrical engineers and mechanical engineers that we are hiring. And so Alicia has allowed me to say this on the air. And if you'd like, please check out our careers website.
Starting point is 01:03:36 I'm always happy to email with people, even if you've never done anything with robotics before. When I started at iRobot, I could not spell the word robot. I had never done anything with robots before. We realized that there are only so many people who actually have a degree in robotics or have a background in robotics. So we're just looking for
Starting point is 01:03:53 for software people. We're just looking for smart software people, you know, C, C++, Java, the usual sort of the usual, I'll say lower-ish level, system level kind of stuff. But we're looking for, you know, smart developers who are easy to work with.
Starting point is 01:04:08 And I've got to say that we're a very good company to work for. So I think, yeah, if you feel free to email me at my own email address, and I'm happy to talk to anybody who's interested in any of our jobs on our website. It's iRobot.com and you can navigate to the careers part. Most of the careers are posted for being in the Boston area. Is that right? Correct. Our headquarters is just outside of Boston.
Starting point is 01:04:35 We have a smaller office in Pasadena, California that does more researchy kind of stuff. But check it out. Both Boston and Pasadena are nice places to live. So, yeah. And your email address, which I'm not going to put in the show notes, I'm just going to say it aloud here, although it's not too hard because I am putting his blog in the show notes and they're linked. It's svec at sedsvec.com So that's svec at sedsVEC.com So that's SVEC at SEDSVEC.com
Starting point is 01:05:05 Right. Thanks. Do you have any other last thoughts you'd like to share with us? You're going to take that out, right? No. Do you have any last thoughts you'd like to leave us with? No. No, this was a
Starting point is 01:05:21 heck of a lot of fun. I'm so glad I got to talk with you. I got a ton out of this, so I hope that you and all your listeners do. But I really enjoyed this. Thanks for having me on. Thank you for chatting with us. It has been fun. And I hope you do more with this
Starting point is 01:05:35 because I want to hear about it more than just on our show. I look forward to it. Thanks for your encouragement. Thanks, Chris. It was awesome. Yeah, thanks. My guest has been Chris Speck,
Starting point is 01:05:44 Senior Principal Software Engineer at iRobot, science fiction writer or software writer, and advocate for a more humane software development. Thank you to Christopher White for producing and co-hosting, and thank you for listening. If you'd like to say hello, our usual place, show at embedded.fm, or hit that contact link on embedded.fm. The final thought for this week was actually stolen from that slide deck we've been talking about. I'm not sure it's going to be in
Starting point is 01:06:16 the show notes, but I bet if you email Chris, he'll probably find something for you. And he has a quote from Richard Hamming. That's Hamming of Hamming Codes and Hamming Distance. He's the founder of the ACM, which is just, you know, such a great group. And he was a Turing Award winner, which I believe means he's not a computer. Or he is a computer. I don't know. But he worked with computers longer than most of us have been alive and he says the more i study programming the more i understand i'm looking at human beings remember write psychological rather than logical
Starting point is 01:06:58 right so it can be followed so that you five later, will know what you were doing. I think that's better than my alternate ending, which was happy cows give better milk and better milk makes better cheese. But now your alternate ending is the ending.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.