« All Episodes

Part One: Paul Straw & Sean Washington (@paulstraw & @seanwashington) talk about focus, JavaScript frameworks, and rites of passage

Published 10/23/2015

In today's episode, I talk to Paul Straw and Sean Washington from Does Not Compute, the newest member of the Spec family.

Mentioned in today's episode:

Note: We had a little hiccup in our editing process. Paul mentions the "modulus operator" during our sponsorship spot - this has nothing to do with DigitalOcean, but he's totally right... the modulus operator is overlooked, but it is really useful when you really need it. (So go learn about it here.)

Today's episode is sponsored by Digital Ocean! Use the code "Developer Tea" at checkout to get $10 credit on your account.

Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell. Today is a very special episode because I am recording the newest members of the spec family Paul Straw and Sean Washington. I'm going to be talking to them about their show does not compute. It is a really cool fun show. It's a little bit longer than Developer Tea. If you like a little bit longer shows, it's a slightly different format. Really fun. I really enjoy the show. I'm hoping to be on their show a few times as well. Thank you to today's sponsor digitalocean.com. If you need to spin up an SSD server, this is the place to do it. Digitalocean.com. We'll talk more about them later on the show. But let's go ahead and get into the interview with Paul and Sean from Does Not Compute. Paul and Sean, thank you so much for joining me on today's episode of Developer Tea. Thanks for having us. That's awesome to be here. I'm excited about your show. Tell me a little bit about Does Not Compute. Actually, tell me about yourselves. Let's hear about Paul and Sean and what you guys do every day outside of podcasting. Sure. I'm Paul Straw and I'm currently the consulting director at octopus creative. I do different types of programming there. A lot of stuff in Ruby and JavaScript primarily. We work with clients mostly startups in the Bay Area and also some larger companies like Google and HP. Outside of work, I do podcasting. That's great. As it turns out, that's exactly what we're talking about today. Yeah, I'm Sean Washington and I'm the lead developer at octopus. There I do basically the same thing Paul does. I build client apps with Ruby and JavaScript and outside of work, I play guitar and I surf and I chat with Paul occasionally. Paul does the podcasting and you do you just talk to him. Yeah, so we're always talking at work and we're pretty much always talking outside of work as well. So I guess it felt natural to record that and we always thought our conversations might be able to help some people so I'm not sure that. Yeah, so it was a very natural thing for us. We've always just had that conversation going on where we're talking about dev stuff and all the related things around that, the culture and whatnot. And so one day I was just like, do you want to start recording a podcast and we gave it a shot, turned out okay. So give me an example of a conversation that you guys have had recently that ended up making for good podcast discussion. I think one of my favorite episodes actually was after a tough week for both Paul and I, we just called, we just did the Skype call and I mentioned, I'm feeling kind of burnt out, it's been a really tough week. We kind of talked about how not a whole lot of people talk about being burnt out and how that's okay and what to do if you feel like that. Sure, yeah. Yeah, it's stuff around being burnt out so productivity, that sort of thing and it's also a lot of a little bit more in-depth topics. We've spent a bit of time in a couple episodes now talking about JavaScript frameworks, front end MVC, that sort of thing. And just generally kind of cool stuff that we've seen over the last week. Very cool. Well, I think we can talk about a few of those things just to make this kind of like a hijacked episode of Does Not Compute on Developer Tea. How's that sound? Sounds great. Works for me. All right, then. Well, so tell me, each of you I guess, what does a typical kind of workflow look like for you? When I say workflow, I don't mean like what tools specifically you're using necessarily. But like, how do you guys maintain focus? Focus is kind of a big theme on Developer Tea. Every time I talk to another developer, each person has their own way of doing this. How do you guys maintain focus? This is an interesting thing. I'm not necessarily great at it, but I have been fortunate enough where my programming jobs that I've had have been pretty flexible in terms of hours. So during the day, a lot of times I have trouble focusing, but I work super well in later hours of the day. So you know, I'll go into the office and I'll be around to collaborate with people and work through things. But then later on, I'm able to just kind of really focus in when I'm at home or on weekends or whatever. And that obviously doesn't work for everybody, but for me, it makes a lot of sense just because that's kind of how my brain functions. For me, I actually focus better in small bursts. And I remember, I don't know which episode it was, but you mentioned an app called Focus where it actually blocks different, like, websites and perhaps. So I've actually been using that. I bought the three license for that. And I actually just set a timer. Some days you know, it's 15 minutes. Some days it's an hour and I'll set that timer and I will try my hardest not to do anything until the timer is done. So I mean, I block everything, tweet bot, I block messages, I block emails, everything. So there's, and most of the times I actually roll with notifications turned to do not disturb. So because if a box pops up in the top right, I will click on it. I can't help it. And if I see a red circle in my dock, I will have to get rid of that. It's just a thing. Yep, I'm the same way. I get stressed when I see people's home screens and they have like 100 unread messages. It drives me insane. Me too. I'm that way with tabs even in my browser. If I'm not using a tab, I need to close it. You know, like, and I have, there's people who work at Whiteboard, they'll have, you know, upwards of 20 or 30 tabs open on there in Chrome or something. And I'm like, how do you even function? You can't even read the titles on the tabs to even know what to switch to. Yeah. It's crazy. Well, Paul does that. Paul does that. Actually, he's crazy. One of our coworkers in the Biel actually, I think, takes the cake though. I think he has Paul beaten a number of tabs he has opened. My dock is all red circles. I can't imagine. So just a quick, like, random tip for anybody who gets distracted by those notifications, a very fast way of turning on Do Not Disturb is just to option-click. And that's on Mac OS 10. I'm assuming most of the people who listen to this are probably on Mac. If you're not on Mac and you're doing something on Linux, then you probably already know how to turn off your stuff. But option-option-click that little, what is the name of that icon? The message center? Notification center. The three bars in the top corner? Yeah, just it just clicks it off and on for you. And it just grazes it out. That's really cool. I had no idea. Yeah, it's a little bit easier than dealing with the whole animation and stuff. So you mentioned something interesting to me. You said short bursts. I know some people who can sit at their desks for like eight hours straight if you let them. You have to like pull them away from their desks. I cannot do that. I have like a two and a half hour limit before my brain kind of goes. And I'm wondering, have you guys ever experienced like what kinds of things make it harder? You mentioned burnout. Burnout for me makes it really difficult to focus for longer than 15 to 20 minutes at a time. How do you guys have like a time limit on how long you can actually focus in the best case scenario? Oh, man, that's a really good question. I actually think for me, it's like maybe max of an hour or two, honestly, like to be really focused and really getting something done without eating a break. And how many of those can you do in a day? It really depends on the day. I mean, I find that the more I'm exercising, the more I'm active and the more that I'm stepping away from the computer, the more of those longer chunks that I can do. But I'm really glad you mentioned that. I'll come back around to that. So for me, it's really more of a, instead of, oh, I can work for an hour or two, it depends a lot on the task. Again, if I'm doing a lot of collaboration with people, if I'm walking around the office, talking to people, doing whiteboard sessions, that sort of thing, then that kind of naturally breaks it up into little chunks. But when I want to sit down and get a bunch of programming done, I want to get these five bugs closed or whatever, I will, I'll get into a flow state and I'll sit there for six hours, eight hours, 10 hours, 15 hours. But those are more rare. And do you guys track bugs who get, however, what do you normally do? Well, we use GitLab, which is like an internal GitHub. It's like a self-hosted GitHub. Interesting. I've noticed that everybody has a different answer to that question. Like, I know, for example, I've talked about Pomodoro technique on the show before. GitBac uses Pomodoro. Tweeting out the other day, trying to figure out a good Pomodoro app that allows me to kind of integrate it with other stuff and maybe, you know, Apple scripted or whatever. I wanted to be able to click the Focus tab in my menu bar and start the Pomodoro timer and see a timer. But it doesn't give you a visible timer. And so I was trying to figure out, you know, is there one out there that does? And I ended up using Egg Timer, which is just a URL, e.gitime, what is it? e.ggtim.er. And then you can pass slash 30 minutes to it. And on Focus, you can also start a script. Like, there's a start and a stop script. So you can open a URL with the start and the stop script. So every time I start a Focus session now, it opens Egg Timer in my browser. Just pretty cool. It works out. You know, I thought about a use case for those scripts and I didn't really come up with any of your having sitting in the up. But that's probably, that's probably the first good one I've heard actually. My unfocused script tells me to walk around a little bit. Like, it uses a say command or whatever. I actually, I got an Apple Watch a few months ago. And that's actually been kind of help for me when I do get into those really long deep sessions is the Apple Watch telling me that I need to stand up. Because even when you're focused, getting a tiny bit of a break can be a huge help for just being able to think about things and get away from the computer and maybe figure out some solutions you wouldn't have otherwise. Great. So now we're going to take a quick sponsor break and it happens to be a perfect segue because both Paul and Sean have used our sponsor for the day. It's digital ocean.com. Tell me why you guys love digital ocean. The modulus operator, man, it is so useless and 99% of the time. But then that 1% of the time, it's just the best thing. You heard it straight from the mouth of Paul. Sean, anything to add there? I've never had any issues with digital ocean. Like Paul said, we've used them for multiple service setups, like server clusters. We've used them for one off $5 service for a client hosting one website and everything's been great. Automatic backups, automatic scaling if you need it. It's really the perfect service. They do it right. So digital ocean is amazing for so many reasons. We use them. We get basically all of our clients to sign up. What's really cool about them for us is that they have plans. For everybody. You can spend $5 a month and get something that will run your WordPress site or your Statomic site or whatever. Totally fine. But it's also really easy to upgrade. We also have a bunch of clients on Rails where we have a load balancer and a database server and an elastic search server and three app servers and just all this stuff interacting. Their prices are amazing. Their uptime is really solid. It's just amazing service. They're great. Totally. I've used the resources so many times. It's perfect for side projects and stuff too because $5 is a little bit of nothing compared to the value that you're getting. By the way, you get a SSD server super fast. It's good enough for pretty much any side project, by the way. That $5 tier is. The cool thing is with this sponsorship that digital ocean is doing for us, you can use the code Developer Teaat checkout and you get $10 of credit, which is basically like two months of free time on one of those servers, which is, I mean, they're basically just giving you free resources all over the place. Go and check it out digitalation.com. Of course, that link will be in the show notes along with the code Developer Teaso that you don't forget about getting that $10 credit. You mentioned, one of you mentioned, I can't remember who, that being active outside, I think it was Sean, being active, you feel more productive, which seems like a paradox, right? The more time I spend not working, the better I am at work, right? I was talking to another person at Whiteboard and they said, it's strange how much time and energy it takes to actually be active and healthy. I said, you know what? Obviously, I've saved in productivity, I've saved time by being active and healthy. You know, to me, it's even more of a paradox that I consider the gym like a part of my work day now. Does that make sense? Yeah, it makes total sense. And I think that in working out, it's not only just the act of keeping up your body, but it affects your energy level, it affects your focus level. It affects you as a whole complete person. And I think that's why I think it's so important for me. And everyone's different, but I can definitely notice if I'm working a lot and not working out or not surfing or something. I've actually had my boss come up to me and say, hey, how long has it been since you surfed because I can tell that you're visibly more stressed and you're visibly more worn. And yeah, I was sort of interested in that. It plays that big of a part that people can notice. We need you to go surfing. Yeah, it's please go surfing. You need you have a deadline to get in the water. Do something, you know. You've actually been paid to surf before too. Yeah, we've had a client come up from Miami who he's heard of Santa Cruz. We're from Santa Cruz, by the way. He's heard of Santa Cruz. The surfing here is really good and he wanted to hit the waves. So we took a few hours out of the day and took him down to one of the spots and took him out. You know that makes you professionally. You are a professional surfer technical because you've got paid to surf. You can tell people that nobody would ever know that by watching me. I'm doing good. I'm doing good not to drown. I mean, that's that's warm at. So same. I guarantee you that you have surfed infinitely more than I have because I've never surfed. True story. Man, well, I've tried, I've tried my, I've tried to work it on Paul and he doesn't, he's not having it for very specific reason, which you can outline at some point if you want. But we can talk about it on a different episode. I think that's a different podcast. Yeah. Well, that's a very good reason for somebody to go and listen to. If you don't have a compelling reason yet, go and listen to do, does not compute for that one specifically. Yeah, we'll have to bring it up. But if anybody, it's an open, it's an open challenge to anyone I guess that hears is if they want to come down to Santa Cruz, I will take them surfing. Is that a challenge or offer? Offer and a challenge. I dare, I dare people to come here and surf with me. It's like taking somebody hiking something. I like it. Okay, so we've covered, we've covered focus. The another big theme that we talk about here on Developer Tea is learning. And I know you guys have recently been talking about JavaScript frameworks, the, the MVCs or MVCs or whatever, M stars, whatever. So tell me what's your favorites or a better way of putting that is, what are you guys using? Oh, man, view.js. Yep, VUE, we're both using this lately. I can't remember how we heard about it. Sean, you might have introduced me to it or maybe. Oh, Jonny Holiday. He was building his freelancer app. I can't remember what it's called, but he wrote a blog post about trying to choose a framework and he picked view originally and then switched to Angular because of the larger user base. But that's how I found out about it. Yeah, so we've both been using VUE and it's been super cool so far. It's one of those things that I think at least I personally have found is very rare in software where it does what it says it does and it does it really nicely just consistently. And that's kind of something that, and I know there are a lot of people out there who love React and Angular and all that kind of stuff. And those are, those are definitely great for certain use cases. But it's a lot of code and a lot of things to learn whereas VUE keeps it pretty simple. So as a consulting business, especially it makes a lot of sense because we have a lot of smaller projects and it's not like we're always on one thing for five years or whatever. So having something that you can spin up in a new app really quickly is really, really useful to us. Not only that, but the documentation for me has been really great. It's very clear. And I think that's one of the biggest things for me that I look for when I'm choosing my tools are the docs. Are they clear? Are they written well? They can size. And I've tried out, it's like a minimum for me. Yeah, definitely. It has to have great documentation for me to be able to bring it into a business. Yeah. And I had to work on an app maybe a year and a half ago, I think it was. So I was one of the developers on the app and there were a few other contractors on it. And that was my first introduction to Angular. And at that point, some people might disagree, but I thought the documentation was horrible. And I had a really just really bad experience with it. And so after that, I jumped a backbone. You know, and backbone's docs are just great. I really like it. And the annotated source was awesome as well. And yeah, so for me, moving from backbone to view was kind of a natural progression because it's a lot like backbone, but there's a lot more to it that you get for free. Interesting. So here's my question about it. And this is my question about pretty much any JavaScript framework at this point. Because some of these frameworks really kind of, they, I won't say they force, but they're really only best used if you kind of apply them to the whole thing, especially if there's like a routing built in. I know Ember is this way. Angular seems to be not so much this way, but Angular is so big the last time I looked at it that I just couldn't wrap. I couldn't wrap my brain around it enough to feel like I was comfortable with using it. And so I just avoided it altogether. Can you create pretty easily create like just a part of the page that is controlled by view and then do server side rendering for the rest of it or how does that work? 100% view is a really nice balance where they have a router component that I think was just released or is just about to be released or something like that. But that's not the focus. So if you want, you can absolutely build a full on single page app, all JavaScript, the whole nine yards. But at the same time, Sean and I have actually used it in a bunch of things. I think you're using it in a static site right now. Shopify shop actually. Shopify even. And that's even less control. And I'm using it in a rail site currently. And it's everything's being rendered from the server and then just being mutated on the front end with view. It's really super flexible in that regard. And one thing that I really enjoy about view is that it gives you the whole web component option as well. So you can register your views essentially as components and you can drop those directives into the DOM. And so as a developer, if Paul passes me code, I'm looking through maybe a view template or something. And I see, oh, what's this product image viewer tag that obviously has to be something custom, right? And it just works. You know, so that was the first thing I said to Paul. I was like, you know what? This might be one of the only things that I've used in quite a while that actually works. In every case that I've used it so far. So for those of you who are listening who don't know what a web component is, I will I'll include a link in the show notes to I think that where's the official documentation for that? Is it on Mozilla or is it on Google documents? It's definitely one of those or maybe both. Probably both. It'll be in the show notes, right? It will be in the show notes. So you guys know more than we do right now. Yeah, but also in that, in that with the vein of web components, you were able to nest them. And so I actually have a component on the Shopify store where there's other components inside of it and it works flawlessly. It's just great. Right. So you actually made a flickety component the other day. And for anybody who doesn't know flickety is, it's like a JavaScript slider care cell thing. It's made by David Sandro, the same guy who made masonry and packery and all those awesome tools that are all over the web. But now you can literally just because of this component you made, you can literally just type less than flickety, greater than standard HTML tags. And it just sets that up for you and you don't have to write any JavaScript. And it's super cool. And it leaves you with a clean DOM, which is very important to us. It's almost like helper functions in Rails, right? Yeah, exactly. Exactly. So there's a couple of cases where there's a few different sliders on one page and I just reusing that tag and I pass in options. So flickety, you can pass in custom attributes that get passed into the component. So like flickety wrap around equals true. And so that way I can customize each slider to, you know, to the specification of the design without having to write any custom code for it. That's really cool. I use a, what is it? Slick. Slick.js. Yeah. That one has solved every problem that I've thrown at it pretty much. I can't get away from it now. Yeah, I think I used Slick on a project a couple of months ago as well. It was nice. I have a great API. It's just really well done overall, I think. But everybody has their own slider. You know, I've written a slider just like both of you probably have. So I have as well. Yep. Yeah, I have actually. It was like, it was, if you're learning JavaScript, you kind of have to. To do that. It's like the right. Yeah, exactly. A right-of-passage. That's totally the right terminology for it. It's just something that everybody needs to do. It's like making a blog in Rails. Yeah. But the thing is that when you do something like that, you gain the experience and you understand why other people maybe have made those same choices too. And I remember when I first started on Octopus, I had, my experience was basically making WordPress memes and some small Rails kind of maintenance stuff. And so when I first joined in, I remember, I don't know what Paul remembers it is. I would, you know, they would assign me a project and I would be like, oh, I can use this jQuery plugin in Paul's ear. No, you can't. You have to write that. He would make me write all this stuff from scratch. But I'm very thankful for that because I gained so much more experience from doing that. Thanks so much for listening to today's episode of Developer Tea. My interview with Paul and Sean from Does Not Compute. Make sure you check out their show at spec.fm and subscribe in whatever podcasting app that you use to make sure you don't miss any episodes of Does Not Compute. Of course, if you don't want to miss out on the next episode of Developer Teawhere we finish out the interview with Paul and Sean, you'll need to subscribe to Developer Teain your podcasting app as well. You can find us on iTunes and Stitcher and pretty much any major podcast provider. Thank you for listening to Developer Tea and until next time, enjoy your tea.