A photo of Geoffrey Hayward

Responsible AI Coding: What I’ve Learned So Far

Published May 9, 2025

Developer with laptop and friendly robot assistant outdoors, coding with Spring Boot.

A whole new way of coding. When JetBrains offered me a trial of Junie, an AI assistant built into IntelliJ, I had to give it a go. I soon saw the potential, it’s kind of like an AI coding partner (albeit a little dumb at times), but that’s okay, if used responsibly. So here’s what I’ve learned about coding responsibly with AI—so far.

From Curiosity to Augmentation

At first, I gave Junie a go out of curiosity. I didn’t expect much, but very quickly, I saw the potential. Used right, I thought, it can augment me, but only if I can work out how to use it responsibley.

I still use ChatGPT and chat’s with other Software Developers for broader problem-solving, but with Junie, the relationship is different. You don’t just chat—you ask precisely, and it writes solutions directly into project files. This also means Junie has access to project files, i.e. access to information. So, I thought, let’s start there; I need to give it structured information.

Structuring AI Collaboration

To get good results, I set up my project with the AI in mind. That meant two things:

I am finding that concise, clear guidelines work best. If you overcook the detail, the AI may ignore it. Like other developers, AI performs best when told what is required—not how to do it.

Safe Practice Makes Better Output

Using AI in your IDE changes how you code—but not how you review code. You still need to:

  • Check in to a branch regularly (so it’s easy to revert).
  • Read every line it writes.
  • Follow the normal pull request process.
  • Make manual tweaks before approving.

The workflow becomes more fluid and faster, but the standards remain the same. You’re still the developer and guarantor of quality code output. You’re just shipping faster.

Lessons I’ve Learned So Far

Here are a few tips I’ve picked up along the way:

  1. Only ask AI to write code you could write yourself (if you had unlimited time). That way, when it goes wrong, you’ll know how to fix it. So don’t try using it on new libraries until you are familiar with the library yourself, or you will end up losing time on small details you should have known about from the documentation.
  2. Avoid bleeding-edge libraries. Stick to libraries that were already well-supported before the AI’s training cut-off. You’ll avoid hallucinations and strange bugs.
  3. Commit working code often. If something derails, you can always step back.
  4. AI can teach you things. I’ve had several moments where Junie or ChatGPT done something that saved me Googling. I know this sounds like a contradiction of ‘don’t try using it on new libraries’ but it’s not. It will sometimes write things in a way you hadn’t thought of, which can teach you new things.

Juniors and the AI Gap

If I were mentoring a junior developer, I wouldn’t start them off with AI code generation. They need time—and respect—to learn the ropes. But I would give them the chance to talk problems through with AI, just like they would with a colleague. When they move from junior to mid-level, that’s when AI coding can give them a huge productivity boost.

Looking Ahead

I believe AI coding is going to become the norm in most domains. And as it does, responsibility has to be part of that norm—just like testing, version control, and documentation.

It’s not enough to be faster. We also need to be deliberate. That means checking the output, tracing where it came from, and using AI as a tool—not a crutch.

Final Thought

Responsible AI coding isn’t a buzzword. It’s a mindset. It’s knowing when to delegate to the machine, and when to take the reins back. It’s building software with care—even when the code came from a place that feels almost magical.

Latest Posts

And abstract image of programming code surrounded by a light bulb.

Notes on Successfully Running Ubuntu in VirtualBox

January 26, 2024

Computing

As a Software Developer who likes to use Ubuntu for Development but can sometimes only run it as just another window in Windows, I would like to share some nuanced VirtualBox configurations I built up over the years.

Continue reading
And abstract image of programming code surrounded by a light bulb.

Setting Default Values in GitHub Actions Workflows

October 20, 2023

Computing

GitHub Actions is a powerful platform for automating workflows and tasks in your software development process. When creating workflows, you often need to set default values for variables or parameters, especially when certain values are not always going to be provided. In this blog post, let’s explore two techniques to set default values in GitHub Actions workflows, including a handy ! contains() approach and the double pipe || hack. We’ll also discuss the potential limitations of the double pipe hack.

Continue reading