Hi there 👋,
Here, you’ll find, hardware, software, and application stacks that I prefer using. Without further ado, let’s begin.
I use an Apple iMac, 32GB RAM, 2TB SSD for my personal projects. Though, when I do screen recordings and live streams, I do that through screen sharing (Apple’s version of VNC) to a Mac Mini (Mac mini (2018), 16GB RAM, 1TB SSD).
I used to remotely connect to a Windows laptop for my live streams and screen recording session. Still, that machine is practically retired to the kids’ Steam gaming machine 🙂.
I occasionally RDP to it to test how the UIs that I create render on Windows. Or, I use it to debug specific bugs that only manifest themselves on Windows, but nowadays, that machine is mostly idle. For the interested, it’s a 2020 Lenovo IdeaPad 3 with touchscreen, 20GB RAM, and 512GB SSD.
I also have a Company-owned 13’’ MacBook Pro 2020 with decent specs.
From time to time I also use Azure Windows virtual machines and Amazon Workspaces “Desktop as a Service”s; though, I still feel like we are not there yet, and they still don’t replace (but come very close to) a physical desktop.
UPS and Surge Protection
Since my main machine is a desktop, it doesn’t have a battery, and I can lose work in case of a blackout, or a brownout: Which rarely happens here, to be honest, but it’s still a possibility.
To provide my devices additional power when the electricity is down and to protect them from sudden voltage spikes, I use a CyberPower CP1500AVRLCD Mini Tower UPS and surge protector.
I use my iMac as my primary monitor; I have an Asus VS238H-P 23-Inch LED Monitor as a secondary monitor. I intentionally this “less cutting-edge” monitor because it helps to check out how the designs look on devices with lesser color density. Also, nothing can beat its price/performance ratio; it is lightweight, so I can easily carry it around to attach to other “headless” devices (like, Raspberry Pis, Tessels, Intel NUC boxes that I play with from time to time) to occasionally debug/diagnose things.
I also keep an iPad Air 2 nearby, mainly to glance at emails, slack, and also listen to Spotify.
I have a Rain M Stand for multiple purposes: I use it to hold tablets and e-papers for reading. It is also helpful when I want to use a laptop as a third screen/device.
Desk and Chair
My desk is an S Standup Standing Desk. It’s durable, easy-to-adjust, great price/performance.
For the chair, my preference is a MAXNOMIC Leader Premium Gaming Chair. It’s cheaper than its higher-end counterparts such as Herman Miller, but at least equally (if not more) comfortable, durable, and sturdy enough to carry my weight.
I do live streaming from time to time; for that, I have an Instahibit Retractable Green Screen.
For key light, I use a pair of Neewer Dimmable 5600K USB LED Video Lights. I use them when recording “talking head” videos, also when doing virtual team meetings. They are the best you can get in their price range; they get their job done really well.
Audio and Video
I have a Shure SM7B as my microphone for podcasting, screencasting, streaming, teleconferencing, video voiceovers… everything audio-related, and I absolutely love it.
With Shure, I don’t even need to do much post-production on my voice; I can just publish it as is with some minor LUFS adjustments. With other microphones, though, I had to do lots of post-processing, plosive removal, de-essing, and the like: I couldn’t publish the audio naked.
I also have an Audio-Technica AT2020 USB cardioid condenser microphone, which is pretty decent and gets the job done. Unlike Shure, it does not need an amplifier, or an input signal lifter, a boom arm, and an army of cables. That makes is my microphone of choice when I’m mobile or when I want to talk/record in my backyard for a change.
For the video camera, I use a Panasonic HC-V180K with an AGPTek Capture Card. For this particular camera, this capture card worked much better for me than my Elgato Cam Link, which I use when I’m streaming the devices that I connect to.
When doing sound engineering and audio post-processing, I use my Audio-Technica ATH-M50xBL monitor headphones. I also use them to listen to music: Excellent audio quality.
When I want to isolate myself from the rest of the world, though, I put on my AirPod Pros, enable the “noise cancellation” feature, turn on the volume: I’m in my own single-person creative/development/writing kingdom. AirPods sound quality is pretty decent too.
When I want to listen to music, but I don’t want to put something inside or over my ears, Harman Kardon SoundSticks is my speaker of choice: The speaker system not only looks great but provides a clean, clear, and crisp sound. I’m loving it so far.
I read a lot, Kindle Paperwhite is my e-reader of choice. With Kindle, I don’t need to carry physical books around; I can bring my library wherever I want. It also has excellent contrast and screen quality, and it’s easy on the eyes.
I also write a lot. And Remarkable is my preferred digital paper equivalent. I am a “paper person”, I prefer pen and paper to any sketching/mockup app any given time. After adopting Remarkable, I kicked physical paper out of my life, and I’m not turning back.
I have a Transcend 1TB Thunderbolt SSD for the video/screencast/audio project that I’m working on. These projects consume a lot of data, so using a solid-state drive helps me work on things and move things around faster.
I run daily and weekly backup jobs to keep versioned copies of my current work there.
I also have a Backblaze cloud backup solution to back up everything that I have on my drives. Still, since video production can consume a lot of data, Backblaze tend to lag behind a couple of days. So, I run scheduled backups to my local direct-attached storage array to avoid data loss. That also provides redundancy and ease of access (since downloading data from the cloud can take a while 😉).
Keyboard and Mouse
I’m a big mechanical keyboard fan. It really makes a difference. My current keyboard is Das Keyboard 4 Ultimate.
In addition to my Das Keyboard, I also have a Keychron wireless keyboard. Keychron serves me well when I need to switch between different machines using a single keyboard. Its small form factor leaves a lot of extra space on my desktop too. So it’s my second best choice.
For the mouse, I really enjoy my Logitech MX Master 3. Yes, it is a bit pricey for a mouse, but it’s worth every penny. Especially the way it scrolls web pages and source code is beyond this world. It’s one things that you don’t realize that you need it before you use it.
Before my MX Master, I used an ergonomic mouse Anker Ergonomic Vertical Mouse. It has the best price/performance ratio. I also use Magic Trackpad along with the mouse because trackpad works better in certain user interfaces than the mouse.
I’m a Mac person; I use Mac OS for almost all my design and development work. I occasionally use Ubuntu Linux, and Windows too. Of course, I use Linux at varying capacities on the servers that I deploy apps and services, but overall I spend the majority of my time on Mac OS.
When I need a virtualized machine, VMWare Fusion is hands down the best virtualization solution that runs on Mac, so I try to stick with it whenever I can.
I have been using Operator Mono SSm Light for a long time, and I’m pretty happy with it.
Also, when I need to open a handful of source codes and logfiles side by side, I prefer PragmataPro Mono because it is highly legible even in small font sizes due to its large x-height. It’s unusually condensed, so you can open several editors side-by-side and still won’t need to horizontally scroll that much.
Widgets, Gadgets, Utilities
I used to use many gadgets, from terminal emulators to window managers to virtual sticky notes. Nowadays, I’m keeping that clutter to a minimum, and I’m not installing anything that I don’t absolutely need.
Another gadget that I love to use is mmhmm: It takes your video conferencing experience to a whole new level. It’s again a tool that you don’t realize you need it unless you use it.
Ah, one more helpful widget: I work with 4-5 different time zones and World Clock Pro helps me set up meetings and visualize time zone differences.
Recording and Streaming
My recording software setup is a bit “above-the-average”—if you will.
I extensively use Audio Hijack to mix and mash various devices for the streams.
I use ERA Bundle Pro for realtime audio processing and cleanup for my streams and recordings. ERA is the best audio processing suite ever, period.
For capturing audio from various sources, I often need an audio capture driver. For that purpose I use iShowU Audio Capture (which appears to be rebranded as “Shiny White Box Audio App”; I haven’t downloaded and used that version, so I cannot comment on it, but I can say that iShowU Audio Capture works brilliantly for my needs).
I need background music for the videos that I create and also for my live streams. I have an Epidemic Sound subscription for that purpose, and I love the quality and variety of music there.
For audio editing and audio mastering, I use Adobe Audition. It is the best in its area, there is nothing close to it.
Safari is my preferred browser; it’s fast, native to Mac OS, and performant: It has everything I need as a user. That said, I test my work in a variety of browsers to make sure there are no visual, functional, or performance issues with them. So I have a handful of browsers installed on my system with the usual suspects: Firefox, Chrome, Edge, Opera.
For HTTP and API testing, I use HTTPie for my API testing needs because it is expressive, well-documented, and—since it is a command-line app—it is automatable.
ngrok is something that I use when I need to create tunnels from my local development and cloud staging systems without having to create additional VPN, DNS, or firewall rules. Again, it’s one of the things that you don’t think you need it unless you use it.
Another nifty tool I use is Dash: It’s great for inserting templated text to email messages, and quickly injecting customized templated snippets into your code. It also works as an offline documentation and reference search engine. It’s one of my must-have tools as a developer.
I use these usual suspects for my design needs:
Editors and IDEs
In my day-to-day work, I code in a variety of languages. I prefer JetBrains editors whenever I can, but every once in a while, I use something lighter like MacVim or Sublime Text to quickly edit things and go.
Here are the JetBrains editors that I use frequently:
Editor Color Scheme
I like switching between color schemes a lot. Nowadays, I’m using a slightl modified variant of Monokai Pro Octagon color scheme in all my editors and IDEs.
Diff/Merge and Source Control
For diffing and merging files and folders, I use Kaleidoscope, which is excellent in what it does.
For managing Git projects, I use Git Tower. It’s one of the best Git UI clients that you can find for a Mac OS system. It’s worth the price tag, especially if you manage more than a handful of Git projects and switch between them a lot daily.
I journal a lot. And Day One is my journaling app of choice at the moment.
For any other writing needs, Ulysses is my go-to app: It’s distraction-free, seamlessly syncs with all of my devices, and it’s a pleasure to write on. I’m writing this very article on it right now, for example.
When it comes to “spell-cheeking” (typo intended) can be better than Grammarly.
Password Management and MFA
I treat programming languages as tools. Instead of picking sides,
I try to choose the right tool for the job, team, and project.
The same goes for databases too, I try to pick the right tool for the job.
That said, here is an incomplete list of databases that I like working with:
I use Studio 3T as a GUI front-end for my MongoDB databases.
I use Medis as a GUI manager for Redis.
I use MySQL Workbench as my MySQL GUI.
I use Microsoft Outlook because I need to manage a few different mailboxes and calendars together. Yes, it is a bit clunky, but it is still the de-facto app for dealing with emails and calendars.
Additionally, I use OmniGraffle for creating flowcharts, state diagrams, sequence diagrams, and the like. I also use Miro, both as an infinite ideation dashboard and a place that I develop diagrams, mind maps, and flowcharts.
Here are the cloud providers and apps I frequently use:
- Amazon Web Services for IaaS.
- AWS EKS for managed k8s.
- AWS S3 combined with CloudFront for static web app hosting.
- AWS Lambda for FaaS.
- Linode when I am on a budget.
- DataDog for APM and monitoring.
- Mailgun for reliably sending emails.
- Dynamodb when I need an AWS-managed scalable NoSQL DB that works fine with its own quirks.
- Mongodb Atlas when I want a managed NoSQL database that does not suck.
- Firebase when I need to send/sync realtime data to mobile apps.
- PubNub when I want to leave realtime socket communication to those who know how to deal with it.
- Buddy when I want to automate my deployments.
- Papertrail for log aggregation and analysis.
- Sentry and HoneyBadger for catching errors and crashes as they happen.
That’s all for now.
If you are curios about other things that I use, just send me an email and I’ll update this list to reflect that.
May the source be with you 🦄.
\ \\, \\\,^,.,,. “Zero to Hero” ,;7~((\))`;;,, <zerotohero.dev> ,(@') ;)`))\;;', stay up to date, be curious: learn ) . ),(( ))\;, /;`,,/7),)) )) )\,, (& )` (,((,((;( ))\,