My thoughts on AI aided development
I started my career in 2018 when artificial intelligence in the workplace was limited to research labs and companies. Most people thought of it as something that exists in only science fiction, now it is everywhere, especially in the world of development. AI is now becoming central to many roles in development as seen in new job postings on LinkedIn, company career portals and generally in media; and this gives me mixed feelings. The term “Vibe Coding” has shot up in usage in the past year and whilst I love to encourage people to get in to programming to learn the joy of creating amazing applications the security and privacy implications are immense.
Privacy
As a Junior Developer I joined a company that was an accredited ISO27001, Cyber Essentials and GDPR auditor and trainer (RDS Global Ltd.) which drilled in to me the most important lesson around software applications, “Data should be seen by only those that need to see it”. This, of course, makes sense as the average Joe on the street shouldn’t be able to see another person’s information without prior consent; companies need to keep trade secrets and accounts obfuscated to ensure a competitive edge; and patient files should only be accessed by medical professionals involved in the care of said patient. So how does AI fit in to the privacy frameworks created since the 70s? Currently, in my opinion, it doesn’t.
Where do the prompts to AI agents go? They go to third party infrastructure unless you are lucky enough to work in a large company with internal AI models and infrastructure, controlling the data flow.
Now AI companies will say they don’t see the data you send to them via their tools but it IS seen by the models and may be used as training data in the future. How can we be sure the data isn’t inadvertently sent to an unrelated user as “demo data” for example?
Audit logs, as I have built and maintained in several roles, are important and again VITAL to provide confidence that data is being handled responsibly. Just saying “AI did some stuff in our DB” is not good enough and unless the developer knows to add in features, skills or some other system to track data access this chain is broken, causing problems for them or their company.
Finally, Junior Developers or the “Vibe Coding” crowd don’t know what they don’t know. The training I received allows me to best use AI safely in my workflow as I understand how best to ensure data stays private; utilising AI as a glorified Google or StackOverflow for problems, which I then check to make sure they can match the high standards set in these frameworks. Stack traces (which can include PII), screenshots of pages or even database query results pasted by the Junior Developers in to AI agents and chat bots breaks the fundamentals of privacy by design and they should be trained to strip out any data that needn’t be seen.
Security
Having worked in multiple organisations which require security from cradle to grave, including both financial data and healthcare infrastructure, I am highly worried about the overuse of AI. This isn’t to say AI agents can’t produce clean and secure code, they can, but the developer has to set them up correctly with appropriate guards and context. That’s manageable for companies who have been around for a long time with institutional knowledge and pre-designed safeguards, but for start-ups and solo developers just diving into the sea of application design it can be tricky. AI coding agents often need broad access to repositories, the terminal and occasionally production credentials, which raises the question of attack surfaces.
Building on that point, more people are “Vibe Coding” than ever as models get more powerful, and the applications or websites they create can skip core security features such as input validation, authorisation checks and secret management. Whilst modern AI models may include these features without prompting, it still falls on the developer should any exploits make it into production code; as such, even with modern models, care and attention must be paid by reviewing ALL generated code. This review must also extend to the dependencies imported by the agents, as they tend to work off code and patterns most commonly found in publicly accessible repositories, and as such they may be outdated or, worse, insecure. AI suggests the dependencies and patterns it has seen most often, not necessarily the most maintained or least vulnerable ones; code review needs to catch what used to be caught by experience.
Accessibility
Accessibility is where “Vibe Coding” looks best on the surface and does the most invisible harm. AI-generated UI code is excellent at producing something that looks right, clean layouts, sensible spacing, a component faithfully reproduced from a screenshot, but semantic HTML, ARIA attributes and keyboard navigation are the parts of the job that don’t show up in a screenshot, and they’re exactly the parts a model has the least incentive to get right unless someone explicitly asks for them.
This matters more, not less, as the barrier to shipping a UI keeps dropping. I genuinely love that someone with no design or frontend background can now ship a working interface in an afternoon, that’s one of the best things about this shift. But it also means accessibility becomes an afterthought nobody on the team knows to check for, simply because nobody on the team has the experience to notice it’s missing.
This ties back to the same rule from the Privacy section: “Data should be seen by only those that need to see it” was never really just about data.
How do I use AI?
So you now must be thinking, “How do you use AI?”.
As a research tool
The most powerful feature of AI agents is ability to reason and use human language to sketch an idea you’ve had and gather thoughts about how to approach a problem. For example you could write the following:
I then take the response, refine it and create a plan to develop. This would also include talking to my colleagues, stakeholders and myself to see if it makes sense and is feasible for the product I’m working on. Again this will involve checking the answers for obvious security, privacy or accessibility flaws.
As a boiler plate generator
No-one likes writing the same lines of code multiple times in a project to create pages or the same funtionality but with a different data model. In these cases, as long as the agent is guard railed, using AI is a massive time saver.
Nothing sensitive goes in to a prompt
This one comes straight from the Privacy section: “Data should be seen by only those that need to see it” doesn’t stop applying just because the “someone” is a model instead of a person. Before anything goes in to a prompt, I ask myself whether I’d be comfortable pasting it in to a public forum, because functionally that’s closer to the truth than most people realise. Real customer data, credentials, stack traces with PII in them, screenshots of internal tooling, none of it goes near an AI agent until it’s been stripped or replaced with a synthetic equivalent that captures the shape of the problem without the substance.
Every suggestion is reviewed
Every piece of code an AI agent produces gets treated exactly like a pull request from a contributor I’ve never met, because that’s effectively what it is. No exceptions for how confident the output sounds, and no assuming that because a snippet works it’s also secure, accessible, or using a dependency I’d actually trust. I check it the same way I’d want a junior’s first PR checked: read it properly, understand why it works, and only then let it near production.
Final thoughts
We live in a world where AI is changing how we work, and I still have mixed feelings about it. But as I hope this post has shown, those feelings were never really about AI itself, they come down to how disciplined we are in using it. It’s a lack of training, weak guardrails and undisciplined use that turns “Vibe Coding” from an exciting on-ramp in to development, in to a genuine risk for the developers using it and the users trusting them. That’s not a reason to avoid AI, it’s a reason to hold it to the same standards we’ve always held anything that touches people’s data, systems and experience, which is exactly what the frameworks above, and how I use AI day to day, are trying to do. AI has brought more people in to development than ever before, and if that enthusiasm is paired with a bit of discipline, I’m genuinely excited about where this goes next.