Herding Code 240: Phil Haack on Working from Home

Download / Listen: Herding Code 240: Phil Haack on Working from Home

Jon, Kevin, and Rob talk to Phil Haack about working from home.

Transcript:

Note: We’re new at this. Should we publish an SRT file? WEBVTT?

 Jon: [00:00:00] Welcome to Herding Code. This episode is being recorded March 24 2020. This is Jon Galloway.

Kevin: [00:00:16] This is Kevin Dente.

Rob: [00:00:17] This is Rob Conery.

Jon: [00:00:19] Hey, and today we’re talking to Phil Haack working from home. So before we jump into that, Scott Allen, when one of our hosts passed away in January, and I, I’m sure most of our listeners have probably already seen that. But, you know, I don’t even know what to say. K Scott was an amazing friend, and, we were just so lucky to have him on the show for so many years.

Some, some people recommended one of their favorite episodes was episode 63. Rob, I think you brought that one up. That was Victory in Software Development.

Rob: [00:00:52] Oh man that was amazing.

Jon: [00:00:54] And he was telling the story of the battle of Antietam and, man, I could listen to that show over and over.

You know, yeah.

Rob: [00:01:02] One thing I was trying to explain to my wife. Cause she, when I told her the news, she, she was like, Oh, right. You knew him. And I started to explain, what, what case Scott was, to me and to everyone. I mean, I’ve never known anyone with such an insane gift for telling a story.

And, and just being affable, and kind. Anyway, I started to tell her about just him and she’s like, oh right. We, we met him and went hiking with him in Oslo, and I totally forgot, but it was so cool because it just, all of a sudden, the memory of, of hiking with him, this last June, NDC, Oslo, was just kind of the spur of the moment that he was running downstairs.

He and Richard Campbell were going on a hike and they’re like, Hey, come with us. And I said, Oh, sure. And that was the last time I ever saw him. And. I can’t say enough what a great person. he was, and I, I really, I think we’re all the better for knowing him for sure as an industry, but also as people.

Jon: [00:02:02] Yeah, I just, looking on Twitter, you know, I always of him as one of my best friends, and he always took time, you know, like when we’re at, at a conference or whatever, he’d say like, Hey, Jon, let’s, you know, let’s go grab a bite and we’re just whatever, and we’d just go hang out. And, It was

Phil: [00:02:18] Yeah

Jon: [00:02:19] seeing how he was very intentional about doing that with so many people, you know, like just everyone kind of sharing their stories about, you know, including people that were like, I him a question at a conference and it was kind of a random question and he spent a lot of time just talking it through with me and you know, like it just, yeah, just so thoughtful and kind.

Phil: [00:02:40] Okay Yeah. I really loved talking to him at conferences. I’d only see him in places like London or, or, you know. Oslo or wherever at conferences. Jon, you might remember that, you mean Atwood and, Barnett wrote a book with, Scott Allen a long time ago

Jon: [00:02:58] Yeah. Yep.

Phil: [00:02:59] The ASP.NET 2.0 anthology And I don’t mean the MVC I mean like

Jon: [00:03:06] 2.0

Yup

Phil: [00:03:11] Yeah, that’s right.

Jon: [00:03:14] Oh man. Yeah. I actually co-wrote several, cause I picked up that, the MVC book, the five heads book, Rob, that you worked on. And then I, you know, K Scott stayed on for several additions of that and I co-wrote with him. So,

Phil: [00:03:26] Okay

Jon: [00:03:27] and you know, it was always like I was, I for some reason signed myself up as lead author and I was always chasing down other coauthors and K Scott is like, I always knew that his was just going to be like.

You know, on time and perfect. And it’s nothing to worry about.

Phil: [00:03:43] Yup.

Jon: [00:03:44] Yeah. Oh, man. Well, so,

Phil: [00:03:49] On that note.

Jon: [00:03:50] yeah. Yeah. Well, so these are, these are times. We’re all, we’re all bunkered down from, from this coronavirus and, You know, people have been talking about working from home. you know, Microsoft has sent everybody home.

A lot of other large companies have. and then after that, a lot, a lot of States have gone into and different countries to have gone into some sort of lockdown as well. so we’ve got, all of us have worked remotely, for a good chunk of our careers. And so

Phil: [00:04:22] Okay

Jon: [00:04:23] it’s been interesting seeing people trying to adapt to it in different, different companies and stuff.

So Phil, you wrote a series of blog posts about how to work from home. so for people that don’t know you, which is probably nobody, but for people that don’t know, what’s kind of your background on, how did you transition into working from home.

Phil: [00:04:41] Oh, that’s a great question. So probably the first time I did a work from home significantly with a long time ago when I started a company with a friend, and Jon, you might remember this, called VelocIT that we hired, Jon was our first employee. And we all work together using the state of the art of collaboration software back then, groove, by Ray Ozzie.

Jon: [00:05:05] that’s right.

Phil: [00:05:07] yeah. And, and then we would use a, I forget what the video conference software, but like, we actually, you know, cobbled

together..

Jon: [00:05:15] amount

Phil: [00:05:16] Yeah, that’s right. It’s Skype was around. Then we use Skype and I think we use subversion for the version control. And, you know, we made it work. We did a pretty good job as a remote distributed company, but we were only like, you know, three, four employees, you know, at the time.

And then I remember we hired a, Steve Harmon came on and, and, so Simone, but anyways, and then, you know, I went after that, I joined. Microsoft, and that was, you know, right back into being in the office all the time. AI did have this one, coworker who was remote, Scott Hanselman, who, you know, we would try to set up a computer in my office so that he could just dial in at any time and be like a talking head there.

Rob: [00:06:01] Okay

Phil: [00:06:02] But it was really interesting to, you know, like when I think about those times and how difficult. it must’ve been for him to be a remote employee in a company that just really didn’t get it. And you could tell they didn’t get it because their products didn’t reflect, what it meant to be remote work.

so I left Microsoft after about four years and I joined GitHub and the GitHub was, you know, just night and day, right? This is a company that really. Started off as sort of a remote distributed company. It had it in its DNA and its tools really reflected that as well. In fact, they were really geared towards, you know, teams of open source developers who were all strewn about all over the world, didn’t know each other.

And I worked there for  just shy of seven years. I was started off as a developer. And then, this is at a time when GitHub, didn’t even have managers. And then later when they introduced managers, I became a manager and then I became a director. So I’ve had the, you know, I guess good fortune to kind of experience what it’s like to be in a remote and distributed company from a individual contributor, perspective, from a management perspective and from a director perspective.

Jon: [00:07:14] Yeah. It’s interesting you mentioned the, you know, Microsoft, and initially when I started at Microsoft as well, you could really tell so many things required VPN in and any, you know, you want to, would say like, Hey, you know. You want to join our, dog, you know, you want to beta

our thing, you know, here’s where to sign up.

And it would be an to an internal SharePoint and you wouldn’t have to join a security group. And you know, everything was file shares and it was just not, and it’s been interesting watching, you know, a transition of that over time. It definitely, it’s, it’s still not perfect, but it’s changed a bit.

And I feel like some of that is due to the open source.

You know, the needs of open source, kind of pushing things.

Kevin: [00:07:58] . It was good. They had always seemed like

Okay

Hanselman made

Phil: [00:08:00] Yeah

Kevin: [00:08:01] through sort of force of will. Like he was able to like it and have, you know, impose that onto the company through his own, just sheer, you know, energy. is that, is that accurate and how has that changed over time?

Jon: [00:08:15] .

It definitely, from my point of view, it definitely always took some effort to kind of like, there’d be a meeting and then you’d say like, Hey, can you add a team’s invite? And you bug people enough? And they’re like, finally, like, sure, I’ll get you off my back, you know? But, or like,

.

Rob: [00:08:31] I remember talking to Scott about this back in 2006 because that’s when, that’s when I started. So

I remember right, Scott Scott started there. I was contracting for awhile. Then Phil started and then I think I got full time like right after, right after Phil got in there and yeah, cause Phil and I went to a dude, we got to kneel together.

Phil: [00:08:51] I think, I don’t remember if we went to near together, but I do remember that you started not, not long after because you were working on, helper methods for ASP.NET MVC.

Rob: [00:08:59] That’s right. But I do I remember I remember Scott talking to me about, about the importance of

you know, making sure that, you know, here’s all the checklists and things you have to do. Make sure they know you’re there. in the hallways when you’re

Phil: [00:09:14] it was, I

Yeah

Rob: [00:09:15] it being a really big deal.

And, And every time I’d go back to, cause I would go back every other month for about a week. time I

to Redmond,

I’d have the conversation with somebody, either my manager or something like, so Rob, uh, you thinking about maybe moving to Redmond and I, you know, I just kind of laugh it off and say, you know, we’re not,

of good where we’re living.

Cause at the time we were living in Hawaii and, So this, this, finally, the conversation stopped one day because I was at a cafe. I think it was building 53. I can’t remember, but I was

sitting there  and

my boss, came and sat kind of at this

Phil: [00:09:51] okay

Rob: [00:09:51] with me.

Phil: [00:09:52] Okay

Rob: [00:09:52] then next thing I know, here comes Brad Abrams, who is like a, I think he was a

Phil: [00:09:56] Okay

Rob: [00:09:56] at that time.

And then Scott goo came and sat right next to me

and he’s sitting there looking at me. He’s like, so, Whoa. So Rob,

like, Oh boy.

Here we go,

here we

Phil: [00:10:07] That’s a great impression. Yeah.

Rob: [00:10:08] feel, you know these, you know these meetings, right? Like

Phil: [00:10:11] Hey, Rob.

Rob: [00:10:11] at you like. There you go. So, yeah, you know, I was thinking, we could really use you on campus here.

What do you think about, you know, maybe in the future, your future here with the company? I’m like, Oh, the full press, you know?

Jon: [00:10:23] Whoa

Rob: [00:10:23] just kind of looked at him and I said, you do know where I live, right? And

kind of looked around the table. I’m like, you guys, come on. Seriously,

I’m not, I’m not, I’m not moving here.

I’m sorry.

Phil: [00:10:35] Hard to balance those.

Rob: [00:10:37] Yeah. Anyway,

Phil: [00:10:37] Yeah

Rob: [00:10:38] laughed. It was pretty funny. But yeah, it’s, it was kind of a big deal back then because if you weren’t in the

you pretty much weren’t there. And like Scott would

is you have to demand that they put you on speaker or make sure you’re there and you have to speak up during the meeting and say, I’m here, I’m still here.

You know?

Phil: [00:10:55] Yeah. I think the rise of it, there’s two kind of big factors that I see both one’s cultural and one’s technical on the technical side. if you know who Ben Thompson is, he writes this newsletter called stratechery.com or strategery at an, I pronounce it, but, he had a really great post and is really focused on the way information is disseminated in the midst of the Corona pandemic and like, how.

we’re getting good information from social networks compared to what, you know, the news is given out. But, by analogy, he went into this whole digression about a zero trust information as an analogy to zero trust networking and zero trust networking. You know, like back in the old day that Microsoft, you had this sort of castle and the moat, right?

The castle was protected by the great firewall of Microsoft. And then once you’re in through a VPN, you had access to everything. and that’s a castle and moat model, right? You build a big S, Oh, excuse me, a big old castle. Big old motor rounding

Jon: [00:11:53] We prefer the, the Queen’s English a big arse.

Phil: [00:11:56] and arse. Yeah. So big arse castle and my, yeah. And then, you know, especially we’re talking about castles, but a, what we’ve moved to is, you know, sort of zero trust networking, right. Where you secure. everything like, the, every user has sort of the username and password for each service. And you might use a single sign on to make that easier, but you know, you’re validating credentials at every point in the thing.

And so, that made it so that like, you don’t need a VPN and working. Style, such as working on GitHub is a really good example of that, right? So like, you know, we can all work on out, we don’t need a VPN in. And I think that kind of points to the cultural change, which is, as Microsoft started to embrace open source more.

and they started to have people actually work on open source. And thus they’re working with people who are outside their firewall. And you can’t tell these folks, Hey, you know, you need to, we need to find a way to give you guests access to our VPN so that we can collaborate in a software. No.

Microsoft was like, okay, well we’re going to go to where all the developers are. I mean, it took them a while to reach that conclusion, but they eventually got to the point where like, okay, we’ll just go to get up and work on GitHub, because that’s where all the open source developers live and breathe every single day.

And I think that’s a big cultural change because then, you know, a group of you being in Redmond. isn’t necessarily this big as big an advantage. but there is a whole other cultural element of, that I think, you know, Hanselman had to really fight against, which is. You know, if you have a meeting, and I write about this in my blog series, if you have a meeting in person, you’re, you’re, you’re excluding the people who aren’t there.

Right. And, if one of you is remote, you know, I recommend for teams to protect, to behave like everyone’s remote. And everyone calls in to the zoom chat. which is actually a better experience. Like if you’ve ever been in a meeting where a group of you’re sitting in a room and one person is on the screen, it’s not a great experience even for the folks in the room, if that, you know, when they’re trying to hear that person on the screen.

That person on the screen is constantly, you know, trying to, you know, get into the flow of the conversation. And then if you have lag or anything, it’s just a really bad experience. But if we’re all battled in on something like zoom, or if you’re a Microsoft new teams, then you know, you’re all on a level playing field and the meeting can actually go more smoothly that way.

Jon: [00:14:23] Hmm. Yeah. I mean, you pointed out the, the move to open source. I think another thing too is Microsoft just, and it just happened for business reasons, but to move to the cloud first, Azure and you know, Office online and you know, like Microsoft selling all these cloud native products has kind of forced that to like, you know, where it’s like, Hey, people are there, there’s business internal reasons to move and it’s just easier to move stuff instead of hosting your own SharePoint, whatever weird thing to like, just put it up on, you know, whatever.

Like spin up an Azure website or share something with, you know, in one of the hosted cloud solutions. And like you said, then it’s all single sign on and it’s just. You know,

Phil: [00:15:10] Yeah. Like the, the cloud services made, like required. what do you call it? Required federated identity into be a priority at Microsoft. And then, like you said, I think the, the move to cloud services is also related to the move to open source. Because you know, once you’re in the cloud, who cares what you, who cares what anyone runs, you just want them to run on your cloud.

So like supporting open source makes a lot more sense for, for the business model.

Jon: [00:15:38] Well. So I wanted to kind of go through some of the stuff, the recommendations and stuff that you had in your blog posts.  you started off in your, like, how to work from home and, and there’s two things in here. One is you give, you have several things, you know, wear pants, have ritual, set boundaries, set work hours, got your distractions, focus, communicate, you know, like all the, all these things.

And, but at the end, then I think in kind of a counter thing to a lot of that is be flexible. Like in other words, here’s a bunch of things to do. But like in other ways, it can also be a bit of a… I guess I’ll step back to when I started, a lot of these things were things that I had to learn. Like I had a separate office.

I actually had my wife like chat me on the whatever, you know, a chat app. Like instead of like coming in and saying like, Hey, know, need you to, do something or whatever. Right. You know, pretend like I actually was at work and we both liked it better that way. You know, I was at work for the day. But then over time you like realize what you can be flexible.

Phil: [00:16:53] Okay Yeah. I think this is the classic path of the expert, right? you know, when you’re learning programming, you’re, you learn these steps, like, Oh, take these five steps every time you write a method. Oh, don’t forget to write that unit test before every single method. And then like, write one line of code that makes, you know, go through the red, green, refactor. And then as you become an expert, you know, like, it’s good to ingrain those skills. Kind of like, you know, in the original karate kid, wax on, wax off, right? But then over time it, you, you start to learn, Oh wait, you know, I’ve got, I’ve internalized these steps, but now I know. In what nuanced situations, I can relax a step or two, like, Hey, this method, maybe I don’t need to write a unit test first, but for this one, let me just, you know, write that method because it’s relatively small or whatever.

And so that’s kinda, you know, the be flexible part is meant. I meant it as like, once you really internalize these and, once you’ve seen what works for you. yeah, don’t go like, don’t go too hard down the road. Like for example, you know, one concern I think a lot of people have right now is with this pandemic, everyone or a lot of people going remote and then they’re not being as productive.

And so people are, you know, saying, Oh, this is a, an indictment of remote, distributed work, and it’s like, no, it’s an indictment of a global pandemic that is being completely mismanaged in our country at least, and where it’s affecting so many people’s lives. And, a lot of people may die from it. in that circumstance, I don’t care where you work, it’s going to affect your productivity because you probably have more important things to worry about.

And so, you know, one level in terms of being flexible, I recommend like, you know, allowing yourself to realize that this is a really unusual and difficult and challenging time. And if you need to take more breaks, if you need to step away from the computer, a step away from social, I was about to say social security, social networks, you know, do you, so there’s a really great, blog post, by Alice Goldfuss.

She’s actually a former GitHub Employee, but I never really personally worked with her. But, she has this great blog post work in the time of Corona. And a lot of her advice really focuses on sort of how do you preserve and maintain your mental health while adjusting to this new life, you know, and it, you know, one of our first points is.

It’s okay to feel bad and I’ll send you the link later. But, I think, you know, first and foremost right now, it’s okay to be less productive. It’s okay to, you know, take care of your affairs at home and relax. But you know, when you are ready to work, you know, when you are in the right mindset. You know, I hope that the tips that I’ve wrote are good guidelines for, you know, how to set yourself up for success.

because I’ve seen a lot of people who are like, you know, I just can’t focus at work right now because all of this going on. but ironically, I’ve had kind of the opposite, reaction where I haven’t been working all year pretty much, cause I had been burnt out. and then, you know, this happens and suddenly.

I’m a lot more focused that, working on a project. I mean, I wouldn’t, I’m not working full days, but I’m working on a project because it’s giving me something to distract me from all the bad news. And it’s a project that, hopefully is a boon and a benefit to people doing remote distributed work.

Jon: [00:20:25] Yeah.

Rob: [00:20:27] You know, I wanted to echo what you said, Phil. Cause honestly, social media and news, used to, my habit, you know, I’d wake up every morning and kinda give myself a few minutes just to, to, to wake up. And then I had this habit of grabbing my iPad and it just kind of. things cause I’m three hours behind the West coast and like most of the day is already happening.

So I kind of feel like I have to catch up the minute I wake up. But wow. I mean, this last few months I would get up and feel completely drained because I was reading the news and listening to.

And I think it’s important that people stay informed, but I don’t think you need to stay informed the first 10 minutes of your day.

I can’t tell you, I cannot emphasize enough. How that has changed everything for me. I don’t read anything until noon figure, you know, if something really bad happens, I’ll find out about it somehow. Either through work, chat on Slack or whatever. that’s thing one. And the other thing that you said, what was it?

You made two points. Darn it. I forgot the second one.

Phil: [00:21:28] It’s okay to feel bad.

Rob: [00:21:31] Oh, you were talking about how you, how you’re now feeling, you’re feeling enlivened. Because you’re helping

Phil: [00:21:38] Yeah. Yeah.

Rob: [00:21:39] you’re helping people. And I, and I was trying to explain that to my kids, cause you know, they’re down, you know everyone’s down. Right. And, and you know, and coworkers too. And I was like, if you can reach out and help someone else in any way possible, it’s a, it feeling of doing something as opposed to sitting there doing nothing, which is the worst.

But yeah, I wanted to emphasize that too, because fell that’s a great point. Reach out and just help in any way you can. Even if it’s just to say hello on Slack. I mean, a lot of trying to figure out Slack right now and in, you know, teams, if you’re using this this weird kind of thing that they won’t, they, they have to like ask you, is it okay?

Do you have a second to chat? We’ll screw it. Just just chat away, you know, and say hello.

And a lot of times you’ll find people really, really appreciate you given the 

Phil: [00:22:26] time.

Okay Oh, I totally agree with that. I find that a, a lot of people have a sense of helplessness right now because they can’t influence, you know, a global or national policy and they’re seeing how. Yeah. I’d only in that the response has been, to this crisis and they feel like helpless. Right? But there’s always something that you can do within your sphere of influence, you know, even if it’s just helping one person and that, you know, not only helps them, but it also helps you and.

the other day, you know, like, I since leaving GitHub, I’ve been really enjoying going to the gym every day and it’s become my main social outlet, you know, going in, cause it’s a regular class. So I see the same people every time we work out together. Chat. And, you know, I really missed that interaction cause I didn’t really, you know, I wasn’t working at a company so I didn’t have that social network.

but, so the other day I, you know, messaged a few of the folks from the gym, I said, Hey, look, you know, I found this cool workout. I’m going to try it on zoom. If you want to join me, call into this channel. And, Let’s do it. And so, yeah, three guys joined me and we did a, a workout and it was a lot of fun and I had a really good time.

I’ve had, in fact, I’ve been telling people I’m probably a lot more social now than I was before because, through zoom I’ve had several like whiskey meetings or, you know, like hang out at happy hour meetings with people. And there’s a lot of cool benefits. One, I don’t have to get dressed up to, I don’t have to drive anywhere.

Three, I don’t have to call a Lyft to get home after I’ve had too much to drink because I’m already home. When, when our, little hangout is over and I was like, Oh, this is kinda, it’s kind of a nice way to, you know, hang out with your friends.

Jon: [00:24:20] Yeah. It’s been interesting seeing a lot of different things moving online. gotten into through a Tony Horton doing thse P90 things. And he started doing these 3 days a week online, Facebook things. And it’s pretty fun, you know, and it’s like a live thing and people are showing up and know, it’s, it is, I mean, we’re adapting.

We are, you know, it is nice that we all have internet and we all, you know, are able to, to connect in that way.

Rob: [00:24:50] well I was just really quickly going to interject and say that, I was talking to a friend about this, cause we have a gym in the building I live in, which is so lucky. And I, you know, you meet people, like you’re saying, Phil, you meet people and you talk to them and whatever. So they shut down the gym in the building last night.

And, and I was talking to this person that I’ve seen down there before and he’s like, I need to go to the gym. He’s really built because I need to go to the gym at all, I’m going to do. And so I said, well, if you’ve ever seen these, these things called TRX, TRX suspension bands. They’re not like the bendy kind, but they’re like the military  suspended from a doorframe or your ceiling. The straps that you can adjust, they’re amazing. You can get a full gym workout. It’s crazy. So anyway, put a link in our chat here, Jon, if you want to add it on the show people that are at home and they don’t have the equipment and they can’t get to the sporting goods store, Amazon will deliver these, then, yeah, join Phil for a workout.

Why not?

Phil: [00:25:45] Right?

Rob: [00:25:46] You did

Phil: [00:25:46] Yeah.

Rob: [00:25:47] I mean what? I heard you say

Phil: [00:25:50] Sure I, I, I guess I am now.

Rob: [00:25:52] you should. You know what? You should do that. You should Twitch your workout man, and we should all just join. Let’s do it.

Phil: [00:25:57] That’d be fun. You know, and kind of relating back to working from home like this, you know, . People are social beings. And you know, one of the things that, was really challenging when I was at GitHub was the sense of isolation, loneliness, even as a member of a team, especially the leader.

Because you know, a lot of times, like your colleagues, you know, the people you’re working with, they’re not really your peers, right? They’re the people who report to you in this sort of a different relationship there. but it would feel lonely at times. And you know, what we do to try to ameliorate that, is to actually have hangout times with , my colleagues that wasn’t focused on, some work in particular. one thing we would do is we would have, you know, Brown bags, once a week, and then, you know, anyone could call in. I, I may have even blogged about this a while ago. I just can’t find it right now, but we’d have Brown bags once a week, and then we’d all call in and do the, you know, with that zoom was nice as you can do the gallery view, which gives you that whole Brady Bunch look, if you have nine people. Yeah. But we would do these meetings and then, you know, kinda hang out and, and be intentional about the social aspect of working. And I think that’s really important because, you know, when you’re distributed and remote, it’s really easy to fall into the trap of like, Oh, like.

I’m all work all the time. And that’s what it’s all about. But you know, you’re working with human beings and it’s really important to establish that relationship with each other as human being. And that comes a little more naturally when you’re in person, because you know, you run into each other in the hallway, Hey, let’s go grab lunch.

Let’s go grab a coffee. but you know, you’re not running into people when you’re home, or at least I hope not. and, you know, you have to be a little more intentional. Hey, let’s do a hangout where we just hang out.

Jon: [00:27:50] Yeah. I think the whole like intentional is a thing that like going through all your posts as well. There’s a lot of things where you just need to be intentional ways where like. Going to work and being in a building and being in meeting rooms with other people, like there’s a lot of stuff that just that when you’re from home, you need to be intentional.

Like, need to intentionally, you know, communicate. I need to, know, like, being productive and re removing distractions and, you know, setting my work hours, you know, as opposed to like going into a business, you know, office, your work hours are kind of set for you, you know? And that whole thing about intentional communication, I think is so important.

And there’s. W w one thing that I’ve seen with that like, really important to intentional with, what am I doing with this communication? For instance, if it’s a meeting, let’s get it done. Like I want an agenda, I want to be, I want it to be productive, you know, I wanna, I wanna like focus on that. If it’s a…

But then, like you’re also saying, if it’s a social hangout, Hey, be intentional about your social Hangouts as well. And, and you know, like, not mixing the two. I think mixing the two can be frustrating. Like if you want to have a stand up, it should be if it’s a social thing, make it social.

But if it’s a stand up, boom, boom, boom, let’s knock it out and get to work. You know,  always weird when it’s like not communicated. Are we hanging out or are we doing work or what? You know?

Phil: [00:29:26] Yeah. Like when you’re a manager, you learn one of the secrets to, you know, good high functioning teams and good performance is. Having clear expectations and accountability towards those expectations, right? yet at the same time, you, when you go to a typical workplace, you see that that’s not put in practice all the time in all aspects of the company where it would really be a big benefit.

For example, meetings are a really great example, right? Like how often do you go to a meeting and the agendas and clear, and you have no idea. Why are there or what, the goal of the meeting is, and you, and you know, it all comes down to the, there are no clear expectations for that meeting. And the meeting is expensive, right?

You know, you’re, if you’re, if it’s an hour and you have five people, you know, you take their hourly rate and that’s a lot. And a lot of times, you know, those meetings could easily be replaced with an email or a discussion and, you know, some place. And so. Often better to try to replace that, replace meetings with discussions.

Jon: [00:30:30] Yeah. that’s something you called out the asynchronous workflow and the kind of writing things down, and then, you know, a common pet peeve is the how people use chat. Like I think. If you know, in a more office center culture, when you chat people, the, the inclination is to just say, like, Hey, you there, like you just want to get something, but a much better thing is, Hey, could you clarify what you meant when you said we should close issue one 23 like that’s something that works well asynchronously and, and we don’t have to waste the time with, Oh, Hey, sorry, I missed you. I was getting coffee. Oh, Hey, blah, blah, blah. You know, it’s just like, ask your question.

Phil: [00:31:10] Right, right. Embrace the asynchronous nature of chat.

Jon: [00:31:14] and then that flows well over   you know, open source thing as well too. Like, like just like say your say your thing in a way that that allows us to make a decision and move forward.

Phil: [00:31:29] Yeah. You mentioned making decisions and, I think one of the biggest challenges that I saw, and this is an organizational thing, but it, it, I feel like it’s semi-related to, Distributed remote workforces. And one thing I want to be clear before I get into it is, a big theme you’ll see is like all these practices I talk about are, I think equally good, if not more so for co located teams.

So if you work in an office together. I think these are good practices to have because you never know when someone had to take a sick day until they missed out. but I think that they’re compounded when you’re remote and distributed. If you don’t do these things, the, the impact is far more, it’s far bad.

It’s worse. Excuse me. My English is not working

anymore Far

batter. Yeah. Yeah, that’s right. so. What was I going with this?

Jon: [00:32:26] Well, you were saying that it’s these, these are practices that are important for co like located teams as well.

Phil: [00:32:32] Right. But we were talking about something right before that

Jon: [00:32:35] decision making.

Phil: [00:32:36] decision making. Yes. Okay, so what.

Yeah. This is one of the downsides to working alone. A remote distributor for too long is like your ability to have conversations with adults can start to decline.

Rob: [00:32:50] well

Phil: [00:32:51] that’s why.

Rob: [00:32:51] Washington. It’s legal in Washington, so we’re okay. Phil, you’re among friends.

Phil: [00:32:59] So what was I saying? Oh,

anyway,

a lot of times decision making and remote distributed companies can be really challenging because conversations can feel open-ended if they’re asynchronous, right? Like I posted this question and then I wait like three days and the person didn’t respond, and I’m like, well, do I go ahead?

Or no, I guess I should wait for their response. Whereas if you, you know, if you corral a group of decision makers into a room, you can often, you know, say, Hey, we’re not leaving this room until we come up with a plan of action for X, Y, Z. Although, you know, I’ve seen a lot of companies still can’t make decisions even when they did that.

And so I do in my series, talk a lot about. How do you make decisions as a remote distributed company? And again, it comes down to setting clear expectations. Being very intentional. timeboxing is a really important one, intentionally reaching out to people and making it clear who are the decision makers and who are just being asked to weigh in and who are, is being asked to observe.

Right. and I mentioned a couple of different frameworks for doing that that are very popular, RACI and DACI. But I think, you know, making sure that you have a clear path to making decisions is really important. And as an illustration of that, you know, when that Friedman, took over as CEO of GitHub, not long after there was sort of this, you know, the pace of get up shipping features sort of, you know, really increased.  And from the outward looking in, it seemed like. Oh, wow. You know, Nat is really like rev the engine. but you know, from my experience, a lot of that stuff that they were shipping was already being worked on, but they were being blocked by, you know, indecision, like, Oh, like, you know, this isn’t good enough to ship, or who can make this call?

And that I think went in and just said, Hey, look, let me make those decisions, ship it and iterate. And I think that really unblocked a lot of stuff that had. Already been worked on for a good while. and sometimes you just need that person to say, Hey, this, let’s make decisions as make them quickly, but let’s make sure that we have resiliency in the process of that.

If we make any mistakes with those, we can fix them quickly.

Jon: [00:35:18] Hmm Yeah, yeah. I think focusing on that and as part of communications as well, like very easy, you know. As you mentioned in different, all different kinds of things like there’ve been email threads where people, when you see an email thread you can respond with, here are some thoughts I have about it, but really what’s the point of the email thread?

Is it to make a decision? Is it to, you know, like, and if it is, what are the next steps? So, you know, and, and those sorts of things where, so of just saying, you know, kind of rambling, let’s say like. I, I propose this, this is a, you know, or if I don’t hear back by this day, I will, you know, delete all the files or whatever it

Right

Phil: [00:36:01] Right. Yeah. Time boxing is definitely an important component of that, saying, this group is going to make a decision on this date. You know, you have until then to provide your feedback.

But you know, making it clear, they are the ones who are making the decision. Right.

Jon: [00:36:19] And often they’re, if you have a, if people are not responding or not, then usually the best thing is to propose a very bad idea with the time box. And then people will jump out of the woodwork.

Gosh, how do you handle things like, you know, time zones. you know, and that’s something too where some people asked about that. How, how. You know, how do you handle just the kind of distributed time zone part to that?

Phil: [00:36:46] Yeah. You know, for a lot of companies right now who are quickly moving into it, you know, they’re often, they’re moving into it because they’re forced to buy, like work, work from home decrees. And so they’re already co located. So they are fortunate that they don’t have to deal with the distributed times on things.

But when I was at GitHub, I had a team that had, you know. Oh, almost everyone in a different time zone all across the world. And it, it’s more challenging because your throughput on a single th it’s, it’s a lot like a asynchronous programming, right? Or a parallel programming. Your throughput on any single thread at work will slow down.

if I write a piece of code and the person in New Zealand is the one who’s going to review that piece of code. They’re probably sleeping when I’m done. So, rather than just sit there and be blocked, you know, the thing to do is for me to go on to the next piece of work. Right. and, and then, you know, in the next day, hopefully when I get up, I’ll have a nice code review that I can look at and address.

And so that’s the, you know, one of the main things with being distributed across time zone is to embrace the fact that, you know, you. You may slow down, throughput on any individual line of work, but just like with computers, what you do is you just spin up more processes, right? You spin up more threads of work, you,

you distribute, you, Cool. What is it you try to focus on making sure that nobody is blocked at any time? You don’t want to block threads. Instead, you just move to the next thing. and then the other thing is, you know, making sure that you give people time for feedback. You know, if you propose something and then, you know, you wait an hour and they start going through with it.

Well, the person in the other times and it didn’t get a chance to weigh in and they may, they might have some important, important feedback. one thing we would often do, especially for really important poll requests is we would keep them open roughly 24 hours that way before we immerse them that way people could, You know, chime in who might be effected by the pull request. Now for small things, we didn’t do that for everything. Right? Cause like again, be flexible, be smart. You know, like for something really small, we might say, okay, you know, I got someone here to review it in my time zone. We went ahead and merged it.

And if you see anything wrong with it, you know, we can always do a revert. We can always address it after the fact. You want to look at the cost benefit, right? Like what is the cost of getting this wrong versus the cost of,  all right, getting it right. The first time versus the cost of getting it a little wrong and then fixing it and sometimes getting it wrong and fixing it is actually cheaper than, you know, holding something up to get it.

Absolutely right. It really depends on like how much damage it would cause if you got it wrong the first time. but overall, like taking on. Asynchronous workflows like that. And, and I think the analogy to asynchronous programming is really apt because like, we’ve solved a lot of these things where, you know, Oh, we’re worried about Moore’s law slowing down.

So we started to add more processors and we’ve had to come up with new ways of programming and new way the distributing work across the, and tasks across those processors. Well. It’s not a perfect analogy, but that actually kind of works when you consider people at a distributed across the planet.

Jon: [00:40:11] Hmm. Yeah, it’s interesting. Some of the things you’re talking about, I’ve been reading this book Accelerate, and it’s like lean software and dev ops and applying it to organizations. And, a, it’s a, you know, some of the things like small batch size and all the, you know, like focus on small, short turnaround and those apply very well to the asynchronous work, and if I’m working on a small thing. That’s done. Pass it to the next person. Move on to something else. Oh yeah we got a few questions over Twitter. so one, I think you kind of answered already, but, Khalid says, how do you stay in shape when sweat pants are so comfortable.

Phil: [00:40:53] Well, you, you, you put the sweat and sweat pants, and go, go exercise. But I mean, I think there’s a great question. I think, yeah, organize it with other people. if, some people are really great at. Kind of following their own schedule and being a solitary, you know, gym rat. And if you are, that’s great, on the kind of person that I sorta need that social pressure to motivate myself.

So, you know, getting people to hold each other accountable is a really great way to keep in shape.

Jon: [00:41:28] Cool. Cool. Yeah. I’ve seen people do this different ways. We have, there’s a, I mean, just kind of a, a team check-in thing, like they started this coffee or a, they call it the breakfast club in dev dev, and it’s, people just have, a 15 minute coffee and it’s just a quick little chat. But, you know, a lot of the people will be saying, checking in on, you know, I just got off my bell Peliton or whatever it is, you know?

Phil: [00:41:50] Yeah. I started a little pandemic survival club.

Jon: [00:41:53] there you go.

Phil: [00:41:54] Yeah.

Jon: [00:41:55] Yup. And I know some friends that have a Twitter, just like a DM chat, and they just check in every day and. their workout or whatever.

Cool. Andrea says, what’s your go to brand of whiskey for post remote meeting? Relaxed time.

Phil: [00:42:10] Oh wow. We could do a whole nother episode on that.

So lately I just got this bottle, a monkey shoulder, which is a blend of three different scotches. It’s, Glenfiddich Balvenie and, I, and I don’t know if I’m pronouncing right. And then another one that I blanking on, I really like it. I’m a big fan of Yamazaki 12.

I like, Nika from the, barrel and Nika coffee mall.

and, I, I could go on, but, yeah, right now the monkey shoulder has been, I’ve been a real fan of that one right now.

Jon: [00:42:45] Cool. All right. We’ve got one more question here. so Mathias with a, with a more difficult question how has the HR done, effectively, efficiently, and inclusively remotely, things like grief health support? Is there a good way? And, also if there’s a good way for someone to give their notice.

Phil: [00:43:05] Wow. Yeah, that’s a great

question Yeah, so there’s a blog post that I’ll a post to you called be this manager now. And it’s by, Nicole Sanchez. she, worked at, also worked at GoodHub for a little while and she, kind of implemented the first, diversity and inclusion training at GitHub. And now she is a consultant at via consulting.

she’s amazing. If you, your company can. afford to hire her for management training. I highly, highly recommend her. She’s really great. she has a great blog post about the type of manager you want to be in this tumultuous time or in any tumultuous time. She talks about checking in with everyone one-on-one privately, but, you know, remember like HIPAA, you know, advocate for your employees.

Stay informed and take care of yourself, yada, yada. Really good advice. I mean, yada, yada is in and so on and so on. Yada, yada can sound dismissive. I didn’t mean it that way. So, and, and so on. so going back to the question, I mean, I think as a manager following these guidelines. Is really helpful.

how do you be inclusive in review performance reviews? I have a whole blog post about, my whole view on performance reviews that, I think it’s, yeah, I think it’s worth reading. Of course I wrote it. but I talk a lot about how, existing review systems aren’t, equitable, even if you’re in person.

you can see how certain people, certain classes of people, especially underrepresented folks tend to score lower, for the same work. So, You know, one of the things you want to do is try to, as much as possible, create objective measures of performance. So like set clear expectations, measure people against those expectations in terms of giving someone notice that I assume he means like firing someone as opposed

to selling

Jon: [00:45:03] else, Or if you want to quit as well. Right. Those are harder

Phil: [00:45:06] Oh

Jon: [00:45:07] discussions to have remotely like,

Yeah, I mean, you know, do it, do it on a, a video conference, you know, don’t do it over email. video conferences is about the closest thing you’re going to get to, you know, just being in person and having a Frank conversation. Yeah. If you’re giving notice, you know? Yeah. I would just, have that conversation and then, you know.

Write a letter of resignation and then, and submit that as well. if you’re on the other end though, and you think you have to fire someone, I mean, in this particular time, especially in our country where health care is tied to our jobs and all these people are losing their jobs all of a sudden, hopefully, you know, like more and more people recognize that, you know, having our healthcare tied to employment is a really bad idea when something like this comes along.

And, you know, I would like hook that companies would delay. That sort of thing as much as possible. But I know that, you know, some companies are in a position where they might just go out of business, which leads to the same result for their employees. So I understand that. Like. Yeah. It’s easy to say, but if you’re a company in a strong position and you can afford not to fire people, you know, I hope that you try to do your best to take the humane stance of not firing them until things have calmed down a bit.

You know? other, if you are fired, you know, like, make sure you understand how COBRA works. C, O, B R A. It is a more expensive than what you’re probably paying as an employee. I did a COBRA when I left GitHub. I did Cobra for a year. And, you know, that it wasn’t pleasant on the pocket book, but it was better than not having insurance.

And then I just recently, my family recently moved to Washington, one of the Washington exchange, healthcare plans, which, you know, they’re cheaper, but not, not by much. but anyways, yeah. I hope that helped answer that question.

Yeah. Yeah. Well, I think part of the thing, you know, we were talking about the communications and how do you, You know, how do you have difficult conversations? And one of the things you mentioned is just, you know, like both as a manager and as a, as an employee is to communicate often and to build the trust through regular communications.

So I think that is an important thing, like having regular, know, discussion with, with your manager so that you comfortable. You… If you feel comfortable and you built that trust, then difficult conversations are hopefully easier too.

Phil: [00:47:36] Yeah. And I put a lot of the onus on that, on the manager. Although, like if you’re a nice individual contributor, IC,  a, you obviously don’t have control over your manager, so what can you do in that position? you know, ask or advocate for a regular weekly one on one. All right? You know, there’s this great podcast, the manager tools podcast, and they had this episode.

And I think it’s a two parter about why one-on-ones are so important and how to do them well. And I was so impressed upon me so much the value of it, that when I was at getup, I actually wrote our first guidelines to one-on-one. So that became sort of the official internal documentation for, you know, why we should do one on ones and how to do them.

And you know, the. One of their points is that your job, your primary job as a manager is to, build a relationship with, your people as individuals. And one of the best ways to do that is through one-on-one. You need to build the relationship and build up that trust. And so one on ones should not be like a status update or some sort of a work meeting.

It needs to really focus on what is it that. The employee needs to talk about and get off their chest or what, what is it that they want? And so they have a whole structure, you know, that they called 10, 10, 10 and which I would sometimes just do 15, 15, but it’s basically 10 minutes, whatever the employee wants to talk about, 10 minutes, whatever the manager wants to talk about.

And then 10 minutes. talking about the future, I found in practice I couldn’t talk about the future. Every single one-on-one, is just wasn’t, you know, we talked about last time and not, not a lot has changed in a week, but I found that conducting weekly one-on-ones was immense in building trust and, relationship.

And you’d basically, it’s, it’s  impossible, or very difficult to have a difficult conversation if you haven’t built that foundation of trust. It just doesn’t go well. Like you can have a difficult conversation, but it’s made more difficult when you haven’t established that basis of trust. But if you put in the work to build up trust, then, you know, you come, you can have that conversation where people are giving each other the benefit of the doubt and I’m assuming good intent. And it’s very difficult. And even then, you know, you have to understand that when you’re a manager, there’s a power differential in that conversation and you have to recognize that and, and do your best to. you know, try to balance that as well as she can. And the power differential comes from the fact that, you know, if you want that person fired your opinion, you might not be able to outright do it, but your opinion weighs heavily.

You can, you know, you sort of hold their career in your hand at that company.

And so, and that’s always in the mind of the employee when they’re having that conversation with you, whether consciously or subconsciously. And so it’s really important to recognize those power dynamics and try to, you know, work to, you know, build up trust so that you can have this difficult conversation.

And when you do have those difficult conversations, you know, there’s a really, you know, there’s a lot of good books out there. One of my favorites is, difficult conversations, you know, apt title I, I know others have recommended crucial conversations. but they go through a whole, you know, they go through a lot of scenarios about how to have these conversations and making sure, for example, that you really understand, the context and the perspective of the other person that you’re not just trying to win the conversation, but that you’re trying to understand their point, you know, as well as they do, you know, if possible.

And then, you know, being honest, upright, and avoiding, you know, some of the tripe things, like the, the shit. Sandwich approach, you know, where you’re like, Hey, I have some good news, bad news, good news.

Jon: [00:51:29] Yeah.

Phil: [00:51:30] Yeah. Like a lot of people feel like, Oh, that’s a good way to soften the blow of bad news. But what it does in practice is, anytime you come to someone with good feedback, for example, they’re waiting for the hammer to drop and, the other practice, Oh, you can see, I get excited about this.

The other practice I highly recommend is make sure you’re constantly giving feedback. And give feedback early. That’s positive. so for example, a lot of times, you know, when the mentors like, Hey, I have some feedback for you. What’s your initial reaction when you just hear that phrase like, Oh shit, what did I do?

Right? But, that’s a problem. You know, it shouldn’t be like, Oh, I can’t wait to hear this. You know, like, cause this is probably an opportunity for me to get better or, or an opportunity to reinforce something that I did good. Right? So if your manager is often saying, Hey, you know, I have some feedback for you.

The way you handled that, that outage was phenomenal. I really liked the writeup. Blah, blah, blah. you know, more of that. Thank you. And then like, you know, once in a while when there’s corrective feedback, you know, you’re in a much better position to take it because you’re like, well, you know this, this manager sees all the good things I’m doing.

They see me as an employee. So, you know, if they have something that’s going to help me improve, I want to hear that. But if the, if the only time you come to feedback is negative feedback or corrective feedback, then you sort of lose your credibility as someone who, is in a position to give them feedback because they’re like, well, you’ve never seen all the great things I do.

Jon: [00:53:00] Right, right. Wow. a lot of good stuff. we’ve got a wrap up.   Kevin, do you have any, anything else you want to throw in.

Kevin: [00:53:08] Phil, you had mentioned earlier. You had, had experiences of a rote, employee, both at the kind of individual contributor level, the manager level and the director level. there, are there things that are kind of unique to each of those levels that, people can think about from a

Phil: [00:53:26] Uh yeah I would say yeah. So like I sort of pattern my blog posts around that theme. So the how to work from home, really focused on, individual contributors. How to lead from home focused on managers. And then I would say like all of it, like at the director level, there’s a little more, focus on setting high level goals and a high level objectives.

And how you, you create alignment with your team. And so I think that I cover some of that in the geographically distributed teams posts. and so, you know, at that level, you know, you’re not, you know, a line manager. You’re not like looking at every check and what you’re focused on is how do I make sure that everyone’s pointed in the right general direction, and then you need to trust them.

To do the, you know, what you hired them to do. Like they’re probably the best developers or best product managers, breasts, quality assurance folks that you could find and they know their job and they. They want to do good work. You know, a lot of people ask me like, Hey, how do you make sure everyone’s working?

And I was like, you know, you, how do you, how do you know anyone’s working when you’re in the office? People are really clever at getting out of work. They don’t want to, but if you have a, a clear, mission that motivates people, you know, they’re going to want, to do good work that, you know, people aren’t looking for excuses to get out of it for the most part.

If you connect, you know, meaning to the work that they’re doing. all, all they need from you is to help them connect meaning to the work and to help them see like what the goal and the objective is. And they will, you know, they will do good work. They will work hard to reach that vision. And that’s a, that’s your role as a director and higher.

Jon: [00:55:17] Cool. Yeah. Everyone likes to finish a day at work and go like, yeah, I nailed it. You know, I got something great done. Right. Like enabling people to get to that is, you know, and then like you’re saying, you don’t have watch every step of the way. You just need to help them get to that spot.

Phil: [00:55:35] Right. You don’t need to tell them what to do. You just need to remove obstacles so they can do the great work that they are really wishing that to do.

Jon: [00:55:44] Cool. Well this has been great. but we gotta wrap up. So, maybe we should have you back on some time soon and talk more about other managing stuff. Cause there’s a lot of good stuff here.

Phil: [00:55:57] Yeah. Anytime, anytime.

Jon: [00:55:59] All right, that’s all the time we have quite literally this week. Thanks a bunch for your time and we’ll talk to you again soon.

Herding Code 239: Jerome Laban on Uno Platform

Download / Listen: Herding Code 239: Jerome Laban on Uno Platform

At Xamarin Developer Summit, Jon talks with Jerome Laban about building applications that run everywhere using the Uno Platform.

  • (00:20) Jerome explains that the Uno Platform is XAML and C# for iOS, Android and WebAssembly using WinUI XAML. On iOS and Android, it’s running on Xamarin.
  • (01:25) Jerome tells the history of the platform, and how they’ve been working on the platform for six years. When the team at nventive saw WebAssembly support coming, they ported their existing framework to run there, too.
  • (02:55) The Uno Platform is free and open source; nventive is a service agency that offers development and support for the platform. Jon asks for more information about nventive. It started as a training and general development company, then did Windows Phone, Windows 8 and Windows 10 applications. When Windows Phone went away, they moved their focus to Xamarin development, predating Xamarin Forms. They believe the strucucture of Uno and UWP is often a better approach for them than Xamarin Forms.
  • (04:55) Jon asks for the relationship between Uno and Xamarin Forms. Jerome explains that they’re generally at the same layer. However, since Uno implements the UWP contract, anything that targets the UWP contract can run on Uno. Xamarin Forms has a part that implements that contract to run on Windows. So… a Xamarin Forms can run on WebAssembly using Uno. You can run Uno components in a Xamarin app, since Uno components are actually Xamarin classic components. You can also run Xamarin components in an Uno application.
  • (07:00) Jon asks how the XAML front end is run in the browser. Jerome says that Uno renders the XAML as HTML elements. If you view source, it’s mostly div’s. HTML is treated as a subsystem that’s abstracted away.
  • (08:37) Jon asks about the Calculator application. The Uno team took the Microsoft open source calculator application, written in C++ and XAML, and got it to run on Uno. Jon was very impressed to bring it up on his phone’s browser. Jerome says that works on Android in the browser, and there are also Android and iOS applications.
  • (09:35) Jon asks how they ported Calc to Uno. Jerome said that the tricky part was to pinvoke into C and C++ from a WebAssembly module – Jerome had to add that support and submitted the pull request to Mono. There are three parts – a calculation that dates back to 1999 / Windows 3 that is all C and C++ code that they didn’t change; the rest is C++ 11 code which they translated to C# using regular expressions. The XAML and resources are the same.
  • (12:20) The Calculator is in published in 65 languages, so they are getting bug reports in 65 languages. There’s good accessibility support, so for instance you can enable voiceover in the mobile application.
  • (13:10) Jon asks how to build an application for Uno Platform. Jerome explains the File / New Project process using the extension.
  • (13:55) Jon asks about deployment. For iOS and Android, the output is the same as any Xamarin project; it’s just a standard UWP application, and for WebAssembly it currently tags along with the Blazor tooling.
  • (15:00) Jon asks about other getting started information. Jerome runs through several, and points to the GitHub repo for more links.
  • (16:20) Jon wraps up with a callout to UnoConf on September 19-20, as well as plans for a 2020 UnoConf in the works.

Links:

Herding Code 238: Martin Beeby on AWS for .NET Developers

Download / Listen: Herding Code 238: Martin Beeby on AWS for .NET Developers

At DevSum Stockholm, Jon talks with Martin Beeby about .NET development on AWS.

  • (00:20) The guys reminisce about Martin’s awesome blog post, Client Requests Through the Years.
  • (03:30) Martin walks us through his career, which includes early adoption of .NET, stepping away for a bit to pursue Node and Java development, and returning to the .NET fold in his current role as a Developer Evangelist focused on .NET for AWS.
  • (08:00) Martin shares to how other developers are returning to .NET and the freshness in the community. .NET developers are progressive with AWS and large systems.
  • (10:40) Martin speaks to his evangelism roles with Microsoft, Oracle and now AWS. Spoiler alert. It’s not just standing at a booth, but real-world storytelling of customer use cases and encouraging platform adoption.
  • (13:15) Jon and Martin talk about the intersection of AWS and .NET development in which AWS is the original cloud hosting option so there are highly skilled, highly progressive .NET shops along with AWS experts that are new to .NET, and .NET developers who are completely new to AWS and cloud computing.
  • (16:35) Jon asks about the fastest way for a .NET developer to get up and running on AWS. Martin talks to the AWS SDK for .NET and AWS Toolkit for Visual Studio, which is an extension that features the AWS Explorer.
  • (18:40) Martin explores AWS deployment options including CLI scripting, AWS CloudFormation Templates, Cloud Development Kit, AWS extensions for CI/CD tools like Jenkins, AWS’s own suite of CI/CD tooling and even Powershell.
  • (20:35) Jon asks about AWS Lambda. Martin touches upon other hosting options including Elastic Beanstalk and containers and then digs into serverless.
  • (22:35) Martin shares how one can spin up a full-blown application which leverages serverless infrastructure using AWS Visual Studio Tools. It’s something along the lines of AWS Visual Studio Tools  > File > New > AWS Lambda and Sample Projects > ASP.NET Core Project, which creates an MVC website with Lambda entry point and provisioned API Gateway, which provides complete MVC sample application hosted in AWS.
  • (25:40) Martin drives home the message that when AWS Lambda isn’t being used, you aren’t paying anything. You only pay for the compute time you consume. Jon speaks to massive scaling and “micro scaling” in the cloud.
  • (27:15) Martin talks further about low cost and low scale with functions as well as statically hosting websites which use serverless for auth and lambda processing. Martin walks through the specific use case of Comic Relief, which benefited greatly (93% cost savings) from serverless hosting.   
  • (29:50) Martin speaks to AWS Amplify and there’s more discussion of scalability, burstability, and agility.
  • (31:00) Martin wraps up the chat sharing how functions allow developers to mix-and-match languages, which promotes using the right tool for the job. For example, audio manipulation using Python, when the rest of the application may be written in C#.
  • (33:00) Explore AWS and .NET on AWS.
  • (33:30) Read more from The Beebs.

Thanks to Ben Griswold for writing up the show notes!

Herding Code 237: Tess Ferrandez on Three Real World Machine Learning Projects

Download / Listen: Herding Code 237: Tess Ferrandez on Three Real World Machine Learning Projects

At DevSum Stockholm, Jon talks with Tess Ferrandez about some machine learning applications she’s worked on recently, from sports to shoplifting to cancer detection. Tess talks about the specific ethical considerations that come up when classifying and predicting behavior, and how they worked with them in these real-life examples.

Topics:

  • (00:20) Tess has been working on some applied machine learning projects with large customers lately, all focused on computer vision. One project detects soccer goals using computer vision (saving money over hardware based solutions), another detects cancer in microscopy slides, and the third detects shoplifting patterns to minimize
  • (02:55) Tess has been doing this work in Python rather than .NET. Jon asks if it’s possible to use ML.NET, but Tess says Python is necessary, both because the language is better suited and the community libraries are all in Python.
  • (04:35) Jon asks Tess about her experiences moving from .NET to Python, and Tess says it’s a struggle since it’s not strongly typed. You can use testing on the parts that handle data, but not on the machine learning parts.
  • (05:40) Jon asks how much of Tess’ work is done using Jupyter Notebooks. For data exploration, Jypyter works great, but for the actual execution you’ll want to use scripts so it’s testable.
  • (07:00) Jon asks more about how you can detect shoplifting behavior, since it’s an activity that happens over time. Tess says it’s also difficult because the prediction may be biased against a demographic, e.g. 20-40 year old men.
  • (07:54) Tess say ethics and machine learning are close to causing the third machine winter, and goes on to describe the previous two machine winters. We now have the machines and the data, but often the data is so unfair that it could lead to severe ripple effects. This can cause bias in predicting behavior racially, biasing against things like medical analysis due to sample source, etc.
  • (11:30) Jon and Tess discuss the dangers of creating bad feedback loops. Tess talks about an example where Amazon created a system to review CV’s which was biased against women because historically women have had fewer software engineering positions, so this system would have reinforced that by preventing women from getting software engineering positions in the future.
  • (13:35) There’s also a danger of classifying people based on pictures, since we may assume the computer is unbiased even though the bias may have been introduced due to the sample data. Classifying based in pictures would imply that either people were born criminals or criminality changes their appearance, neither of which are acceptable assumptions.
  • (16:09) Going back to the shoplifting case, we need to make sure we’re detecting the action of shoplifting rather than classifying the individual’s appearance. For instance, detecting poses, whether the individual was alone. Pre-trained models for things like object and activities help. There are also subtle sources of bias, for instance if all the source videos are from Christmas, the model may be biased against Santa Claus, so you also need to use pre-trained models for background subtraction.
  • (18:13) Jon asks how important it is to be able to understand how the decisions were made. Tess says it depends based on the impact of the decision, and explains how in the case of cancer detection they determined that color differentiation could be used as a predictor, so the actual application didn’t require machine learning. In the case of football goal detection, there was such a large amount of data (time, video, and sound), it was possible to get very good results.
  • (21:26) Jon asks how developers can learn more. Tess says that software engineers don’t need to start with math – you can use pre-trained models and go from there. She recommends a book called Deep Learning with Python by Francois Chollet – it’s very approachable. Tess also recommends the Machine Learning at Microsoft YouTube channel.

Herding Code 236: Will Green on Going Serverless With AWS

Download / Listen: Herding Code 236: Will Green on Going Serverless With AWS

Kevin and Jon talk with Will Green (@hotgazpacho) about how his small team uses serverless development on the AWS platform to maximize their productivity.

Topics:

  • (00:20) Will’s team builds the FireEye Market, which enables you to “discover apps, extensions, and add-ons that integrate with and extend your FireEye experience.”
  • (02:51) FireEye is a relatively large company, but Will’s team is just four people, and they’re using serverless development to scale and get a lot done quickly. The FireEye Market is a greenfield development project. It’s primarily a single page application that uses GraphQL. When new apps are published, an external provider pings webhooks that kick off background process that cache binaries, notify consumers, etc.
  • (07:05) Kevin asks about what pushed their team towards serverless technology. Will talks about how serverless lets them maximize the time they devote to delivering business value.
  • (08:30) Will talks about how they were able to successfully pitch the project internally. While there were some additional costs as they scaled up, they’ve also been able to take advantage of new AWS services that allow them to scale on demand, which has led to savings.
  • (11:10) Jon asks for more clarification of what Apollo GraphQL‘s role in their architecture.
  • (12:38) Kevin asks about the learning curve. Will says a lot of it was pretty natural since the team already had a Node background, but learning things like cold start took some work.
  • (14:25) They used the serverless framework, which helped take care of setting up tedious infrastructure. If they were starting today, they’d seriously look at AWS Amplify, which is a lot more feature rich and includes support for CI/CD.
  • (15:50) Jon asks how they handle failures, including both code errors and service outages.
  • (19:49) Kevin asks about concerns with vendor lock-in. Will explains why he prefers to just pick a cloud vendor and learn it.
  • (20:49) Kevin asks how they manage the complexity of many small services interacting; Will talks about the use of AWS Step Functions to manage state and workflow, and keeping updated diagrams really helps.
  • (22:40) Kevin asks about the local vs. cloud development experience. Will talks about some local development emulators from the community, but it’s not quite the same as actually hitting the real service.
  • (24:00) Kevin asks about the testing strategy.
  • (25:15) Jon asks how things work with version control. Will explains how AWS CodeBuild handles git push build and deploy for them.
  • (26:00) Jon asks how Will keeps up with all the different AWS services, especially since many aren’t intuitively named. Will defines all the different services they’re using.
  • (28:48) Will describes his bias against containers: you still have to worry about the underlying operating system, whereas with serverless that’s all abstracted away.
  • (30:00) Will explains how they designed the system, starting with diagrams on draw.io, continuing to work through requirements, and evolving the system.
  • (31:52) Will explains what’s different about working with DyanmoDB. There’s a lot, especially access patterns.
  • (36:03) Jon asks how they handle versioning multiple services and data changes; Will talks about using Step Functions and handling data failures.
  • (38:25) Jon asks for advice for people who are getting started with serverless on AWS, and Will highly recommends AWS Amplify. There are lots of samples for serverless framework.
  • (40:39) Kevin asks if it’s possible to migrate an existing application to a serverless architecture. Will says it’s challenging, but you can use CloudFront as a router to start distributing work to serverless services based on URL path segmentation.
  • (41:50) Kevin asks about the experience of moving from Ruby development to JavaScript development.
  • (42:40) Will’s team is hiring right now, here’s the job listing: Senior Developer (US Remote – Prefer Eastern Time Zone).