Sharing the Beachcasts office and studio set up

I’ve had some ask how my office is set up, and what equipment I use for my various recordings. Since I do podcasts (RunGeekRadio), live streams (Beachcasts on Twitch), and video recording (Beachcasts on YouTube), I needed a versatile setup that facilitated all of these various activities. So, below I will share each aspect of my office/studio, and how I have it set up.

NOTE: I will return to this post from time to time and update it as I update equipment, so it will serve as a good resource to point folks at.

First, here is what takes up 6-feet wide by 5-feet deep. I often hear folks say they can’t do what I do because they don’t have space. Though, in reality, it is pretty compact.

Studio setup as of Apr. 4th, 2020
Studio Setup

I use 2 laptops, and one external monitor/TV.

Everything sits on an adjustable desk from Ikea. I really love this desk for its simplicity, along with being able to hide all the cords underneath because of the handy cord hammock under it. And it is motorized, making it a breeze to raise or lower. I typically set it to 26 inches high when sitting, and 43 inches when standing. Then I simply pull the standing mat forward, and I continue working in a very similar way whether sitting or standing.

Computers and Software

My primary laptop is a Dell 7000 series Inspiron with a 17-inch touch-screen. (No, I never move it. It’s basically a desktop rather than a laptop.) With an Intel i7-4500U CPU (4th Gen), Nvidia GeForce GTX-750M and Intel HD Graphics-4400, 16 GB RAM, and 1 TB SSD, it is able to handle most anything I throw at it even at 6 years old. I run Ubuntu 18.04 LTS as the OS, and yes, I am able to do anything I want to on it. Been using Ubuntu for 10 years, and always feel limited on Mac or Windows. This laptop sits on a SlateGo mobile laptop desk/pad, made of bamboo, which really helps keep it cool. I don’t think it is sold in this form factor any longer, which is sad.

I do all my audio recordings on this laptop using Audacity software.

With this laptop, I use a Maxkeyboard Nighthawk X8 mechanical keyboard with Cherry MX brown switches. I like the mechanical keyboard feel and feedback, and the brown switches give me just enough noise to enjoy the experience. There is a slight clicking, but not as clicky as the blue switches. I recently purchased some rubber rings to install on each key, so the bottoming out noise will not bother others when I’m on conference calls. I haven’t installed them yet.

I also use a Corsair Harpoon RGB wireless mouse. It has a built-in rechargeable battery, and charges really quickly. I like that it has 5 different sensitivity settings that can be changed at the click of a button.

My external monitor is a Samsung 32-inch 4K model with picture-in-picture capability. I typically display the streaming PC/laptop as a small picture in the lower right corner, as shown.

The monitor is mounted on a Humanscale M8 monitor arm, which is wonderful and strong. I get only minimal movement from it, even with such a large/heavy screen mounted on it. A new monitor will be much lighter and will be truly amazing.

The secondary (streaming) laptop is a 15-inch Lenovo Y50 Touch running Windows 10 with Intel i7 CPU (6th Gen), Nvidia GeForce GTX-960M and Intel HD Graphics 4600, 16 GB RAM, and 512 GB SSD. This laptop is what does all the recording, editing, and streaming of video to Twitch and YouTube. At the time of this writing, I am using OBS (Open Broadcaster Software) to record or stream, and I am using DaVinci Resolve 16 for video editing as needed.

The third laptop is a 13″ MacBook Pro (dust collector) mounted on a Roost laptop stand. The Roost was recommended to me by a few friends in the programming space, and it has been amazing. However, you will want an external keyboard and mouse to go with it, as it is hard to type when a laptop is raised from the table. So, next I will talk about those.

The external keyboard is the Apple Magic Keyboard, which is wireless and connects via Bluetooth. The feel of typing on it is really nice, and has a mechanical “feel”. Kinda like the old-style Macbook Pro keys, before they ruined them with butterflies. It charges via USB connection to the laptop, and only needs charged every 3 months.

Instead of a mouse as an external for the Mac I use the Apple Magic Trackpad. It is larger than the trackpad on the Mac, and has all the same features, including Force Touch feedback to simulate a click. It is also Bluetooth and only needs charged every 3 months.

How does it all work?

Yes, I record and stream video from the Lenovo, though all of my coding and activity is happening on the Dell. For months I struggled doing streams and recordings on a single system. However, I found that running the required software for recording (OBS) and development (IDE, Docker, etc.) to be too much for a single system, even as strong as my laptops are. This leads to a vital piece of hardware needed to do what I do, a capture card. I recently purchased the Razer Ripsaw HD capture card. (Not to be confused with the original Razer Ripsaw, which was garbage.) The desk clamp shown in the picture is an extra thing I bought to simply hold it steady on the back of my desk and has a handy arm (it’s actually a headphone holder) for any cables not being used.

Razer Ripsaw HD
Razer Ripsaw HD

Why the Ripsaw HD? Because it is totally plug-n-play and doesn’t require any additional software to work. And it also has 4K passthrough from the source to the external monitor. In addition, it sends 1080p video to the 2nd laptop at 60 fps.

How does the Ripsaw HD work? By using this capture card it enables me to capture the screen from the Dell, and use it in the OBS recording as a source. To do this it sits in the middle of everything. Basically, the HDMI coming out of the Dell is plugged into the capture card, and then another HDMI goes from the capture card to the external monitor. This enables the Dell to use the monitor without any issues, up to 4K video. Meanwhile, there is another USB-c output on the Ripsaw HD that plugs into the USB or USB-c on the 2nd laptop, and can be used as a viewing video source. Then it is a simple matter to add it as a source in an OBS scene.

Audio/Video Stuff

Also for a video cam, I use a Logitech Brio. At 1080p and 30 fps, it does a great job, though the Brio can be costly. I also have multiple Logitech C920 webcams used for additional scenes. I have 2 of them, and sometimes incorporate them as additional views in b-roll footage. They are also handy when I travel, with an extra little hard case I picked up. They are all very versatile webcams. (I’ve added a Nexmo lens cover that can be opened/closed because I bought this up before them came out with the C920S that comes with a privacy cap.)

Logitech Brio 4K webcam
Logitech Brio 4K
Logitech C920 webcam
Logitech C920 webcam

As for audio, I have 2 different configurations. For podcasting, and YouTube videos, I use the Rode Podcaster as my primary microphone. The sound is amazing, and hard to beat. I have it mounted on a Rode PSA1 studio boom arm, with a Rode PSM1 shock mount to prevent desk movement vibrations and sounds. It also has a Rode WS2 pop filter to help keep the audio crisp and free of pops from my talking.

Rode Podcaster
Rode Podcaster

It connects via USB to the Dell, and has an external headphone jack on the top that allows me to hear myself, and any system sounds, while I’m recording. As a dynamic mic, it is very directional and requires me to speak directly into it. This avoids any other background noises, like keyboard typing or air conditioning hums.

Additional audio is provided by a Rode Wireless Go setup. I’ve been using it for live streaming, so I’m not required to be close to the larger Podcaster mic. I also picked up the new Rode Lavalier Go to enable me to clip it on my t-shirt for ease of use, and then clip the Wireless Go on my belt. I picked up an added SC7 cable for connection to a mobile device or Mac.

Wireless Go
Wireless Go with SC7 cable
Lavalier Go
Lavalier Go

Recently, I also added some Audimute acoustic panels on the wall behind my monitor. In the past, I fought to remove the echo from the flat wall. I’m really impressed with how much the panels reduce the echo. Originally, I considered ugly “egg carton” style foam. However, I found they did little to really help, which resulted in spending a little more money for proper panels.


As the last bit of equipment, this would not be complete without talking about lighting. In addition to overhead lights, and natural light coming from the large window beside my desk, I’ve added some face lights that help eliminate shadows, and enable the webcam to do a much better job. They were created with a few parts. First, there are 2 inexpensive tripods to use as holders. Each one holds a square Tolifo LED panel light that has adjustable brightness. (here are the power adapters to go with them)

Tolifo LED light
Tolifo LED light

However, I found that even at lower levels the light was a little harsh and needed some diffusion. That is when I picked up the added panels and arms to hold them. This made all the difference in the quality of light, and means I do not have blaring light forced into my eyeballs. Yay, I can actually see the displays! It is very soft, and provides a great spread.


Some may have noticed the additional Bluetooth speaker on the desk. This is the JBL Charge 3, which is connected to a Google Chromecast Audio and plays music most of the time each day. It has great sound, but I don’t think either of these things are produced any longer.


I hope you found this enlightening/helpful. Let me know if there are any other aspects of the setup you’d like more details on. And watch for a future post on how I set up OBS.

Solve problems and stop failing with PHP

Imagine living in a 500 square-foot store, in a strip mall. The back half of the business was as expected, with a bathroom, 2 small offices, and work area. The front was a bedroom barely large enough to hold a bed, and a living room barely able to contain a couch and TV. The only thing separating the living room from the sidewalk, and the busy main street, was paper taped onto the floor to ceiling windows. And behind that, some vertical blinds to make it more home-like.

In 1996, that was my life. I was broke, and could no longer afford an apartment, so I moved into the front half of my failing business. I had one employee, who believed in me so much they were willing to donate their spare time to help me because I couldn’t afford to pay them.

Up to that point in my life, I had never made more than $9,000 in a single year. I was a failure, and couldn’t find a way out. I was living by eating a single Subway $5 foot-long sub…each day…for weeks, because that is all I could afford and I didn’t have a kitchen. And friends contributed cigarettes to keep that habit alive.

“I was living on a single Subway $5 foot-long sub…each day”

To top things off, I was experiencing anxiety attacks multiple times each day. After a couple of trips to the emergency room convinced I’d had a heart attack, I finally gave up going there because the bill was already thousands that would continue dragging my credit rating even farther down.

But then, something happened that changed my life as a nurse in the emergency room was asking me general health questions, such as age, height, weight, how much did I smoke/drink? (I answered 2 packs of cigarettes and 2 pots of coffee a day.) She looked at me with caring eyes and asked, “Do you think God intended you to put that much poison into your body?”

For some reason, I’d never thought of my bad habits in that manner, and it made sense to me. So, at that moment I quit smoking and stopped drinking coffee. This caused me to suffer from bronchial spasms severe enough I could visually see my chest quivering despite wearing a shirt, and even more anxiety attacks over the following month.

I moved in with family at the age of 30 and started searching for a job. In northeast Ohio, that is no small task. That area of the country has been abandoned for so long that the population of Youngstown, Ohio has declined from 160,000 in the ’70s to only 60,000’ish in 2017. (

Finally, I found a job selling cars for about a year, which paid fairly well. And luckily a friend of my mom offered me a job as a service person with a cabinetry company, which was the best job I’d ever had to that point. I loved it and thrived.

As one part of the job, I generated my own reports allowing me to grow quickly over a couple of years from District manager to Area manager. As I was being considered for Regional manager, the company offered me a job in Florida generating reports for the entire country, which meant I needed to move to Florida. I took it, and in 2000 I moved to West Palm Beach.

This is when I was introduced to programming as the events of 911 caused me to lose my job. In 2002 I started learning to program with PHP and accepted funding from Florida to get some training to learn system administration.

After a job as a system administrator, I decided I liked web programming more and focused on finding a new job doing that.

Over the following years, I continued gaining skills and moved from one job to the next to ensure my level of compensation kept up with my newly acquired skills. I also took up long distance ultra-running, and Judo, as I continued to improve my life and grow personally.

Today, as a senior/architect level web developer, who has also worked as a consultant and now as a developer advocate, I’ve gained much over the past 21 years with many amazing accomplishments.

Maybe I would have achieved these things regardless of the technology used, and PHP enabled me to do it more easily than I think any other programming/scripting language would have. Looking back, it was the approachability of PHP that allowed me to start solving problems quickly and allowed me to continue growing my skills as PHP itself continued to mature.

You may ask, “Why are you sharing this?”. Or you may get the impression I’m bragging. And perhaps that is a little true. But most of all I wish to share 3 thoughts, which is why I am sharing my story in such an open way.

#1 – If you are down on your luck, and struggling to get by. Know that as long as you continue to push forward, great things will eventually happen. Don’t stop.

#2 – If you are doing well, and feel comfortable. Don’t look down on others who may not be doing so well. And, if you are able, help those less fortunate. I am not saying to give them money, or things. Because I know, from experience, that will not really help them. (unless they truly need that level of help) What I’m saying is, be supportive, and don’t let them stay down alone. Encourage them to continue pushing, even though it is hard and they want to give up.

#3 – Don’t look down on PHP. There are many technologies available to do various things. But I feel PHP is still the easiest way for beginners to get started, and to facilitate growing their skills. Though I’ve learned other stacks, I still use PHP to solve problems.

And, though I continue to have frequent anxiety attacks…because that never seems goes away. I’m a much different person than I was 21 years ago living in a storefront, and you can/will be too in the years that follow.

So, what are your experiences? Don’t be ashamed to share. There are others who need your story. Let me know it, in the comments.


It was 6 years ago when I was last looking for a change after being a freelancer for a very long time. The idea was simple. I was tired of being the accountant, salesperson, consultant, developer, collections, sysadmin, and more. As a freelance “developer” I had to be all these things to support my family and live in a manner I was accustomed. But I was growing tired of it all, and wanted to have a little more fun by doing the parts I enjoyed most…consulting.

A good friend had been working at a well-known company for about a year and was very happy doing it. He also had grown tired of being a freelance developer, and a job at the company was his answer. So, when I saw an open consulting position on their website, I applied for it.

About a week later I received a call, then went through the typical round of interviews and questions. I was hired!

It was an exciting time, filled with learning new systems, people, and experiences. I was suddenly thrust into meetings with very large companies, and large teams of developers, who needed my help. There were new problems to solve on a weekly basis, and with each problem came new challenges. The number of things I learned during my six years of consulting at the company was mind-blowing, and with each day I discovered there was more and more I didn’t know. I basically went from knowing a bunch of things to village idiot overnight when I was hired.

“I went from knowing a bunch of things to village idiot overnight when I was hired.”

As I transitioned from one customer to another, it also led to traveling quite a bit. I spent half of each year away from home as I went onsite to meet new teams, learn network and application infrastructures, and build relationships with hundreds of people.

I continued to learn a great deal, and with each engagement, I spent less time on search engines and could draw from my own knowledge more often. (Of course, there was still a bunch of searching, but it was less. I’m still the village idiot learning daily.)

As a user group organizer, and speaker, I’ve always enjoyed teaching and sharing, and it was wonderful that my employer encouraged this activity. So I tended to share my knowledge with anyone who would listen, as I began speaking at conferences, user groups, and online from blog posts, podcasts, and videos, as well as through code via online source code repositories.

Through the process, I also did a fair amount of evangelism around products, libraries, and frameworks I believed in and witnessed some real growth from these efforts which drove me to do more.

However, as times change and acquisitions happen, so do the directions companies take. For good, or bad, companies are forced to make decisions and make changes to help them move forward and grow. I’ve witnessed and lived through some events these past couple years that have left me feeling dissatisfied and a little disconnected from the things I’ve come to hold dear.

This doesn’t mean the company is bad. It simply means our paths have diverged for the time being. Therefore, I will be leaving my current employer, as it is time once again for a change.

10 reasons to become a consultant or have a consulting business

In this video I share 10 good reasons to start a consulting business or become a consultant. Before you start looking into how to become a consultant, Adam Culp of Beachcasts PHP videos shares points from his experience to help you figure out if being a PHP consultant is the right job for you. As you look into how to become a consultant, and before you become a consultant, consider these things carefully.

Or you can view this video on YouTube at:

#10 Multiple Hats
#9 Constant New Problems (to solve)
#8 Always Learning
#7 Helping (mentoring) People
#6 You’re The Fixer
#5 “Expert” vs “Resource”
#4 Fame!
#3 Sell, Sell, Sell!
#2 Travel
#1 Flexible Schedule

BONUS considerations for the self-employed
#1 No Dress Code
#2 Unlimited Earning Potential
#3 Unlimited sick days / vacation
#4 Flexible Work Location
#5 Freedom to say “No” or turn down jobs

Zend Framework becomes Laminas project

Today it was announced that Zend Framework is being rebranded as Laminas project. (drawn from the meaning “a thin layer”) Along with the rebrand comes some other important changes as well. Yes, this includes Expressive and Apigility, so continue reading.

Some History

Zend Framework is one of the largest and oldest PHP frameworks and has become a staple for enterprise development around the world. As of April 2019, it has over 400 million lifetime downloads of all packages associated with the project, which has seen a 4-fold increase in just the last 2 years alone. Despite this amazing track record, up to now the project has been supported and guided single-handedly by Zend Technologies, and later Rogue Wave Software.

Awesome Changes

Therefore, to continue this growth and receive the best support possible, the Zend Framework team is announcing that all projects under that umbrella will rebrand to a newly formed “Laminas” project“, which aims to continue their mission as an open source project hosted by the Linux Foundation. The transition will enable more companies to provide support for the projects they’ve come to depend on and help it continue to grow. As part of this transition, it is important for them to differentiate the open source project from the Zend commercial brand. Therefore, the new name “Laminas” project was created.

As part of this move, the Expressive microframework, Apigility api framework, as well as the MVC framework will all be part of the Laminas project.

I will try to add more details as they become available to us all, and will likely also do a Twitch stream and YouTube video with Beachcasts and that video can be viewed HERE.

Support Laminas Project

For more information, please see the new site dedicated to the Laminas project, and if you would like to become a member and/or support the project at the Linux Foundation (their blog post), please join and become a member.

Impact to current users

The framework team is working on scripts and tools to help users update namespaces and vendor packages with the renaming. See the video below for more info.

Beachcasts Video

I added this, and a little more content about the Zend Framework rebranding to Laminas project under the Linux Foundation. Check it out below.