Episode 63- David Gatti on Development Setups and Environments

David Gatti and Arsalan Ahmed with Mentoring Developers

Whether you are just beginning your career in software development, or you’ve been in the field for a couple of years, knowing which tools can make you more efficient at what you do best can make a world of difference. After all, creativity is the name of the game when you’re creating code. It doesn’t matter if you are doing mobile development, backend, frontend, or something else entirely. Why not make some of the more menial things more efficient, less cumbersome, and free up more time to do what you love most….create code.

David Gatti and Arsalan Ahmed are back with a discussion you won’t want to miss! David and Arsalan share their deepest secrets on which products work best and why they like them and use them over some of the others. Be sure to listen in to episode 63 and hear what they have to say.

David’s Bio:

David Gatti began his career in IT as a Systems Administrator. He learned how to code in PHP out of boredom, and made some simple internal tools to help him while managing the company network.

He then became a blogger and wrote about mobile technologies before the iPhone came into existence and PDAs had cellular modems. He also wrote the CMS for the website itself when WordPress was first starting. Then he began working as a web developer for a company that did simple Facebook games.

After this initial experience, he imported a Windows Mobile app to Android 2.3. He later became a Brand Manager for a mobile game company and a Marketing Director for another company, and at that company – he transitioned to Developer Relations Manager and worked for two companies with this title. It was a job that he fell in love with.

But, while hunting for his next opportunity, he struggled to find the right company. Out of frustration, he created Simpe.li (simply) so he could keep doing what he does best – Development Relations Management done right.

Episode Highlights and Show Notes:

Arsalan: Hi everyone, this is your host Arsalan Ahmed and today I have David Gatti with us. David, how are you?

David: Hey, Arsalan. How are you? I’m good.

Arsalan: It’s really good to have you back. Now you are hanging out in Italy.

David: Yes, I am in sunny Italy. Good wine and better food.

Arsalan: Wow. We are all jealous right now.

David: You can come and visit me, so, no worries.

Arsalan: Okay, I’ll keep that in mind. We are here to talk about our development setups, our environment that we are going to create to write code, to do our work. Why is that important, David?

David: I think that if you have a set up that you understand and it is simple and you have everything that you need to work, and then you don’t have to think about it. You can just focus on working. I was always trying to come up with a set up that makes sense since forever. I think that last month I was finally able to put everything together in a way that makes me happy and is super clear and very simple. So, now I can just work and not think about my backups, my continuation or what my application I need or any of that stuff.

Arsalan: I see this as a uniform way of doing work. You probably have multiple projects, in this case, for different clients and you work in completely different items. So, if there is one single thing that you can say is a constant, something that you know that you can depend on it, trust in, and know which tools exist, and which you are good at them over time. It is going to take the uncertainty out of it instead of starting from scratch in every project and having to learn new tools. You want to work the way the client works. For instance, many times we go on clients’ sites or their offices and then we are handed a computer. So, we have to use their computer the way that they’ve set it up. That happens to a lot of people.

David: Okay. Good point.

Arsalan: But if you have a choice, then you’d rather use your own computer because you know how things are set up and you know how you can be efficient and how you can actually get some enjoyment out of your work. What are some of the different types of things to consider when you are preparing your set up?

David: Right now I’m just going to explain my set up. I never had a situation where a client gave me something that I had to work with, thankfully. My main goal is not to worry about anything. I could lose my laptop or have my laptop stolen or throw it out the window, it doesn’t matter. If I lose it, the goal is to be able to go back to work within two hours. The only downside is how close my Apple Store is. That would definitely be the most complicated part.

David: That’s why, when I travel, I checked to see if there’s an Apple store near me because I’m using a MacBook Air. I chose this brand because there is no type of configuration that I should get. There is only one type. There are a bunch of types of laptops, but they are like a carbon copy of each other. So, if you have a MacBook Air, you could switch to a Mac book and everything would still be the same. Everything would still work. It’s the same operating system and the same version. There is no extra software installed in this one while another piece of software is installed in another one. So I could go to the store, pick one up in power it up and log in with my iCloud account. This would then automatically start syncing my files from the iCloud drive and I have access to my apps that I bought through the App Store.  This way, I always make sure that I’m close enough to an Apple store so that I can always get a new Mac if the worst-case scenario happens.

Arsalan: That’s interesting. There are not a lot of Apple stores in the world and they are far apart. So, most of our listeners will not be near an Apple store, but that’s a good strategy.

David: When I moved back to Italy, I checked because I was close to Venice. But in a situation when I was back in Poland and my MacBook air crashed, I took an Uber and drove one hour to go to the shop, went home and logged in and was back to work within two hours. This way, downtime was very minimal. That’s why I don’t say that you can only do this with a Mac. If you have a Windows computer, you may have a similar setup. In that case, I would make sure that you choose a brand that has good support and you have a model of that laptop that is easy to purchase over and over again if you need to.

David: For example, let’s say that you have a Dell XPS. Then, there is a bigger chance that if you go to a different place, you can basically by the same model and have the same setup, and everything. You could do it with both. I choose the Mac because to me it is the simplest one, but it is not limited to Mac. You can also do it with Windows.

Arsalan: Yeah, an argument that I could make would be that it is good to have the same computer so that you can replace it, but technology changes. Our needs change and new models come out. So, we generally like to be on the lookout for something better. Perhaps for the same amount of money or a little bit more you can get something that’s similar but better than you had before.

David: Well, yes and no. That’s why I chose a Mac. When I buy one, I only replace it when the first falls apart. I’m a developer; I am not a gamer. I don’t need the latest and greatest with graphics or whatever. I only need to code and do this type of work. So when I buy one, then I may wait for five years before I change it. This is my approach. That’s why I like this type of computer because once I get one; I know this thing is rock solid.

Arsalan: Right. In my personal experience, I’ve used Macs for development and I’ve used Windows computers and I’ve used Linux operating systems. Canonical…what’s it called?

David: So there’s a brand that uses Linux operating systems?

Arsalan: Yeah, so this is a problem with my memory. It is the time of day. Canonical Linux? I don’t remember what it’s called, but I’m going to look it up. Ubuntu. Yes.

David: Ah, Ubuntu. Oh, okay. I got it. It’s Ubuntu distribution.

Arsalan: So, Canonical is a company that makes and distributes Ubuntu. So, I’ve used Canonical. It works really well because I had a very beefy Windows computer.  I was doing Windows-based development and then I wanted to do other types of development like Ruby and other open source things. So, I found it very hard to work with those in Windows because a lot of the tools, tutorials are based on people who are using Macs or Linux.

David: I have a solution for that.

Arsalan: Okay, what’s your solution?

David: That is what my setup is also. That’s with my Mac. Even though I have a terminal console and everything, I still use Virtual Box. Virtual Box is like one system. So I had my Linux box inside of my Mac. So, all of the development that I do is through this virtual box so it doesn’t matter what type. So if the project is Windows, I can do it through that virtual box and I will always have the same setup, and everything.

Arsalan: Right. So, Virtual Box, for people who don’t know, is a system that allows you to run these local virtual machines and they act like they are their own computer, but this is a software layer that is running inside of your computer. So, when you install something or run something, it’s not actually affecting your own hardware or operating system. It’s not affecting the files there. It is self-contained. This way you can have a box for this environment. You can have a box for that environment. For instance, for every new client that you get, you could possibly spin up a new virtual machine and everything is self-contained there. If something goes wrong, it doesn’t affect your main computer. So, that’s the idea of a Virtual Box. It is one of the many virtual technologies, but the Virtual Box is free for a single user for a limited number of versions, I think.

David: Yeah, I like using it like that because it’s actually free. It does what I need. It’s pretty flexible. That’s why I like using Virtual Box because I don’t mess up my main operating system, which means fewer issues that can come up when I’m doing development. Some examples of issues that could potentially come up if you’re not using something like Virtual Box, is your operating system could get slower because it’s full of stuff that you don’t need. Sometimes you install something and forget about it and it’s still running in the background. So, for example, when I’m checking on the performance of my Mac, I just pause the virtual operating system and my Mac is 100% dedicated to whatever I need, which is also nice.

Arsalan: Yeah, that’s nice. That’s something that I haven’t done much. To be honest, I’ve done some development using Virtual Box, but probably not as much as I could have or should have. I was just wondering about two things that can happen. One is that these virtual machines are huge. So you need a lot of hardware space.

David: I would say that the main issue when you create a virtual machine, you have to say how much hardware space you need. Virtual Box is going to build it based on how you set it up. Sadly, I don’t know if Virtual Box has it or if Parallels has it, which is another type of virtual machine software, but it’s not free. Yet, you can have a dynamic hard drive which means that if you want to go up to 7 GB, but in reality, you’re going to use whatever you need to use. If you’re using only  1 GB then that’s the size of the file you’re going to use. The downside of that is that it’s not reliable enough. I don’t remember which one I try to do it with. But it wasn’t working so well. So, I ended up just putting a fixed number and having another file, which is annoying but it worked. Plus I have iTunes that are streaming in the cloud and everything, movies, music, whatever. So, I don’t need storage. I’m good.

Arsalan: Right. These days, hard drives are big enough so that may not be a problem, but if you’re listening to this podcast right now and you have a problem with capacity in your hard drive, that that is something that you should consider.

David: It’s good if you want to spin a bunch of them. I have just one virtual system, but if you want to spin a bunch of them, like four or five, it can get pretty annoying and you will run out of space pretty quickly. So, you have to think about how you’re going to use it, and plan for how much space you have.

Arsalan: Right. The other thing is something that I have not used as much. You can probably enlighten me on this, David. When you spin up a Virtual Box, you need an image for an operating system to load it or to perhaps install it.

David: Yes.

Arsalan: If you do that, then you need a license for that. Isn’t that how it works?

David: Yes. If you have Linux, then it’s free, but basically what happens is that when you installed it, the Virtual Box itself is just empty. It doesn’t have an operating system. You have to create one and then you have odd things like a virtual serial port, floppy disk, CD-ROM, DVD drive, hard drive, you name it. What you do is choose the CD-ROM drive and there’s an option that you can point to an ISO file. When you booted, you tell it to boot from CD-ROM, which will load from that ISO file, which is cool because then you can install any operating system that you want. But, if you choose something like Windows, then yes, you will need a license for that Windows machine. From Microsoft’s perspective, they would treat that as a separate computer.

Arsalan: What if you are on Windows and you are running Virtual Box? Maybe you want to run a virtual Mac box. How could you do that?

David: Wow, okay. You’re getting into a little bit of crazy here. I think I’ve heard of people running Mac OS, which is called Hacking Post. It seems to be working, but then you’re not doing it with the original version of the Mac. Mac OS itself is not licensed by any means. So, if you do it, you do it at your own risk. Nobody’s going to shoot you over it, but it’s nothing official and it might be unstable and stuff. So, that’s something to think about.

Arsalan: I just found a Life Hacker article on it.

David: I mean that if you want to, for example, if you’re unsure about buying a Mac and you want to play with the system, then, for sure, go and use it, and do it and get used to the system and see how you like it. Or, may be a client needs something very specific that can be just run on a Mac. Then you might go and buy one for say $1000 and install this and do whatever you have to do on it and then off you go.

Arsalan: They’re saying that you need a hacked mountain lion or Mac OS because the regular one will not work. There’s no legal way of doing it then?

David: That’s why I said it was like a hacking Post because you need an image that’s been hacked that will allow it to run in a virtual machine or even on PC hardware.

Arsalan: So, there’s no legal way of doing it. That’s what I was trying to find out.

David: No.

Arsalan: so, if you’re in Windows then you would, unfortunately, have to buy a Mac to use it, if you want to work on it. The good news is that you don’t necessarily need a Mac if you’re doing any open source development. Yet, you will need a Mac. If you’re working off of Xcode, for instance, if you’re doing iOS development. You’ll need a Mac if you’re working on Mac software. But, if you’re working on, Python, Ruby, PHP, or anything like that, you can still use Windows or Linux which is free.

David: Yes. If you have Windows, you can always have a Virtual Box with Linux inside. Yet, in the most flexible situation, you would have a Mac that would legally allow you to install Windows or Linux, whichever you want. In theory, that’s an option.

Arsalan: So, I’ve used all of these different types of computers. While I’m talking to you I’m connected to a Mac, which is a MacBook 13 inch. It’s similar to yours. The only difference is that I have a MacBook and you have a MacBook Air. I really like this and I recommend this computer for people who are starting out, and they have a little bit of money to spend. Not only is it very hefty, it is a standard MacBook. It came with the solid-state drive, which means that it doesn’t have those spinning hard disks, which makes it fast to boot up. It’s pretty fast.

David: Yeah, and the nice thing is that you can bump it. You don’t have to be gentle anymore. You don’t have a spinning disk that might get damaged, which is always a nice feature to have. Plus, if you have a virtual machine that also helps because it helps to boot and to run stuff smoothly. I have this virtual box that I don’t treat any differently that runs when I’m running my Mac normally. I also don’t see a difference inside the box. Everything works perfectly. So that’s a good thing.

Arsalan: Yeah, that’s great. So, I see a lot of developers who use 15-inch laptops in the Mac world and 17 inches in the Windows world. Certainly, there’s a case to be made for larger screens. However, I have an external monitor and I can always hook up my laptop to that. Then, I can go as big as I need to. So, that argument doesn’t hold. I think, when I’m traveling, or when I met a coffee shop or at a client’s site, that’s when I use my laptop without a second screen. In those cases, for me being compact and easier to carry is more important. So I preferred the 13 inch over the 15. What do you think?

David: Well, I prefer the same. I also have a 13 inch and I don’t have an external monitor or an external keyboard. My reasoning for that is that I don’t want to get used to those external things that might not always be with me. I don’t want to be sitting at home using a special keyboard because when I go out to someone I have to use the keyboard that’s on my Mac. So, I’m not used to it in the same way that I am used to the external one. The same goes for the external screen. If I had a second monitor, then when I am without it I would constantly be thinking about not having it, and then not feeling comfortable about it. A couple of years ago I decided to get rid of that stuff and be comfortable with what I have. Now wherever I go, I always feel right at home wherever I am. That’s my approach to these types of things.

David: I can do everything that I need to do. It makes sense to have a second monitor to be more efficient, but in the end, if you don’t have it, then you just get used to doing the same things in exactly the same way. For me, I find that’s most important because then I’m more comfortable with my keyboard. I can type very fast on it right now and I don’t have to switch and worry about getting used to something else.

Arsalan: Right. I think that’s a very good point. It also depends on the type of work you’re doing. If you are doing text-based work, and you’re in a text editor, that’s primarily what you’re doing. You are inside a text editor and your typing and running commands and you need to be in that window or program all the time, then you should only use one screen because everything else is a distraction. When you are switching between different programs, you’re going into a terminal, you’re going into a browser some of the time, you’re going into may be two different types of text editors, maybe you have a differing software to tell you what’s changed and everything is happening at the same time. Sometimes that type of work is warranted.

David: Yeah, that’s true.

Arsalan: But in some cases, maybe even in most cases, when we are putting our heads down and doing development, we are just typing. In that case, you only need one screen.

David: That’s true, but that’s my point with getting used to it. For example, now in Windows, you could do the same thing that you can do in Mac. You can have full-screen applications and switch very easily between them. Now, on the Mac, you can do side-by-side applications, which works quite well. That’s why I always try to use something in its original form as much as possible and see how much pain I am in before deciding whether or not to buy a new piece of software or equipment like an external monitor or different keyboard.

Arsalan: Good. Okay, so let’s talk about the software that you use. We’re going to talk about some other parts of your set up. We’re going to talk about backups and all that other stuff, but I think it’s important for listeners to understand how you do the work. You probably use a nice text editor to edit your program, right?

David: Yes. So, right now I use Sublime text. I did try a bunch of different stuff over the years, and this one is the least annoying. It’s not perfect, but I’m not someone who gets all emotional over text editors. Some people use text editors as a way of life, kind of. But, this is a tool for me. It just needs to allow me to do my work. Right now, Sublime is the one that is the least annoying. That’s what the tool is supposed to do. What do you use? If you use C# development, then you have to use Visual Studio, right?

Arsalan: You don’t have to and that’s not all that I do. I use Sublime for most of my development these days. Today, in 2017, you can use Sublime to do all kinds of development because of all of the plug-ins that it comes with. It’s a fantastic tool, but it’s not a complete, integrated development experience. So, what I want our listeners to know that most of the rest of us know because we’ve been in the industry for a long time is that there are two different kinds of editing environments.

Arsalan: One is a simple text editor with some nice features that help you to type quickly and edit text quickly and they do syntax highlighting a little bit and they do indentation properly. They have a little bit of intelligence with the programming language that you’re working with. The other type of text editor is a complete, integrated development environment, or IDE, which tries to do more than that and is very specific to a particular framework that you’re using. For example, if you are on a .Net project, then you’ll find this IDE called Visual Studio, which is very comprehensive. It is also very slow because it is comprehensive, but it not only lets you type and do all the other things that we talked about, it also lets you build, compile, publish, and all these other things. It does all these database things and way too many other things in fact.

Arsalan: If you’re working in Java, then you’ll find this IDE called Eclipse and Eclipse even has plugins for so many different languages. There are too many choices right now. But if you are just starting out and you don’t really know what you’re doing, I think my recommendation is that if you are running Windows or a Mac or if you’re in Linux, then your first choice should be Sublime Text.

David: Yeah, but Sublime Text is not free. You can use it for free, but it’s going to annoy you sometimes with a reminder that it’s not free and to pay for it. Yet, another one is called Atom, which is free but the downside is that if you have big files that go over 1000 lines, that app becomes very slow and unusable. Sublime Text is way more efficient with big files. Let’s say that you have a file that doesn’t even have that many lines of code, but you open an SQL file, which can be 10 MB or more. With the atom text editor, you might as well forget it. You won’t be able to even open it. But with Sublime Text, you can do something. It’s easier and more efficient in that regard.

Arsalan: I think another tool or text editor that should get our mention is something called Visual Studio Code. Is a fast and simple text editor by Microsoft. It’s free. It’s used by the Angular team, for example. It’s also used by a lot of hard-core JavaScript developers. It’s a text editor with some nice features and its super fast. It’s a competitor to Sublime Text. So, it’s something to check out, especially if you are in Windows. I’m not sure if it’s available for a Mac, but it certainly available for Windows. So, if you’re on Windows, definitely check it out. If you’re on a Mac, you can look it up. There’s another text editor that a lot of us like it’s called Notepad++. It’s a fantastic text editor for Windows. It is completely free and open source. It does way too many things. It has a lot of plug-ins as well. So that’s the ultimate use for 20 years, but it’s still very nice and I still have it on my machine.

David: Very well, yeah. I heard of it, but it was back in the 90s. I didn’t think it was still alive and kicking.

Arsalan: It is still alive and kicking. It is really kicking butt because it does a lot of good stuff for you that you would expect in the can do the formatting for you. It recognizes many different languages. If you have an XML for instance, it will organize in a way so that you can open and close nodes. It’s very nice for some things. The best feature, in my opinion, is its fine feature. You can actually point towards a folder or directory and you can ask it to find files with a particular text in it. That works better than the built-in Windows feature. It’s a really super fast at organizing and it’s incredible. This is a very nicely engineered product. So, I recommend that. Basically, try everything and then see what you like.

David: Definitely. Do you use something to organize in GitHub or repositories?

Arsalan: I don’t. What do you use?

David: I used Tower, Tower two, which is an upgrade application. I use a lot of paid applications because they realized over the years that if you pay you’ll get the extra quality of the software that makes it better and you don’t have to think about it. It just works. For example, there is a GitHub obligation to manage a GitHub repository. It’s freeze. So you can use it. But if you don’t like the common line or you get confused by the common line, which is what I do, I don’t like common line applications because my memory is not that good, I need icons and things. Then, you can use it for free in the GitHub app, or you can pay but I don’t remember how much, for Tower ended up allows you to literally manage every aspect of a get repository. It’s very convenient and very fast and this is something that you can just click left and right and it’s done. You don’t have to fill it with the common line unless you are better with a common line. Then, don’t use a better UI application.

Arsalan: Yes. So, I actually use the command line, and I haven’t heard of Tower before. So, I just looked it up. It looks like it’s now available for both Mac and Windows. So, that’s good.

David: Yes, there’s no problem with this.

Arsalan: They just made it available for Windows as well. There are also other clients. For instance, GitHub has its own client.

David: Yeah, that’s the one that I was mentioning, but it doesn’t have its own name. It’s just GitHub for Mac, basically. It’s like the GitHub for Windows.

Arsalan: Right. Then, there are other tools as well like SourceTree.

David: Yeah, there’s a bunch of them. I could almost say there are too many of them. Everybody tries to build one that’s basically better than the other ones. After everything, I think there are at least four of them that are the most known on the market. The paid version of Tower kicks everybody’s butt. It’s well designed. It’s clean. It’s simple and it just works. To me, it’s worth the money.

Arsalan: Sure.

David: If you do a lot of repository work…

Arsalan: Yeah, if you do a lot of repositories and if you do a lot of pull requests if you’re going in and out. And if you’re merging and cloning and doing a whole bunch of stuff with gets, that a tool like this could be very useful.

David: Yes, it saved me a ton of time. So that’s worked for me. To me, it’s worth the money. For example, when I was using GitHub for Mac and I had to fight the interface, it was just a waste of time for me. Sure, it was free, and if you do some stuff from time to time, it’s fine. Yet, if you have a lot of repositories that you have to take care of, then Tower is the way to go for me.

Arsalan: Yeah, so I just looked up the prices. The price is $79 for a license.

David: Like I said, it’s 100% worth it. If you buy it once, then you have it for life.

Arsalan: That’s good. So, let’s talk about your backup solution.

David: Backup solution. I don’t have one. That’s how awesome my backup solution is. I do it completely different than everyone else, I think. Back in the day when the cloud didn’t exist, you did backups by basically backing up the whole hardware. Every single time you were saving a file you were backing it up and then restoring from the last image. For example, even Mac and Windows have the built in native backing up solution so that when you touch a hard drive over USB or over the network, then you could back up to them. Yet that stuff is so slow because those backups copy every single file, one by one, which is super inefficient. Now, these systems take 5 GB of data. So, enjoy copying that, especially for the first time.

David: When you’ve had a backup running for a while, you may say that your backup has been running for five minutes, but if you try to do the first one which is the whole first copy of everything. It just takes ages. So, I decided that everything was in the cloud anyway. I don’t backup my apps because I buy them from the Apple Store. So, the Apple Store is my backup. If I have to restart my operating system from scratch, I go to the Apple Store and search through the app store and click install on everything that I bought before.

David: I have a bunch of apps that I buy from outside of the Apple Store and I know exactly where to find them. So, I just go to the website and recover the account and then I can reload the app without any problems. Files that I actually need to backup are either on GitHub, but since all of my code is backed up there, I don’t have to think about it or worry about it. All of my slowly changing files like documents, images, or whatever are on iCloud. The cool thing is that if I throw away my Mac and then log in again, I literally have all of my files back where they were. So, basically, the only thing that I’m backing up is my iCloud drive, which is backing up quickly. So, that’s what I do. So, everything else I don’t care about. Stuff is on GitHub. Stuff is in iCloud. Apps are in the app store. Photos are in iPhoto and that’s it.

Arsalan: Right. So…

David: One more thing. The same goes with movies and music and everything else. Everything is in iTunes, and everything is streamed. So, that’s why I choose the Mac. I can throw this out the window and get a new one and be back to work within two hours.

Arsalan: I think that’s primarily because all of your work projects are in the cloud, as you said. They are on GitHub, for instance.

David: Yeah.

Arsalan: You should not have anything that’s on your computer that is also not in GitHub.

David: Exactly, and the same goes with everything that’s on iCloud. Everything goes there.

Arsalan: That’s sort of the workflow that I have. I have a network, attach stories device, which is a big hard drive on my home network. I have occasionally uploaded images for my computer over there, just in case something happens. That way, I can restore it. As you said, it’s too painful to do and generally speaking, my computer works fine except for once every few years when it’s going to fail. You might want to just check take the chance because all of your important stuff is in the cloud. I watch a lot of Netflix. So I don’t have copies of videos or YouTube. The thing is, everything is already in the cloud. The only thing that’s on my computer that is not on the cloud is the things that I don’t want on the cloud. They are very temporary things sometimes.

David: Ah. So I have a solution for that. My approach is this. As an example, my clients give me their SSL certificates and their pilot keys. You might think that I am crazy for storing them on the cloud. To solve that problem, I create 50 MB virtual drives on my Mac. I don’t know if you can do that on Windows now, but for sure, you can do it on the Mac. You create a basic drive which behaves basically like an SD card. I then encrypt it with the most secure option settings that I can find. They always say wait a month because it’s going to be slow, but nowadays with five courses 8 GB of RAM, there is no slow here.

David: So, I create this virtual drive and I mount them on the system and copy all the secret stuff. When you unmount them from the system, they are encrypted. So, without the password, you cannot get in. So, I even put all of my SSH keys they are. So, every time that I unmount the drive of a client, you can immediately not access the remote servers of that client anymore. When you mount that drive again and put the password in, the system then decrypts the drive. This way, I can store the stuff in the cloud and I don’t care because they are nice and encrypted with a very long password that would make everyone cringe when they see me typing them. So that’s my solution for that.

Arsalan: That’s good. So, we talked about the type of computers people can have and the type of text editors or integrated development environments. We talk about backup solutions. The time is flying and it looks like we have to wrap up, David. Do you have any final advice on what any new developers or people who have been in this industry for a couple of years, anything with your experience that they can do to make their lives easier?

David: Don’t waste your time configuring your ID. Try to live with the bare minimum with the default configuration with your one screen and default keyboard on your laptop. Work with that until you feel the pain that you’re using that thing and you feel that you need to have an extra thing. You need to change this configuration. You need to connect an external monitor. This is the rule that I apply to basically everything that I do and it works well. It allows me to just focus and get used to the default settings. Then I just do the extra other things that make my life actually easier. If I get used to it, that I get used to it and I can just enjoy working without thinking about what type of font I need. Do I need this want to be red or would it be better in yellow? What type of background? I don’t have that nonsense. I don’t care about all those things until I’m in pain and I’m screaming in my head that I need to change something, or I’m going to go crazy. That’s it.

Arsalan: I think that’s really good advice. I’m going to add to that to make sure that you’re enjoying your work. If you are doing software development, you should enjoy your work. Sometimes that means changing the color scheme a little bit to suit your eyesight, the work environment, for may be the lighting. Sometimes you need to choose different themes. Don’t change it because you’re bored. Change it because it makes you happier. Usually when you choose the setting, a font, or colors, and other types of settings that you can have, once you have it the way you like it, generally people don’t change it. I have spent some time in the past, taking a couple of hours just to get everything right. I have noticed that it makes me want to work more. It makes me better, but obviously within reason.

Arsalan: All right, David, this is been a very interesting episode. I hope that people who are listening right now have enjoyed it. If you’ve enjoyed this advice or if you have your own advice that you would like to share with others or your own experiences, send me an email. My email address is us@mentoringdevelopers.com. My twitter handle is @MentoringDevs.

Arsalan: You can also get in touch with David. He loves to get in touch with the audience and hear their thoughts. He’s got a lot of experience and he’s a nice guy. So, he’s going to help you out. What’s your contact info, David?

David: You can reach me out on Twitter. I think that’s the best one. Sometimes I get people asking me questions on how to fix the problem in my app. It just makes life interesting. You can find me @Dawid Gatti on Twitter and you can shoot me any questions that you want.

Arsalan: That’s right. David, what’s your expertise if someone wants to hire you and they say to themselves “hey, David sounds like he knows what he’s doing?” You’re an independent consultant. You do contract work. What type of work do you do?

David: I do mainly backend development with NodeJS. I build and design APIs. I also know how to configure and set up all of the AWS that’s out there. I also focus on efficiency when it comes to those APIs.

Arsalan: Excellent. If you need to hire David, get in touch with him. Or, you can get in touch with me and asked me a question that you have. If you are confused about your set up, let me know. If there’s any way that I can help you, let me know. All right, everybody, I’ll see you later.

Important Links


Virtual Box

Sublime Text

Visual Studio



Visual Studio Code




Thanks for Listening!

Do you have some feedback or some advice for us or our audience? Please give us a review on iTunes, Spotify, Google Podcasts, or Stitcher and share your thoughts.

If you found this episode useful, please go ahead and share it with your friends and family. You can also listen directly and give your feedback on the website.

You can subscribe to Mentoring Developers via iTunes, Stitcher Radio, Spotify, or Google Podcasts

Join the discussion

More from this show

Episode 96

Stan’s Bio: “Stan boasts extensive experience with Agile/Scrum since 2006, taking on roles like Agile Coach, Solution Architect, and...

Episode 95

Episode 95

[sha  Guy Royse is a software developer with more than 25 years of programming experience and has been a part of a government program to...

Episode 94

INTRO  “Richard Campbell spanned the computing industry both on the hardware and software sides, development, and operations. He was a co...

Episode 93

“Shady Selim is the first Android Software Advocate in the Middle East. He is a Leading Mobile Developer of Android. He is a Google Speaker...

Episode 92

Guy Royse is a software developer with more than 25 years of programming experience and has been a part of a government program to teach...

Episode 91

Greg started his career in data science after not getting a proper job with his Ph.D. degree in physics. He joined a Data Science bootcamp...

Recent posts