ALTERNATE UNIVERSE DEV

FounderQuest

Hawaiian Punch And 2020 Resolutions

Links:
Cliff Mass Weather BlogContinuous Integration (CI)Unicorn ProjectPhoenix Project DependabotJenkinsGitHub ActionsBuildkite
Full transcript:
00:15          This is our first fireside chat with the two of us, right?

00:18          So you're ready for Christmas?

01:28          I think so.

01:31          How about the kids, are they ready for Christmas?

01:34          They're ready for Christmas. Everyone's been a little bit cooped up because of the winter weather, but I don't think we're going to get any relief there.

01:47          No, I saw that they had this like, what is it called? The pineapple express. This weather pattern that we have where this big stream of moisture comes from Hawaii into the Pacific Northwest and that's what we're doing right now. We've got this big rain storm coming in and I was looking at the visuals from Cliff Mass blog and there was just like the moisture was indicated with colors, right? Like you usually see on a forecast, and it was deeply red. Like all the way from Hawaii to the Pacific Northwest and the end of it, as it passes the U.S. Coast, the kind of like a fist and so people were calling it the Hawaiian punch.

02:36          Hawaiian punch. That's awesome.

02:39          Yeah, we had a road shut down near us because all the rain caused the soil to get unstable and so there's a little bit of a mini land slide, I guess what happened, and some trees fell down and... yeah.

02:56          Ouch and Hawaiian punch, that's like a weather reporter's dream, isn't it like?

03:01          Yeah, basically.

03:01          Getting a name like that you can say.

03:04          I'm pretty excited for Christmas. There's not going to be any snow, but that's okay. It'll still be fun. Oh, it's follow up though, for like a couple weeks ago, I think it was just Starr and I who were having the chat. I don't think you were there for this one, we were talking about the Christmas lights and-

03:26          No, I was there.

03:27          Oh, you were there?

03:28          Yeah.

03:28          Okay. All right. I bought some Christmas lights for the outside of the house.

03:32          Did you? Nice.

03:33          So, now I have one string of lights draped over my garage door and it's-

03:40          That's what I usually have, except I didn't put them out this year yet because I was waiting for my garage door to go in and so now Caitlin and the kids are kind of bummed that they're not up, so I might put them up this weekend just because it doesn't look like it's going to be here.

03:55          Totally.

03:57          Throw them up for a little while anyway.

03:58          It's kind of fun and it is fun, like Starr said, to see them when you're coming home, get that holiday cheer.

04:07          It does, it kind of changes the atmosphere, for sure. So I thought we could talk for a second about a work related thing. Just because I think people are going to be getting this. I mean, this episode's going to go out next week, which is a couple of days before New Year's and so I thought we could, or at least I could share a New Year's resolution, which I normally don't do because usually if you share your resolutions, they don't happen. But I'm just going to throw caution to the wind here, but anyway, I think I posted this in chat before, but one of my resolutions is not to wait on a CI unnecessarily.

04:52          Oh, we got to do the Starr thing though. What is CI Josh?

04:58          So, CI is Continuous Integration, but there's a bunch of services that do this for you. It's like an automation feature that runs build steps on your software basically every time you push into your code repository, like github.com or whatever.

05:13          So we have a bunch of tests, test code for our application and the CI service runs all those tests for you and lets you know if they passed or failed, right?

05:24          Exactly. Yes. Being around for a while, the badgers getting up there in age, we have a lot of code repositories laying around now that we have to maintain and a lot of those happen to belong to me and they all have CI, and so they all have test suites that are running on every code push and that's fine. We've used a bunch of different services in the past but I think we've been using like Travis and Circle for the most part.

06:04          Normally it's fine, like, if I push code and I'm not doing like a ton of changes or I'm not working on a ton of repositories at once, but lately we've been using Dependabot, which is kind of a newer automation tool which automatically submits a dependency updates to your repositories. So it's a good way to keep like your dependencies up to date so you're not like having to go and do like this massive upgrade of all your things at once. What it does is it submits a more granular like, it submits one pull request for each dependency that has a new version that's come out. So on a lot of these repositories, a bunch of them anyway are NPM packages and as you know, NPM is a super low number of dependencies in an NPM project.

07:07          Like usually an average project, like a hello world might have a couple of hundred, more like an actual project might have a couple thousand. I forget how many it is, but it's a lot.

07:23          It's a lot.

07:26          Every time an NPM package that we're using gets updated, Dependabot on what submits a PR, when you want to go and merge all those things together especially, say like the other day I was doing this for six repositories at once that each had a bunch of a Dependabot PRs open. So it's like every time you merge it's generating a new test run, every time Dependabot opens a new PR, it's generating a new test run, every time you merge one PR and then it makes Dependabot need to rebase all the other open PRs, because it changed a package lock file or something and it needs to regenerate that for all the other open upgrades that are in process. Like 50 CIs runs need to happen. Basically I was stuck in this hell of like waiting for CI to run just so I could merge these tiny little PRs.

08:30          So finally I was not too happy. I wasn't a happy camper and the reason it was taking so long. Is that we didn't have very good concurrency for running all those builds basically.

08:48          So your resolution is to not wait on CI. What's the solution going to be?

08:54          My resolution is not to wait. First of all, the projects that we're using Travis, it's not Travis's fault that it was taking so long, we were using their open source plan. So I can't complain about Travis. Thank you Travis for giving us open source whatever, build time for so long, that's awesome, but if you're maintaining a lot of projects, it's not great because it has limits on how much you can run at a time. So one, I'm moving to some somewhere where we actually are paying like we can pay for more concurrency basically and we can basically pay for as much as we need because we can afford it. I think at this point my time is probably more valuable than waiting on CI runs.

09:52          So I'm moving most things to GitHub actions, that's kind of my answer because as I understand, the GitHub actions, you get a certain number of free minutes or something and I'm pretty sure then you just pay for extra, whatever you need. So that's great and we also use Circle for some things and for a long time they had some kind of, it was like a strange way they did concurrency. I don't think our plan had a super, like it wasn't unlimited like pay for as much as you need, but I'm pretty sure they just switched that model. So, if we want to we can also pay them more money to us to save us time.

10:38          So, the plan is we're going to trade some money for time?

10:41          Exactly.

10:42          Yeah I like that plan.

10:43          So that's my plan. My plan in 2020 is to spend more money.

10:47          Talking about CI, I have long wanted to just take some time and work with Buildkite, that's a CI service where you run the runners yourself and your own infrastructure and they run the coordinators and then you run the actual boxes that run all the tests. I've wanted that because like you can decide how much do you want to scale up and you can just run the instances and we already have a pretty awesome set up with Amazon for all of our hosting needs. So we could just use Buildkite. They have a cloud formation stack. You can just throw in there and that was it all, but-

11:31          That's cool.

11:32          ... I just didn't know that that was a good use of my time. That's one of those, it'd be fun to do but it's really not worth it, you could just pay GitHub or pay Circle to do that for you.

11:41          Right. I remember back in the day like trying to run my own Jenkins server and-

11:48          That's no good.

11:48          ... I don't recall that being like a valuable trade off or a worthwhile trade off, at least not in my size.

11:58          Yeah. I ran Jenkins back in the day and that's not something I would choose to do again, that's like choosing to run your own email server. It's just a world of pain, you don't need that.

12:09          It is interesting like all this stuff it's getting progressively easier to run your own. I think there's definitely a trend that's still moving in that direction for certain use cases. Whereas, doing email things it's easier than it used to be. At least using other services or Amazon's got what's their email service?

12:39          SES.

12:39          SES.

12:40          Yeah, I definitely see that being a trend over the next couple of years with the compliance stuff that's been happening with GPR and CCPA. It's having control over where that data goes, I mean CI isn't as important in our case because that's just code. That's not any of our customer's data involved in that, but things like email and search, all those places where that customer data ends up or has to go through, all of a sudden it's much more important now. Like who is touching that data and can you verify that those companies are actually operating in a secure way, because if someone wants to audit you, they're going to ask you who your vendors are. In that case it makes sense not to use some fly by night service to do your CI. You want to use someone that's got a good SOC 2 story, or whatever and being able to have or for the more paranoid among us to run all those services yourself. So like Buildkite, that's probably a good thing for them to sell. You can have all this stuff on your own services.

13:45          For those services that allow you to do that, the easier they get, the more attractive it is to be able to do that, because at least from my perspective, if I know that at some point I'm going to be dealing with privacy regulation things, if I can build it with something that doesn't require me to think about that at all in the future, why wouldn't I. If it's relatively the same cost.

14:16          That's always the trade off, right? If you want to run it yourself, then you have to administer yourself, that's one thing I think is nice about the rise of serverless. Is that you can just outsource all that, you can quote self host it, but let Amazon actually handled for you and its in your Amazon account.

14:33          You're like offloading all of that risk and all of this stuff, the headache to the platform, which is designed basically just to give you a compliant way to run your own email server or whatever kind of.

14:46          I think software developers, entrepreneurs in 2020 might want to look at some of those popular SaaS services that are out there that are hosting a bunch of data and maybe make a self host adoption.

15:01          Yeah, but for CIs at least we won't have to think about that because we're not like running our tests against like live cast, like a database clone of a production, I assume.

15:14          No, we're not.

15:16          I'm reading the Unicorn Project right now, which is the followup to the Phoenix Project and really it's about super archaic enterprise company, it has to switch to all cloud services and modern tech stack and everything, with hundreds of people into different teams of things, but reading that makes me recall all the weird things people do out there.

15:50          You know, just that brief intro that you gave just now makes me so glad that we're in a cloud native company, that we don't have any of that baggage to deal with.

16:01          Have you started that book yet, by the way?

16:04          I haven't yet, no. The Phoenix Project was great, I loved it and so Unicorn Project it's definitely on my list, but I haven't gotten around to it yet.

16:10          So one thing I thought the book was like kind of like a sequel or actually what I thought the book was when I first saw it come out was I assumed it was like the Phoenix Project, which kind of focuses more heavily on the operations. It's about DevOps, the Phoenix project is basically about how to implement DevOps in a large old-school organization, but it focuses a little bit more on the Ops side of things. So I assumed that the Unicorn Project would do the same thing, but for the Dev side of the picture, but what it actually is, the Unicorn Project is written more for developers.

16:54          So it's written for like the developer in the large enterprise organization and it's specifically like how can those people move their companies in the right direction, into the direction basically of the Phoenix Project. Whereas the Phoenix Project was like, how do you implement DevOps in the enterprise? Or why should the enterprise even care basically?

17:23          That's cool.

17:24          I thought that was an interesting dichotomy I guess. So anyway, recommend it.

17:33          Definitely on the list. I think I might spend some time caught up on some reading over our Christmas vacation.

17:41          Yeah, same. I've been having fun on my side projects this month so far. I got pulled into a few Honeybadger actual work things, but I've gotten a lot done, but I'm also feeling the need to also rest a little bit this month. I think I'm going to force myself to set everything aside for probably for the rest of the month coming up pretty soon here, maybe starting next week, give myself a weekend.

18:14          I've been liking our side project month. It's been going really well. I've spent more time on non side projects than I had planned, so I haven't had a lot of side project time, but at the same time I've taken a look at like some of the systems that we have and I guess lubing up some of those squeaky wheels and that's been fun because I've been playing a serverless. So that's always a fun thing, but I think that's a valid use of side project time, is to take a look at stuff that is working fine, but I would like it to work a little differently, just polish that a little bit.

18:53          I liked the idea of just taking time off to work on what you would work on if you didn't have any kind of responsibility or pressure to do anything, like what would you do. I wish that we could just do that all the time and maybe take time off occasionally to do actually do stuff that we're forced to do.

19:16          I think maybe in the new year we can talk about how it could make this little more regular kind of thing. Instead of just one month of the year, maybe we can do one week, a quarter or something on. I'd love the story of Basecamp and how it was built on Fridays. Basically they spent a few hours every week and just built that up and I like having the distraction. Side projects in general are fun, whether they're work or not and I think if we could kind of schedule that into our system a bit and that would help keep things fresh. So chat about that.

19:53          That'd be cool. Nice. So any other 2020 plans yet or do you have any resolutions?

20:04          No, I don't typically make resolutions. I try to build good habits and then stick to those habits. Like exercising, like a few years ago I decided like I'm going to start doing it and so just doing that three times a week as a minimum. That's the habit that I've now been doing for several years.

20:26          I agree, it's all about habits.

20:28          I mean resolutions, I don't know, they kind of get talked up a lot and then kind of get forgotten.

20:35          That's why I said resolutions, I'm a fan of them, but I keep them private. Like I don't usually share them just because it's a personal motivating thing and I weigh it's fine if you actually do accomplish something that you had set out to do, then you can like brag about it later or something like say, "Look, I actually did it," but you can. Normally it's setting yourself up for failure.

21:07          One thing I found that works for me aside from habits is I journal. So I try to keep a journal on a regular basis, maybe once a week and just write down things that are going on basically. What I've done is I put a sticky note and the front of that journal that has like five or six things that I just want to work on, like self-improvement kind of stuff. Every two weeks I'm seeing these little sticky note of things, I'm like, "Oh, yeah, I want to work on that," and so it's a good reminder to do those things. So that's worked out pretty well because I can kind of reflect on that and say how am I doing on those things and it's been good. Like you said, I don't share those publicly because I don't need to admit all my failures to people. It's been really weird like this past few weeks, maybe it's because we've been working on non-critical things but I felt like really motivated to work, exceedingly motivated to work for the past two weeks and-

22:13          I felt the same thing.

22:15          It's kind of weird. So now I'm going into this Christmas vacation that we planed and I'm like, "I don't really want to take a vacation right now because I'm really motivated to work."

22:23          This may be a problem with starting the side project work before the vacation, before you're going to take the time off, because then you're like you really want to work on this stuff because you've been having fun. We had it late last year where we did the work after the vacation.

22:40          Exactly. Well, we could always make up our minds to just go ahead and do some more side work after our vacation.

22:47          Or we could just decide to take January off, just to take the vacation.

22:54          There you go.

22:56          We'll just work through Christmas.

23:00          Well, one thing I think I've decided not to do over the break is I'm pretty sure I'm not going to upgrade the database this time. I was really planning on it and part of the side project work, I did find a little snag. We have a test instance of PostgreSQL 11 running and as I was working with some data there, I found a minor snag that could impact our production system if we went ahead and did that upgrade. So I probably will not pull the trigger on upgrading to PostgreSQL 12 over Christmas.

23:31          That's a good call. I don't think anyone wants to get like Honeybadger notifications or not get Honeybadger. I don't know what's worse like, not getting the ones that you should be getting, or getting the ones that you shouldn't be getting. Reminds me that we had a PagerDuty customer support request come in the other day about our PagerDuty integration. That was like, "Hey, like we're having this," it's like an edge case like use case kind of issue, but it's something that we might change in the future or we might tweak it to make it work a little bit better for that person. But it's like, do we want to make drastic changes to the data that we send a PagerDuty like on the week of Christmas?

24:24          Survey says no. No, we don't.

24:27          So don't worry everyone. I think Honeybadger, it's a feature freeze time.

24:33          Exactly. It's like those e-commerce shops that don't do any deployments, the week before Thanksgiving, right?

24:40          Like holiday time is our...

24:43          We try to keep things pretty static.

24:45          Static and stable and running smoothly.

24:50          So 2020 resolution though, I think one thing I'll definitely do is more serverless for sure. I'm really enjoying it. Like having the discreet bits of functionality that are independent of anything else. It's like, "Oh, you want to do some other transformation to that data that you already have? Okay, fine." Just throw it on the Kinesis Stream and set up another consumer and have a Lambda running that. That's awesome.

25:11          That's some really cool stuff. I think there's lots of opportunity to like pull out stuff, parts of the pipeline like we've been talking about and I want to learn more about that too.

25:28          Maybe we'll do that big rewrite, like one step at a time, right?

25:32          Yeah. At least the processing rewrite or whatever the pipeline rewrite.

25:36          Exactly.

25:37          I'm pretty sure, yeah.

25:39          12 months from now we'll be looking back and be like, "Oh, over the year we changed our whole pipeline," now we have V2.

25:45          No, I don't think we need to rewrite anything like in our actual rails app. It's just the parts of the rails app that maybe shouldn't be in there anymore. So yeah, we'll see, but I'd like to learn more about serverless in 2020.

26:01          So as part of my side project mostly, I've been playing with Vue, learning Vue. Maybe I'm late to the party, I'm not a big fan of front end frameworks and stuff. But-

26:13          This is the V-U-E, for client side framework.

26:21          As I've been doing more serverless, it seems like all the cool kids like to have their single page app in front of their serverless back end and so I've been playing with that and it's been fun. I like how easy it is to get into Vue. Like you can get started pretty easily with an existing page and existing app. It just feels lighter than react maybe that's just some personal prejudice or something, but it seems fun so far.

26:47          I've heard that too I think. It's cool. I haven't really compared them personally, but from what I've heard.

26:59          So what I did though is I bought a Udemy course on Vue. Remember last year when we did the hackathon, we bought that Udemy course about Elixir. I thought, well, we just go buy a course on Vue and so I got one and it's pretty good, but now I'm thinking like maybe every year we ought to have just like a Christmas giveaway at Honeybadger where it's just Udemy credit, so all the employees can just spend the Christmas break learning new stuff-

27:24          I like that.

27:26          Or maybe that's just me who like to learn new stuff. I don't know.

27:29          Yeah, no, I've got a couple of Udemy courses since last December and I'm currently going through a one on photography just to kind of brush up on my photography skills. That's been cool and it's nice. It's also fun having something that you're learning that's not tech it's a different type of learning.

27:57          Back to the resolutions, last January-ish, I bought a Udemy course on drawing, so I can improve my drawing skill. I haven't watched it yet.

28:07          Haven't? Well, you still have it though, so you can.

28:10          Yeah, I do still have it. So maybe over the Christmas break I'll learn how to draw.

28:14          Well, I bought the AWS developer certification course on Udemy, but I don't know if it's current. It's was for 2019, like November 2019 so now I might have to get the updated version if I'm going to actually do it next year, but we'll see. That's something I might still try to do.

28:40          I did one of those. I really enjoyed it. It was a lot of fun.

28:41          You and Starr both did.

28:42          Yeah. I think we're supposed to renew those once a year. So I think it's actually a time for us to renew to if we're going to do that.

28:50          Do you have to do the test when you renew or is it just like?

28:53          I think so.

28:54          Really? Wow. A yearly Amazon AWS exam.

29:00          I'll do a double check on that, but it was fun. It's kind of like feel like you're back in school, studying and cramming and testing.

29:09          It'd be like the first test I've had in a long time.

29:16          So we talked about our Thanksgiving dinners last time, now it's time to talk about a Christmas dinner.

29:21          Like what we had for Christmas dinner, right?

29:24          Right, because this is watching after Christmas. So the Curtis family, we do the same thing for Christmas that we do for Thanksgiving, so just do the turkey and sides.

29:34          Yeah, we've done that before and I'm a fan of that as you know. I like Turkey dinner.

29:42          Do have that turkey that you had?

29:44          No, I still got the two extras in the freezer, so we'll probably. I think we're going to do one sometime in like January or February or something. Who knows where when the other bird will. I think this Christmas we're going to do a ham go like traditional ham dinner.

30:05          So I do like the ham. That's what we do for Easter. That's our Easter one.

30:14          Easter ham. Nice, cool.

30:20          So is there anything that you really want Santa to have under the tree for you on Christmas morning?

30:26          I don't think so. Like I'm really bad, I just buy things that I want usually and if it's something that I decided that I'm going to buy, I'm not like usually quick to buy things, but once I decide I'm going to do it, I don't see the point in waiting. It's a little different here, when you're married and it's all the same bank account. We don't do like huge presents usually, but we do stockings and small things and occasionally like a surprise larger item or something that you didn't really think of. What about you?

31:18          I'm hoping for a Raspberry Pie under the tree.

31:21          Raspberry pie.

31:22          The latest generation. I wanted to build a little box to have pie hole on it.

31:28          Okay. That's cool.

31:31          Strip all those Ads from that nasty internet.

31:35          I've heard about that too.

31:36          Just have a fun little box my way.

31:37          You'll have to let me know how that works for if you get it installed and everything. I've heard they're pretty cool. It's like the Ad blocker that you install on your entire network, right?

31:50          Yeah, basically you just changed the DNS to point to it and so it just routes all Ad requests, so dev null.

32:00          That's really cool.

32:02          So we'll see. We'll see if I've been nice this year.

32:05          Yeah. Okay. So I think we're wrapping up here. I had a thought though that, if our wonderful listeners wanted to get us a belated Christmas present or holiday present, I think the best thing that they could do for us is to go to iTunes or I don't know what other platforms have like have reviews or ratings. I don't know if Overcast does, but at least if you're on iTunes, go to the FounderQuest podcast and give us a nice review and or rating and or review. I think that would be... What do you think?

32:42          Yeah. I think so.

32:44          That'd be a good one.

32:45          If you want a little Christmas cheer in addition to the gift to us, you can also tweet about the podcast, tell your friends.

32:54          Yeah, that would be great. That reminds me, on Honeybadger io, we've got the Honeybadger is looking pretty festive right now too. I don't know if you went and checked it out and I think we'll probably leave his Santa hat on until... I'll leave it up through the new year, just so people have a chance to check it out. Then if you're listening to this, like 10 years from now, unless it's in December, it'll probably be a regular old Honeybadger.

33:32          Sounds good.

33:33          Cool. All right.

33:34          Merry Christmas Josh.

33:35          Merry Christmas and a happy new year. Cool. Cheers to 2020.

Episode source