Last year, I wrote the post “My preferred tools for coding” and I figured that this was a good time to update that list. A lot of this stuff is also listed on the resources page of my main website.
Hardware
For what I do, a windows laptop just won’t do. I tried using one after Windows Subsystem for Linux became a thing and it is just too much effort. I own a linux laptop but it’s really underpowered for writing code (or much of anything). My daily driver at home is a 2017 15-inch MacBook Pro and I have a very similar 2019 MacBook Pro for my work laptop.
Like most people, I have spent the past 18 months or so working from home. For the first six months, I worked from my dining room table. I plugged my iPad into my work MacBook Pro and used Duet to turn it into a second display. Once I realized that the pandemic was going to be sticking around, I moved my work space into my home office. My home office has two 28″ 1080p monitors that are mounted to an ergotron and turned sideways. Those are plugged into a “MacBook Pro Docking Station – 4K@60Hz Triple Display 9 in 2 Multiport Laptop Docking Station Compatible for MacBook Pro/Air Thunderbolt 3 (Dual HDMI 100W PD3.0 2USB SD/TF RJ45)” that I picked up from Amazon for $60. Plugged into that is a “Logitech C920s HD Pro Webcam”, a “USB Microphone, TONOR Condenser Computer PC Mic with Tripod Stand, Pop Filter, Shock Mount”, and a “LED Ring Light 6″ with Tripod Stand”.
In the work office, I have a pair of very nice 4k monitors and a much better laptop dock but I didn’t think that I should bring that home and I knew that UWM wouldn’t want to reimburse for the upgrades that I made to my home workstation. Since my work laptop is almost identical to my home rig, that stuff can be very easily repurposed after hours.
If you are looking to get a MacBook Pro but can’t afford the apple tax, I would recommend hitting eBay and picking up a gently used model and saved ~$500 off of what Apple would have charged me.
Software
I have been using the same code editor for a solid 10 years, now. Sublime Text has served me well. I started with version 2 and even though version 4 is now available, I am sticking with version 3 for a while. Sublime has it’s cons (it’s not open source so you can’t compile from source for weird CPUs) but it works well. I am not likely to switch anytime soon.
I have a tendency to pick up coding tools that I really like when I leave a shop. I did that with Beyond Compare and Sauce Labs but Navicat made enough of an impression on me to get me to make it part of my compensation negotiations when I joined UWM five years ago. It is very expensive (currently $599 for non-commercial and $1299 for enterprise) but it is the best database client that I have used, yet. If I’m not picking up the bill, I wouldn’t readily accept anything less. For personal project, the more economical option of TablePlus does the job. It is currently going for $59/seat.
Back in the days when I was using a windows computer for work, my git client of choice was TortoiseGit. It integrates into windows context menus and genuinely makes versioning a pleasure. There really isn’t an equivalent to it (that I have found) on the mac side, so a few years ago I found myself learning to using git from within iTerm2. As long as you can remember the :wq!
cheat code for vim and are willing to keep a cheat sheet for a little while, it is very doable. I really recommend giving it a try.
One of the really cool things about laravel is that you can generate API endpoint very quickly and easily. It also means that you need an easy way to test those endpoints. My tool of choice for the job is Postman. You can provide it a URL, a verb, and some params and test the API before you ever write a line of front-end code. It is lovely.
There was a point in time when I might run MAMP or VirtualBox in order to test my backend code. These days, I opt for docker. With things like Laradock out there, you can test your laravel code as easy as you can with Valet and with less overhead than Homestead.
Services
For hosting, I have used just about everything (Linode, DigitalOcean, Google Cloud, Render, etc). At the moment, this blog is hosted on Linode, jws.app is hosted on GitHub Pages, and jws.dev is hosted on Keybase. Everything has its pros and cons but over time, I have come to the conclusion that services like Heroku and Render are monumentally easier because you do not need to maintain a VM. Every VM that I need to maintain is another potential liability.
In a simpler time, testing your apps consisted of installing Chrome, Firefox, and Internet Explorer and testing in all three before going live. These days, there is a seemingly infinite number of combinations of browsers, operating systems, screen resolutions, and device capabilities. Some versions of Microsoft Edge use one rendering engine and some use another. Chrome on iPadOS uses one rendering engine and Chrome on MacOS uses another. That is why services like Sauce Labs are super useful. You give it an OS, browser, and version and it spins up a new VM with that for you. It is a game changer but it is also $39/mo so it is in the category of something that I can only justify if the employer is paying for it.
Learning
My employer provides Linkedin Learning (the service formerly known as Lynda) for free to employees. In addition to that, I also pay for Pluralsight because I genuinely consider it to be better. I have also used Frontend Masters in the past but I really do like Pluralsight the most out of the three. The investment is worth it but only if you use it.
Have any questions, comments, etc? Feel free to drop a comment, below.
[ Cover photo by Todd Quackenbush on Unsplash ]