My name is John Schmuff, Lead Software Engineer by day at a company located in Orange County, California. By night, I put my learning cap on, and I’m always enthusiastic about discovering new languages/technologies and dabbling in design. Besides being a software engineer, I also enjoy other things such as gaming, camping, snowboarding, and various traveling adventures.
My favorite place I have traveled to was the Philippines. I did so much island hopping and it was so much fun swimming in all those locations, including cliff jumping. Returning there for another vacation is definitely on my agenda. Of course, I loved Hawaii when I visited Oahu in 2016. I did a lot of adventuring there including skydiving and hiking the Haiku Stairs. As much as I don’t like humidity, I seem to prefer revisiting the more tropical locations I have been to.
I am currently using a MacBook Pro 15” (2016), whether I am at home or work. In both locations, I use a vertical laptop stand from iQunix to cut down on the amount of space being used on my desks. It is connected to two Samsung U28E590D 28” 4K UHD monitors.
My setup doesn’t stop there. For productivity and speed, I use the ErgoDox EZ Keyboard with Cherry MX Brown switches. (Never leave home without them!) The Logitech MX Anywhere 2 wireless Bluetooth mouse keeps me moving around the desktops when hotkeys just don’t cut it. This setup is also mirrored at my work. I believe that it’s important to keep the transition as seamless as possible.
I have one major difference at home versus work: that is a Windows 10 PC that I built for gaming and other hobbies. Some of those other hobbies include 3D modeling and experimenting with game engines. This is where the custom PC really shines. With the dual machines, I use two StarTech 2-Port Mini DisplayPort KVM Switch so I can easily switch between environments without changing inputs on the monitor or unplugging cables.
For basic use of my MBP, there are some fundamental applications that I use: Magnet, which is used for dragging applications around the desktop and allowing auto sizing for the windows, and iTerm to address all my terminal needs. For the most important piece of software in my ecosystem while writing my code, that award goes to VS Code. It is flexible, with tons of extensions to allow working with many different languages while also remaining very efficient. I used to be a huge proponent of IDEs, but their lack of versatility has made me shy away, and I ended up transitioning to using VS Code.
Since I use so many different languages throughout my days, I prefer to containerize my projects for local development using Docker. For my personal projects, I deploy to DigitalOcean Droplets. However, I am not opposed to utilizing the amazing infrastructure that Amazon gives us with their AWS cloud computing platform. Both of these options can be very affordable depending on your requirements.
For accessing databases, I recommend the tool TablePlus. It allows many different database type connections, e.g. Redis, MongoDB, PostgreSQL, etc… It keeps the last queries cached in case you are working on the database throughout different sessions. This feature alone has saved me from the accidental “Cmd + Q” when you miss the “W” key — or maybe that’s just me.
Often times, before a project can be developed, a design is required. Even though there are many tools out there being offered, and they serve their purposes, Sketch fulfills my requirements. Sketch is very simple to use and offers plenty of resources, from building the prototype designs for websites, applications, logos, and even taking them to the final product.
As I mentioned, I play with game engines and 3D modeling software such as Blender and Unreal Engine. Both are free to use and are incredibly powerful. While I enjoy creating models using Blender, it is always fun to import my creation using Unreal Engine and put the model to the test.
I haven’t gotten into using any custom layouts yet. So far, I have felt pretty satisfied with the default. However, I have already added custom non-printed keycaps from PimpMyKeyboard. I have chosen three different colors: a light blue for the outer keys, light grey for the inner keys, and white for the home row keys to add a little extra style. Having a non-printed keyboard gives me the flexibility for any further customization I have in the future.
I am a huge proponent of using ErgoDox EZ keyboards. They literally changed the entire experience of being on a PC or MBP. Finding a keyboard that felt fluid when switching between them was proving impossible for me until I got the ErgoDox EZ. Now the transition between the two systems is so much easier.
This is a tough one to answer. There are plenty of things to consider — for example, maintaining productivity and efficiency. Even though I do love my current setup, I wouldn’t call it my “dream” setup. I recently came across the Acer Predator Thronos. It has a triple monitor display setup for a deeper immersion or lots of space to develop my ideas.