Can AI Help Fullstack Engineers? | .cult by Honeypot
Tech is constantly changing, anyone who has been in the industry for long enough knows that the rate of change can be dizz
ying. While some trends disappear quickly, others like artificial intelligence (AI) and how it will impact the world, have become difficult to ignore.
ChatGPT in particular has created a lot of commotion in the tech world recently. If you ask ChatGPT which jobs will be affected by AI in the future, it will even give you a detailed list.
Undoubtedly, many people are now asking themselves whether their jobs are in jeopardy. Engineers and developers are no exception. While software developers aren’t on ChatGPT’s top 10 list, it is still among the fields likely to be affected by AI. No one knows for certain at this point, as AI is in early adoption and usage.
So, let’s dive further into the ways fullstack software developers will be affected by AI chat systems and how they can even benefit from it.
By fullstack engineer, I mean someone who can comfortably work on code across the stack. They might feel most comfortable in a certain part but they know their way in both frontend and backend.
Content for your skill & soul:
Guiding your memory and recollection
A major problem in fullstack engineering is the need to remember… the full stack. There is a lot going on in a fullstack environment. Often, you’ll focus strongly on only one area, say backend, for a few weeks and then transition to frontend tickets. This transition can take some time, however, ChatGPT has been great at helping me get my thoughts flowing in the right direction.
Overall, from my usage thus far, ChatGPT is incredible at speeding up my tasks. Granted, I don’t have access to the plugins and other parts of ChatGPT you need an invite for. But for example, if I haven’t seen a certain SQL (big) query in a while, I can ask ChatGPT questions about this specific query and quickly remind myself what the parts do. For someone who hasn’t seen certain codes or technologies in a while, it’s an incredible tool to have. Webpack and terraform files are good examples for me. Most files have little to no documentation, and it can often feel like a lot of guessing and testing. However, I can ask ChatGPT ‘What does the resolve block in a webpack config do?’, and it’ll give me an example along with an explanation. Additionally, ChapGPTis quick at making configurations and queries.
Situations like this make ChatGPT invaluable to me. This is the type of thing I infrequently need, but when it happens, I can lose a lot of time searching for it. The documentation for some packages isn’t great and can further prolong the process, but ChatGPT can get me at least 90% of the way on the first go.
Often, something comes along, and these configuration files that got changed once some time ago require another set of changes unexpectedly. It could be a random production outgate or another package that was updated and broke something else. Context switching and trying to remind yourself what a file does can take a lot of time, but ChatGPT can quickly explain parts of a file. This helps jog my memory faster than reading through documentation. Ultimately, the documentation will still be the best source of truth, but conversational AI can ‘TLDR’ the documentation so I can refresh my memory faster.
Before I get deeper into it, it’s important to note that most code written is considered intellectual property. So, this is my friendly reminder to not copy and paste IP into foreign sources. Ultimately most engineers work for an organization and that organization’s IP is crucial to its success. AI will often train itself on the inputs provided over time to improve itself, and who knows if one day that code ends up being suggested to another user. Github’s Copilot has dealt with this type of thing in the past with open-source code that is licensed.
Building assistive tools
Often, I’ll be working in a codebase I’ve never seen before and trying to isolate components to test so I can better understand how the pieces work together. That’s when I can use ChatGPT to generate a script to help me with test information.
Even better… it can create a
curl request to validate what I want to test, instantly.
Note: I did omit the portion of the conversation where I asked it to do a localhost request on port 3000
Over time, you can collect these little tools and scripts to create a library of tools to use against a new system. This is the type of thing AI has become invaluable to me for, replacing those little roadblocks that appear throughout the day and derail my ‘flow state’.
Garbage in, garbage out
From the examples above, it’s pretty easy to see that ChatGPT can provide incredible output with very little work on the input side. ChatGPT is still a new technology and it’s getting better every day. However, for someone not incredibly knowledgeable on a topic, it can be problematic. Ultimately, this isn’t solely a problem for ChatGPT and can occur to anyone who chooses not to do their due diligence when researching a topic. This goes all the way back to the idea that the output these conversational AI tools provide should be trusted completely, and it’s the responsibility of the user, to validate if it is doing what you expected.
An ER doctor recently tried to use ChatGPT to assist them in diagnosing. While it was able to provide some accurate diagnoses, it only did so 50% of the time. ChatGPT also made the news headlines after passing the medical exam, so it’s definitely capable of at least providing some accurate output. ‘If my patient notes don’t include a question I haven’t yet asked, ChatGPT’s output will encourage me to keep missing that question’, Josh Tamayo-Sarver stated.
In this instance, ChatGPT wasn’t able to evaluate the ‘big picture’ for the problem but solely responded to what Dr. Tamayo-Sarver was providing. This instance highlighted the importance of proper input for ChatGPT to help guide the output. Someone providing input into ChatGPT must be knowledgeable on at least a basic level in order to make sure that the output will be applicable. Ultimately, you need to know which questions to ask and how to ask them correctly, meaning that AI tends to do really well as an assistant to someone who already knows their stuff.
This is the million-dollar question after all, and it’s almost impossible to answer. Software is a rapidly changing field and conversational AI is in that same boat. However, I believe that AI will start pushing engineers towards becoming ‘product engineers’ instead of just pure developers. This can vary from company to company. However, the goal for every company is to create solutions to benefit their customers. I can see engineers knowing more about the products they’re building and not just from a technical standpoint. From the customer’s point of view as well.
AI to help with customer experience
If we’re moving towards a world where people become 3,4, 5 times faster at their work due to AI, understanding and solving customer problems will become easier. Engineers could focus less on the implementation details of a solution, and more on properly understanding the customer’s problem. The inevitable delays of ‘How does this work again?’ when trying to develop a solution for a problem will be reduced. AI will help flatten the learning curve for building new solutions and learning new technologies.
If you want to experiment more, you can ask ChatGPT to explain things to you in different ways, succinctly, without needing to dig into documentation or watch hours of Youtube videos. Here’s a shortened example of ChatGPT explaining what containers and Kubernetes are.
ChatGPT can even break it down further for me.
I tend to struggle when I have to explain things to other people. I often need to prepare in order to explain something to someone who has never seen it before. AI has helped me formulate my thoughts, and in the aforementioned example, it makes certain, I cover all the important parts. Writing something similar to ChatGPT’s outputs would take me at least an hour of extra work. Even then, I might miss some things. I like to say that AI helps me get my train of thought going. From the perspective of a team, knowledge-sharing can make you more effective. The ‘bus factor‘ is all too common in teams and software development. If we now have tools that help spread information faster, we can make teams more effective at web development.