If you're a software engineer, you've heard about how artificial intelligence (AI) is about to change the game for us. Maybe you're intrigued by the possibilities, or maybe—like me—you feel a bit intimidated by the thought of incorporating AI into your work.
The AI train is rolling and just keeps picking up steam, and it's easy to feel like you're somehow already behind, or (maybe worse) like the robots are about to take your job. I've found that one of the best ways to overcome this is to just…dive in. That's what I did, so here, I'm going to walk you through what I see as the benefits of AI for us engineers, give you some practical tips to get started, and talk about some of the possible pitfalls.
My goal is to make AI less intimidating (it's possible!) and help you see how it can make your work as a software engineer even more fulfilling—and effective.
The benefits of using AI in software engineering
The best part about where we are with AI right now is that you don't have to be an AI expert to get started—far from it. Recent developments have made it so easy to get started incorporating it into your engineering practice. Here are some of the benefits that I've found firsthand from using AI in my work.
Streamlining repetitive coding tasks
I've used AI to generate and automatically convert code from one format or language to another. It's like having a programming partner next to you as you work. Here are a few examples:
Generating working unit tests. Just give ChatGPT a function, and it will write the tests for you.
Automatically converting code from one format or library to another, e.g., Jest to Cypress or JavaScript to Python.
Generating test fixture data given some interface or schema.
Automatically mapping data from one format to another, e.g., reformatting Discord messages to replace the user ID with the actual
@username
handle).
By automating away the repetitive code, I was able to put my mental energy toward stuff that robots can't do yet. I was able to bust out this code faster because the AI was thinking for me—and fast.
Pushing your code boundaries
We all have limitations of our knowledge and creativity—that's why collaboration is so important, so we can push ourselves and learn from others. Consider AI one of those "others." By using AI to help with coding, I was able to reach for more complicated coding solutions that I wasn't otherwise familiar with. The result? I had more confidence in the coding I already knew, and I was pushed to boldly go where I hadn't gone before.
Here are some examples of things I asked AI to do for me that went beyond my knowledge:
Making an API call in Python have retries with incremental backoff.
Generating Avro event schema code for the first time based off the requirements in my tech spec.
Generating Terraform code based on a description of what I needed (e.g., an AWS S3 bucket).
Suggesting to use a Levenshtein distance function for string fuzzy-find, and writing an example implementation and usage for me.
With ChatGPT's help, I feel more confident trying to take on tasks that before I might have felt were too hard or complicated. It genuinely feels easier coding—it's like having a super-smart advisor by my side, giving me valuable insights and recommendations to help me make better decisions.
Improving understanding
We've all been there: trying to understand a complicated technical concept or wading through confusing code. So I've started using AI to explain complicated technical concepts, to write documentation for confusing code, and even to explain new code that I didn't understand very well. It's a built-in tutor and personal assistant all in one.
Here are some examples:
Explaining complicated technical concepts (e.g., "What is the difference between SAML and SCIM user creation?").
Writing documentation for confusing or under-documented code.
Explaining new code that you don't understand very well, especially in a language you aren't familiar with.
Starting with a skeleton for technical documentation, like tech specs, Jira tickets, or runbooks.
AI reduces the time needed to ramp up on technical concepts by explaining things simply and effectively. It gets to the heart of the matter quickly, and if you need more, you can ask for clarification and dive deeper into certain areas—something traditional static documentation struggles with. Plus, it can understand your code, so it can help document the code, too.
Streamlining workflows
One of our values at Zapier is "build the robot"—we're all about efficiency and streamlining work with automation, and AI adds a whole new layer to that.
I use GitHub Copilot for code auto-completion, and it's usually spot-on. It's a lot better than IDE auto-complete, because it can write out whole method calls or data structures for you. You can also use AI to generate working regular expressions or to reformat and reorganize your code. The result is better, more maintainable code—and time saved.
The common pitfalls of using AI in engineering
Like with any new tool or technique, there are risks involved here. Here are some of the obstacles I've come across so far—things to stay aware of as you dive into AI.
Fear of the unknown. It's natural to feel intimidated by something new—especially when that new thing is absolutely going to transform the way you work. But for all the scariness of AI, there are incredible possibilities that will make you better at your job and allow you to focus on the most important and meaningful parts of your work.
Limited time and resources. Incorporating AI into your work may require some additional effort upfront, which might feel counterproductive. But like with any new habit, the long-term benefits are worth it, and AI as a skill will get even more important as the power of AI grows. Consider it an investment in your career.
Potential inaccuracy of AI code. Just like human coders, AI will make mistakes in its code. But just like you'd have someone do a code review with a fellow engineer, do the same with AI. Take an iterative approach and QA the code generated by AI. If it doesn't work, tell the AI what the error was, and ask it to try again.
I'm not saying it's easy, but I am saying it's worth it.
Artificial intelligence vs. emotional intelligence
Being a software engineer isn't just about coding. It's about communicating your ideas, working effectively with others, and resolving disagreements productively. So while AI can help you with the code, don't forget about the human side.
With logical intelligence becoming increasingly commodified, emotional intelligence will become more of a differentiator in the field. So as you hone your artificial intelligence skills, continue to hone your emotional intelligence skills too, so you can stand out as a leader in the field and make a positive impact on your team, your organization, and the wider engineering community. Continue to think about the impact of your work on others, and strive to create solutions that are not only technically sound, but also socially and emotionally responsible.
And most of all: take care of yourself, and take care of those around you. Even in the electrical storm of AI swirling around you, give yourself a break and take time to recuperate and recharge.
Feeling ready to dive into AI? Start by signing up for GitHub Copilot and exploring other tools like CodeGPT. And don't forget to have fun.
P.S. You probably guessed it by now, but AI helped me write this article. I still did a decent amount of manual editing and collaboration, but it helped me organize my thoughts and streamlined the writing process. It was also an editor, helping me change the tone and reword things that felt off.
Related reading: