Managing a remote team has posed a significant challenge, especially since the emergence of Covid-19 and the subsequent rise of remote work as the new standard. In my experience, conducting virtual meetings over BlueJeans has proven to be the most effective way of engaging the team whenever a new task arises. While I could have communicated the request via Slack, I realized that discussing the task’s background, required deliverables, and devising a game plan yielded better results. Unfortunately, scheduling these meetings posed difficulties for the team and my focus due to our jam-packed schedules.
Over the past few months, I have been utilizing ChatGPT, a powerful tool that enables code generation. To begin with, I set up a virtual server following the tech independence guide provided by Derek Sivers in his recent appearance with Tim Ferris. Derek Sivers is an American entrepreneur, musician, and writer best known for founding CD Baby, an online CD store for independent musicians. The concept conveyed by Derek is to establish your server to ensure control over your contacts, calendar, and digital assets. Despite having limited experience I set up the server using the instructions. The outcome was a straightforward website, secure access to contacts and a calendar, and the ability to transfer content to encrypted storage.
Emboldened by this success, I revisited serving a webpage using a Python application served with Flask. This experiment marked the first time I attempted to run a Flask app on a live server rather than locally on my desktop. I encountered obstacles almost immediately. To successfully serve a Python app, it necessitates the use of Gunicorn and Nginx, or a similar setup. Gunicorn, also known as Green Unicorn, is a Python Web Server Gateway Interface (WSGI) HTTP server responsible for managing the Flask application’s incoming requests and responses. Gunicorn takes an HTTP request, sends it to where the Python App is running, and then translates the app’s response back into HTTP. Nginx, pronounced as “engine-x,” is a web server that acts as a reverse proxy, forwarding incoming requests to Gunicorn for processing.
Here is where the trouble began. Since I was already running HTTPD on port 80, Nginx sought to use the same port. Initially, I turned to Google to resolve this issue but grew increasingly frustrated as the proposed solutions either didn’t work with the OpenBSD Linux distribution or led me down unhelpful rabbit holes. At this point, I decided to kick the tires on ChatGPT’s ability to code. Prompts like “Set up a Python Flask app using Gunicorn and Nginx” yielded high-level explanations and instructions. However, obtaining more relevant results required additional details, such as specifying my Linux distribution and the ports on which various components were running.
In some cases, I even shared the contents of the configuration files. The AI would often pinpoint the exact line where I made a mistake or provide line-by-line explanations of the entered code. After a few hours of perseverance, I successfully transitioned from HTTPD to Nginx, implemented the Python Flask App to manage the webpages, added SSL certificates using Certbot, and introduced GIT version control to streamline site updates.
Around the same time, I started exploring MidJourney, a generative AI that creates images based on descriptions and parameters. The header image of joereg4.com (Still a work in progress) is a MidJourney creation. Similar to my experiences with ChatGPT, the better I got a creating a detailed prompt, the better the result. In some cases, leaving it up to the AI to develop an image is excellent, but if you are looking for something specific, providing the aspect ratio, a description of the image, and even an artistic style gets you much closer. Browsing images other users created provides a great place to start. Here is the final prompt used to create this image:
An illustration with clean, bright lines portraying a minimalist rocky mountain landscape filling a horizontal rectangle logo. The style is reminiscent of the simplistic yet evocative illustrations of Olly Moss. The image includes mountains across its full width, trees, and a lake, all under a radiant sunburst. The sunburst, originating from the center and reaching out to the edges, is a vivid mix of orange and yellow tones. With a warm color temperature dominating the scene, the image holds a comforting feel. There are no facial expressions, as the focus is purely on the natural elements. The landscape is awash in gentle, evenly dispersed lighting, cultivating a tranquil atmosphere. –ar 16:4 –v 5.1
You may be wondering, what does all this have to do with management? After all, team members are not machine learning models. Through the repetitive process of entering prompts to obtain desired outcomes, I became much more adept at achieving the desired results on my first attempt or with just a few revisions. Interestingly, when I started documenting a request in Slack, it felt similar to prompting ChatGPT. The messages became more thorough, preemptively incorporating additional details to address potential questions. This resembled an AI prompt, where more background information and not assuming someone knew about the context of the task led to more relevant responses.
This experience reinforced the fact that communication, especially remote communication, requires a great deal of clarity. Similar to how I interacted with ChatGPT, providing complete and concise information from the outset saves time and empowers the team to get to work. This realization changed how I dealt with task assignments within my remote team. Instead of sending a vague request like “We just launched new price plans, let’s show the sales team how we are doing at the next staff meeting”, I started to include more details such as the business purpose, the specific sections to be included, where the data may come from, and similar tasks as an example.
Moreover, my experimentation with ChatGPT reinforced the concept of asynchronous communication. Just as I didn’t need to wait for immediate responses from the AI, I realized that my team didn’t always need instant replies from me. I started to respect the concept of ‘deep work‘ as espoused by Cal Newport. Not being present at the same time allowed my team members to respond when they were at a good stopping point for whatever they were working on and significantly decreased unnecessary interruptions and increased productivity.
Finally, learning and troubleshooting with ChatGPT highlighted the importance of embracing challenges and learning from failures. As a manager, fostering a culture of continuous learning and growth is essential.
In conclusion, my experience with setting up a server and navigating technical issues using ChatGPT has helped me evolve my management style. It has reminded me to be more specific in my communication, appreciate the flexibility of asynchronous communication, and foster a team learning culture. Though initially seen as a technical challenge, the encounter has improved my ability to manage remote teams effectively.