The Stack Overflow Podcast

Let's talk about our favorite terminal tools

Episode Summary

On today's episode we chat with Anthony Dellavecchia, a developer advocate at Twilio, about some of his favorite tools for boosting productivity and why he went all out building his personal website.

Episode Notes

You can learn more about Anthony here.

His favorite terminal tool at the moment is Warp, which describes itself as "a blazingly fast, Rust-based terminal reimagined from the ground up to work like a modern app." 

His personal website features a live chat function. Sometimes it's actually Tony, sometimes it's just a bot. 

No lifeboat badge today. We''ll be taking a break for the holidays and will resume episodes in 2023. Until then, enjoy the holidays. 

Episode Transcription

[intro music plays]

Matt Kiernander Hello everyone, and welcome to another episode of the Stack Overflow Podcast. Today we are joined by a special guest, Anthony from Twilio, and we also have our fellow collaborator and friend, Cassidy Williams. Hello, everyone!

Anthony Dellavecchia Hey!

Cassidy Williams Hello! 

AD Thanks for having us. 

MK Thank you very much, Anthony, for coming on. We were quite excited to have you. One of the reasons that we have you on the show today is to talk about developer productivity tools. So Anthony, I think you've got four tools maybe that you wanted to bring up. So what is, out of those four, the number one most useful thing? 

AD Okay, the number one tool on my list is going to be a terminal tool. Are y'all Mac users or do you use something else? 

CW I do both, Mac and Windows.

AD You do both. Okay, well I'm a Mac user, so this is kind of geared towards Mac users. Sorry non-Mac users. But we're going to talk about a tool called Warp. It's a terminal tool. I'm not sure if you have heard of it, but I think it's fantastic. So if you have a Mac you should be familiar with your terminal, and I know what a lot of people use is a program called iTerm2. That is probably the most popular terminal application out there on Mac, and I think it's a great app. It's really good for customization, so you could download it and just customize it like crazy. But the issue that I had with it was that –and this is based on experience at my old job– I had to replace my laptop I think three times so I had to set up three different laptops. And so just imagine this. I had my first laptop, I downloaded iTerm, I installed Zsh as my shell, I downloaded Oh My Zsh which is a customization on top of that, I downloaded the themes, I downloaded extensions, all that jazz, and then my laptop breaks. You could imagine how horrible that was because I basically lost at least a week's worth of configuration and stuff like that. And that happened to me two or three times and it kind of sucked. 

MK There are a lot of Windows users out there being like, “Well you should have just gone Windows,” but we'll skip that. 

AD Yeah, probably. But so there are ways where you can save your settings and stuff like that. You can export them, import them. 

CW I have a GitHub gist that I always copy into my .bashrc and zshrc and all that. 

MK There's also just something that I saw the other day. It was basically a USB stick that hackers can use to run command prompts and all sorts of stuff, but the initial design for it came from somebody who was sick of having basically the exact same issue. When they're installing new computers, they would put the USB stick in and then it would automatically install all the software that they needed, do all the powers that gives access to the command line as well. It uses a custom language from this particular firmware provider so when you're setting up new machines, you can just plug in the USB stick, it will run through the command line and upload and do everything that you need it to do, which is pretty cool. So maybe in the future, if you're having a bad run with laptops look into that, but otherwise please continue your story. 

AD Yeah, unfortunately I didn't have one of those so I had to do it the hard way of reinstalling everything. But yeah, after that experience happened I was like, “I still love iTerm, but there's got to be something better,” and somehow I stumbled on this application called Warp, and it is a terminal replacement for Mac. I believe it's built with Rust. 

CW I think that's right. 

AD Yeah, it's really nice. Whenever you download it, the first thing you'll notice is just how nice it looks by default. So, again, right off the bat it's a pretty interface, looks nice, and you can easily change the theme just by going into the settings and just selecting a theme within the application. And they actually look nice, unlike a lot of other terminal applications which just really change the color or the font. Sometimes you can tell a developer made it. 

CW Red background, yellow font. I don't understand. 

MK Are you saying the peak of design isn't the Dracula theme? 

AD Yeah. But with Warp there's actually nice built in themes. Another thing that I love the most about it is on the bottom of the screen, whenever you input your commands it's an actual text editor. If you're using a traditional terminal, you can't just use your mouse, put your cursor over a word and just click on it, at least I don't think you can. But with Warp, because it's a text editor, you can interact with it the way you would with any other text editor. So instead of having to just use your arrow keys to navigate, you can literally just drag your mouse over a certain point in that text, click there and your cursor will appear. Same thing goes for highlighting text. I'm pretty sure with a normal terminal you can't really highlight text, or if you do, I believe you have to use arrow keys and select it that way if I'm not mistaken. 

CW It depends on the terminal. You can use a mouse with iTerm, but with some, yeah, you have to use arrow keys. 

AD Okay, yeah. 

MK I still remember when that functionality came out on iTerm. I was like, “Oh my God, this is so much better!”

CW Wow!

AD Yeah, the cool thing about it is you can literally just highlight text, select it, and just interact with it in the way you would with any text editor, which is super awesome. Another thing that I really like with it is out of the box how it looks. So essentially you have your window, but every time you run a command it separates them in these different blocks. And first of all, that makes the UI look really nice because you can see what each command looks like because it's in its own individual box, but also you can interact with each box. So for example, there's a dropdown arrow on each box and it has different actions for that specific command. Instead of having to just get your mouse and copy and paste the output of a command, you can just simply go to that box and hit ‘copy output’ and it just automatically does it for you. So it's just really intuitive and easy. 

CW Yeah. It reminds me of I think either Wallaby or Quokka.js where you can highlight a block of text and it'll show what the output would be and stuff. That sounds cool. 

AD Yeah.

MK It's nice when people come on the show and they suggest something you don't have to pretend is cool. This is something that, genuinely, I'm looking forward to trying after the show. 

AD Yeah, I love it. Hopefully you get a chance to try it out and hopefully if you're listening to this, you try it out as well. 

CW My main question with it is can you use Vim with it?

AD That's a good question. I think you can. I don't know exactly because I don't use Vim myself, but I think you can. And I think you can customize the key bindings, so you could pretty much do whatever you want with it. But don't quote me on that. I don't know.

CW Okay, I'll try it out because that is one of the things when I set up a new computer, I have a whole GitHub repo that is a gigantic file that runs, “Install these Vim plugins, install iTerm, install this, install that.” And so I have my setup, but when I hear things like this, I'm like, “Ooh, I could update it as long as I don't have to change too much about myself.”

MK Did this solve your issue where, for example, if your laptop or your computer miraculously broke within the next 24 hours, you'd be able to replicate that setup easier?

AD Yeah, that's the reason why I love it. Because out of the box it's already such a good terminal that I don't even have to customize anything. It just has a ton of features that are already pre-built in it, which I love. I don't have to spend all that time to set it up and configure it. There's also a couple of cool features too like auto completion. I believe with iTerm, I'm pretty sure you would have to install different plugins for auto completion on certain commands. But with this, it has a lot of pre-built commands that are already there for auto-completion, especially with Git. And the cool thing about it is, if you don't know what a certain command does, if you hover over that command it gives you a little description of what it does. 

CW That's nice. 

MK That was my main motivation for getting, I'm doubting myself now, but I say Z-S-H just because that's how my brain locked in that particular name. Is that Zsh or is that Z-S-H?

AD Good question.

CW I literally did a poll about this on Twitter and I got a variety of different results, including from developers of it. Some people say ‘Zish’ like fish. Some people say ‘Zosh’ like oh my gosh. Some people say Z-S-H, some people say Zed-S-H. And then there was one other one. There were so many different options that I did not expect, and the Oh My Zsh people, Zosh, whatever, they ended up just sending me a t-shirt saying, “Sorry for the confusion,” and I never got a clear answer. 

MK Oh God. I'm glad that there's at least somebody out there who agrees with my pronunciation.

CW There's dozens. 

MK The whole reason I started looking into that was all of the autocomplete and the Git functionality and the integration. And I think there was this guy called Wes Bos who did this Zsh course on terminals and that was absolutely fantastic, but it was extremely deep and there was a lot of customization. And I tried other terminals. I tried this terminal called Fig a little while ago and it actually broke all of my other terminals basically by installing this. It was still in beta at that stage, so just take that with a grain of salt. This was maybe a year ago. They've come a long way since then. But I kind of got a little bit burnt by testing other different terminals because I was trying to do work and I was like, “Why aren't these commands working anymore?” And it was because there was just an incompatibility and a bug with the last terminal that I was using. But that sounds like it could be potentially something I download today and give a spin.

AD Yeah. Another really cool feature that I love with it is it has a snippet feature built into it. So again, remember I talked about how everything is separated into different blocks. Well, you could select the dropdown key for that box, and then you could copy a code snippet, and what it does is it generates a permalink for you. So it links out to that snippet right there, so you could literally just share it with anybody instantly. So it’s super, super fast so if you're on a team of developers or if you're in DevRel and you want to share something cool, you literally just click that button, copy snippet, and it's available instantly to anyone who has access to that URL. So that's a super cool feature. And then another feature that I think is super cool, I actually haven't played around with it too much but it's one of the coolest features that I've seen from any terminal, and that is an AI command search. It has built in AI into the terminal, so let's say you don't know how to do a certain command. Let's say you don't know how to undo your changes in Git, so what you do is you open up that AI prompt and then you type in, in natural language you type in, ‘how to undo changes’ or something like that. And then it will use AI and it'll figure out that command for you. So it'll return, “Git checkout.” Super, super cool way of using AI to help you figure out how to learn new commands. I don't know if it's still in beta but I remember last time I checked it was, but it's worked at every opportunity that I've tried it out with.

MK So if anybody was interested in checking out this wonderful new AI-driven terminal, you can head to warp.dev to download and give it a good crack. 

[music plays]

Ben Popper Splunk does a lot more than security and login. Learn about full stack, no-sampling observability for any application. Host it anywhere using Splunk Observability Cloud. Learn more and start a free trial at splk.it/sopodcast. Make sure you use that link and you let them know the podcast sent you.

[music plays]

MK We haven't even hit on the main highlight of this episode, which is to talk about your fantastic little website that is your personal space, which has quite a few different features including a ‘Chat with Anthony’ function.

AD Yeah. So it's my personal website, anthonydellavecchia.com. Just something that I made for fun earlier this year. And like Matt said, it has a chatbot feature where you can live chat with me or with a bot if I'm not there. It was just a fun little personal project that I worked on and I love showing it off. 

MK Can you talk to the tech stack that you used to build it and why you made some decisions, say for example the online chat functionality? What was the motivation behind doing those sorts of things, because there's a lot of content on the website. 

CW Yeah, there's tons. 

AD Yeah, there is. So I believe it's built with Hugo. I'm not sure if I'm pronouncing it right, it's a static site generator. So it's written in Go, and I'm using Firebase to deploy it. The reason why I went with Tilde, a chatbot solution, was just because it was really easy to set up honestly. I didn't want to have to build my own chatbot so I looked for online solutions that were simple and easy to use and that was one of the things that I found. It's really cool though because there's an application where if I get a message, I can just open up the app and just talk with people there directly from my phone. There's also a web interface that I can interact with and it shows me what users were on there, what time they visited the site, things like that. So it's pretty sweet. 

CW That's awesome. And so on the front end, because you're using Hugo, are you using any sort of framework for that or did you just do plain HTML CSS?

AD So it's interesting because I don't know Hugo myself, and it was one of the technologies that I was just wanting to play around with and wanting to learn, so I just picked it up and basically it just uses HTML CSS on the front end and a little bit of JavaScript here and there. I just inject some JavaScript in certain pages. But yeah, it was all new stuff for me. 

MK And with the design, I'm curious, was that something that you did yourself or did you get a template? 

AD It's actually a template that I customized a lot. Again, I didn't want to write it from scratch just because I don't have time for that. I don't have time for the design aspect. So I just Googled a theme and I found one that was pretty cool. But yeah, I customized quite a bit of it, added different pieces and ended up with the final product. 

MK The whole idea of having a personal website, I feel like it's something that people say you should have a personal website as a web developer. And Cassidy I know has got an answer for this. 

CW I got opinions, Matt. 

MK You got opinions. For me personally, and I'd love to hear Cassidy and Anthony, your take on this as well. I spend 40 hours a week programming and doing my own thing, and the last thing I want is to maintain another website on top of my 9 to 5. And so for me, I very much prefer a minimal, “Here is my portfolio, this is what I do, this is what I'm about,” and then I don't have to worry about it again. So I personally lean to more kind of off the shelf solutions like Webflow where I have a little bit more customizability and I can change the CSS and do plug-ins and all that kind of stuff. So Cassidy and Anthony, what is your opinion on the developer side project personal brand?

CW In particular at this point in time on the internet, we are realizing if you have a space on the internet that you don't own and control and someone else does, it could go away in some way, shape or form. And so being able to build a website of your own, even if it is just something simple like your name, some icons of where to find you, and a picture, anything like that, it's your space and you can really customize it. Mine is honestly just a bunch of text and then pictures of me with keyboards because that's who I am. But some people, they go much more detailed, kind of like Anthony, where you can see cool animations, you can see his resume, it's got dark mode and light mode, it's got a chat, you can see which workshops and talks he's giving soon. There's so many things that you can do with a space on the internet that is your own, and that's something that I think as developers, we are very uniquely positioned and privileged to be able to build that kind of space for ourselves.

AD Yeah, I think you said it best. I do want to point out something that you said, Matt. You mentioned the maintainability of having your own website. That's something that was really interesting with this project because I think I built it around maybe December or January of this year, so it was a while ago. And I ended up making some changes to it a few months later. It was funny because I forgot how to make changes to it myself, so I was like, “Wait, didn't I build this myself? I don't even know how to edit it,” and that was only three months after the fact. So I had to write some documentation for it, just for my own eyes. 

CW That's the blessing and the curse of trying new technologies, because you're like, “Ooh, something new,” and then if you don't keep practicing, you're like, “Well, I guess I can never change or fix this ever again,” unless you relearn everything. 

MK Or you just build an entirely new personal website. Another thing for anyone out there who's thinking about building their own personal website, whether that's a Matt special which is a Webflow thing, or a Cassidy special which is a complete custom thing, and same with Anthony as well, how much value do you actually get out of having your own personal space on the internet? Is it something that you use to sell personal products? Is it about curating an email list? Is it just simply a portfolio and a place for you to kind of easily curate, “These are the things that I do, and these are things that I do well.” What value and what was the intention of building a personal website for you on the internet? 

CW A lot of it is for my own convenience, because I'm a lazy bum. For example, if I am going to be giving a talk at a conference or writing an article for something, something like that, people always need a bio, some kind of biography of me, and I don't want to write one every single time, so I say, “Hey, there's a speaker bio on my website,” and then I don't have to write it. They can just copy it there. Same with getting a headshot. There's links to that. You can get a picture there and I don't have to worry about it. And so there's little convenience things like that where in addition to my website there’s my newsletter and my newsletter branches off of my website and I kind of keep track of my RSS feed a little bit in there, and then also just maintain sponsors for my newsletter through that. And because it's all something that I built, I have control over it and so I don't ever have to worry about something going down, or if it does go down it's my fault and not someone else's. And then I also made a URL shortener for myself that I can say, “If you go to cass.run/gh, that goes to my GitHub or something,” which I can use that to go to anything, and so I'll have it point to articles that I've written where I don't remember the URL all of the time, or for example, I have one I think that points to the Stack Overflow Podcast, things like that. It's just a nice convenience thing for me to be able to have something where I can just direct everything to one place. 

AD Yeah, same for me. Also the portfolio aspect is just nice I think, just having one source of truth essentially. So instead of having to update your resume, your LinkedIn, your so-and-so page, you just update one thing and then you can just use that to copy and paste it everywhere else. That's pretty much what I use my website for. 

MK And as a hiring manager, Cassidy, if you are evaluating a candidate and they didn't have a personal website versus a candidate who did, would that color your perception of them from a hiring standpoint, or it's just not important and it's nice if they have one? 

CW It's not important at all. It's one of those things where if they have one, ooh, I can kind of see what they're about, and I've learned some cool things about people because their personal website is not just a link dump of ‘these are where my portfolios are’, but they'll be just like, “Oh, I'm super into photography,” or, “I'm into this, I'm into that,” and it gives me more to talk about with them to get to know them more. But it's never impacted a job decision as a hiring manager, at least on my end. 

MK Okay, so before we move on, you did have a special announcement I guess, Cassidy, and that was the Scrabble paraphernalia that you've been working on for an extremely long time. Do you want to do a quick shout out for that? 

CW Yes. Quick shout out, Scrabble Keycaps– they are live. I have talked about it on this podcast a handful of times, but it's real now. And so if you go to clackeys.com/scrabble, we can drop it in the show notes, you can get Scrabble themed keycaps designed by yours truly that I first designed way back in 2017. They sold and then licenses expired, all kinds of things, and finally after lots and lots of legal and design updates and all the things, it's back with full force and ready for a keyboard near you. 

MK I do not know how the licensing works for taking something like Scrabble. Can you do a real quick overview of that whole process for anyone else who might be thinking about doing something similar?

CW Let me introduce you to the concept of begging. Honestly, and granted I'm not a professional in this space, I just ask a lot of questions and I get annoying enough that it works out in the end. A lot of the licensing experience I have had and the people I've worked with have had truly comes down to, is the person approving your application for a license in a good mood and available and down with your idea? Because honestly, I did just so much cold calling and saying, “Hey, maybe this could work. Hey, maybe this could work.” Because with the previous iteration of these keycaps, that was just me cold calling various people who worked at Hasbro, and eventually I found a person on Facebook who used to work with someone who used to work at Hasbro, and they happened to know someone who still worked at Hasbro, and that is how I got my in. Because when I first applied for it, I just got an auto rejection. But then finally after finding a human, it worked out. And then this time around it was just kind of poking people on LinkedIn saying, “Hey, I noticed that this person left, but do you know this person? Could you connect me?” And eventually it just happened to work out. And luckily Clackeys, who is helping with all of these pre-orders and everything, they’re an awesome company, they have licensing experience, which honestly is very similar and so they were just like, “Okay, yeah, we can work with this.” And they did all of the legal signing of things. So unfortunately that is a very long, vague answer for you. 

MK That's okay. I feel like people who are thinking about maybe doing something similar just need to know that they're going to have to go above and beyond and pester a lot of folks. 

CW It's truly just the art of pestering and hoping. 

MK I was on the phone to a company and I was trying to get something out of them, which was not within the realms of impossible. And I was like, “Man, is there just somewhere I can send a bottle of wine and a freshly baked batch of cookies from?” And the person on the other end of the line got real quiet and they were like, “This company does not accept bribes for its services.” I was like, “Oh, I have hit on the wrong person today.”

[music plays]

MK On that note, ending on a nice positive, there's been a lot of negativity in the tech space recently, so it was nice to have a nice wholesome tech filled episode for once. So thank you very much everyone for listening. I've been Matt Kiernander. I'm a Developer Advocate here at Stack Overflow, and you can find me online @MattKander.

CW I am Cassidy Williams. I'm CTO of Contenda. You can find me @Cassidoo on most things.

AD I'm Anthony. You can find me on socials @Anthonyjdella, and I'm a Developer Evangelist at Twilio. 

MK We will see you again next week. Thank you everyone for tuning in. Bye! 

CW Bye!

[outro music plays]