[{"data":1,"prerenderedAt":191},["ShallowReactive",2],{"article-\u002Farticles\u002Fdevelopment-with-ai":3},{"id":4,"title":5,"body":6,"date":179,"description":180,"extension":181,"meta":182,"navigation":183,"path":184,"seo":185,"stem":186,"tags":187,"__hash__":190},"articles\u002Farticles\u002Fdevelopment-with-ai.md","Development With AI",{"type":7,"value":8,"toc":163},"minimark",[9,13,18,21,24,28,31,34,38,41,46,49,52,56,64,81,84,88,91,97,100,103,106,110,113,121,125,128,131,135,138,141,145,148],[10,11,12],"p",{},"How to develop with AI, tips, tricks, prompts, ideas, thoughts, etc. The internet is flooded with these kind of articles. Everyone has their own angle, their own fears, excitements, worries. So why not throw in another! My approach is more like a journal entry to organize how I feel on this subject, and how I'm hoping to approach AI within my software development as time goes on. But, as quickly as I write this, a new model could come out and change everything. These are my thoughts and approaches as of right now.",[14,15,17],"h2",{"id":16},"initial-thoughts-on-ai","Initial Thoughts on AI",[10,19,20],{},"AI is the best co-worker and assistant, biggest source of bugs, most amazing tool, and feared technology all at the same time. One day I'm blown away by how helpful AI is when attacking a problem. Instantly followed by holy smokes, what's the upper limit with this thing and how will it affect my career? The next day, it writes 100 lines to compare two strings. It really throws me for a loop.",[10,22,23],{},"Overall, I find it more handy than anything. But I believe that's because I already could make the app by hand, without the use of AI. I've been developing software for 20 years and having that experience is essential. Multiple times when I've pushed it to the limits, there are architecture issues, security vulnerabilities, and user experiences that were very WTF. However, when utilized correctly, it's extremely powerful.",[14,25,27],{"id":26},"vibe-coding-is-a-lie","Vibe Coding is a Lie",[10,29,30],{},"Well, maybe that's a little harsh. Vibe coding the \"one-shot\" million dollar app without any experience is a lie. It's fake dopamine. The \"one-shot\" app \"works\", but good luck. Successful apps built with AI all come from developers who know what they are looking at. To just keep prompting an AI to build what you want and have no idea what the underlying code is just sets you up for failure. Whether that's security vulnerabilities, user experiences that just make no sense, or code that's absolutely un-maintainable. You can make it work, but making it work for more than just yourself is a whole different ball game.",[10,32,33],{},"What I do like about \"vibe-coding\" is it helps new developers see what is possible. It sparks the creativity without the frustration. If you are learning to code and you pair with AI to explain the code while also building an app yourself, then I think vibe-coding is extremely powerful. However, once you know how to build an application, working with agents as a co-worker is where you can se some serious return.",[14,35,37],{"id":36},"using-agents","Using Agents",[10,39,40],{},"Now, if you already know how to build an app, and you hand off work to the AI, you've become a team of 1 with the power of 50. Having previous knowledge of app development and knowing how systems are structured (more on this next), will give you so many advantages. You will design better prompts, you can scaffold the app (or at least guide the AI to) where the AI can fill in pieces, you will know what is right and what is wrong. And finally, you can do this at an incredible pace. The way I approach agentic workflows is as follows.",[42,43,45],"h3",{"id":44},"_1-scaffold-your-app","1. Scaffold your app",[10,47,48],{},"If you are using a framework, well then you have a huge head start. But no matter what, get your app scaffolded first. Install the packages you wish to use. Set up your authentication. Lay the bricks. Without the basics in place, the agent will gladly put what it thinks is best in there for you.",[10,50,51],{},"You can have the agent help scaffold the app and it actually does a decent job, just make sure you don't start off on the wrong foot. The more you can rely on your experience by using vetted packages or libraries, designing what type of system you plan on building, and how your application should function, the better prompts you will be able to give to the AI to add features to your app. And most importantly, do it the right way.",[42,53,55],{"id":54},"_2-build-context","2. Build Context",[10,57,58,59,63],{},"Along with scaffolding your app, provide context. This could be through an MCP server, a ",[60,61,62],"code",{},"CLAUDE.md"," file, agent rules, etc. The more context you provide, the better the outcome. Be wary of using third party MCP servers though. You think debugging your own solutions is hard, try debugging AI generated solutions that get context from an MCP server that goes against the grain. I try to limit the MCP servers I use and really scope them down.",[10,65,66,67,74,75,80],{},"For example, I do a lot of ",[68,69,73],"a",{"href":70,"rel":71},"https:\u002F\u002Flaravel.com",[72],"nofollow","Laravel"," development. The framework has heavily embraced AI in an absolutely incredible way with their first party package, ",[68,76,79],{"href":77,"rel":78},"https:\u002F\u002Flaravel.com\u002Fai\u002Fboost",[72],"Laravel Boost",". Laravel Boost provides context for all first party packages and framework structure. This is an essential MCP server for Laravel development. However, my approach, is not to install another Laravel specific MCP server that would provide conflicting information. Laravel Boost should be isolated in it's context to providing specific Laravel knowledge.",[10,82,83],{},"The context I do provide is iterative. As I add features, grow the product, make architecture changes, I update the context. I also refer from my context to reference MCP servers that provide more detail and up-to-date data. There's a fine balance of providing too much context and just enough to be fast and efficient.",[42,85,87],{"id":86},"_3-correlate-prompt-size-complexity-with-scope-of-work","3. Correlate Prompt Size + Complexity with Scope of Work",[10,89,90],{},"This has been my absolute go-to rule of thumb. The greater the complexity that I want accomplished, the larger and more detailed the prompt, and the smaller chunks I bite off at once.",[92,93],"img",{"src":94,"alt":95,"style":96},"\u002Fimages\u002Fdevelopment-with-ai\u002Fgraph.png","Prompt size and complexity vs. scope of work","display:block;margin:2em auto;max-width:100%;",[10,98,99],{},"So what does that mean? Well, if you are installing packages that are pretty standard, or building out small, common, beginning level features, you can probably do a small little prompt and accomplish a decent amount of work with pretty good success.",[10,101,102],{},"However, if you are doing business specific logic, with lots of steps and procedures that are unique to your app, the AI will need a hell of a lot more guidance. And you will need to do a hell of a lot more review. This is where developer experience is essential. AI can help, but it will only help with the quality of instruction and knowledge you give it. If you know how a feature or implementation should work and what tools to use, the AI will yield better results.",[10,104,105],{},"With these app specific logic implementations, my prompts are massive. The scope of work is tiny. It may be just a few functions, or an individual helper class. It's at these points where I tend to do most of the work myself and use AI to bounce off ideas or discuss different approaches.",[42,107,109],{"id":108},"_4-allow-for-questions","4. Allow for Questions",[10,111,112],{},"The most helpful sentence to put after any prompt: \"Please ask clarifying questions before you begin.\". That one sentence makes all the difference. In my experience I feel that if I don't tell the AI to ask questions, it will confidently implement a feature that's not even close to what I want.",[10,114,115,116,120],{},"When I do instruct the AI to ask questions, the questions it asks help educate me on the full scope of what I'm looking for and the outcome is ",[117,118,119],"strong",{},"better",", then expected. What do I mean by this? It gives the AI the freedom to clarify what it doesn't understand, but that could also prompt me to understand and think through what I'm trying to implement even better. It's literally night and day difference.",[42,122,124],{"id":123},"_5-git-git-git","5. GIT. GIT. GIT",[10,126,127],{},"Finally, never trust 100% of the output and use GIT religiously. Before every prompt I make sure I have a clean worktree. Sure, modern IDE's like Cursor show the changes that AI makes, but if you are iterating on a feature, I highly suggest using GIT and all the power it provides. I mean, GIT has been around forever, it's so powerful and so easy to use, you can quickly see what the AI changed, revert pieces, and keep iterating as fast as possible.",[10,129,130],{},"I also think this goes without saying, never AI code directly in a production environment. This is an extremely dangerous development practice. AI can pull in malicious, poorly tested packages if you aren't careful, or build you a nice security hole. Always review the code 100% and make small, incremental commits that are easy to roll back.",[14,132,134],{"id":133},"architecture-matters-more-than-ever","Architecture Matters More Than Ever",[10,136,137],{},"If there's anything I've learned working with AI is you are the architect of the application and architecture matters more then ever. Knowing how to build and scale an app is essential. You can then guide the AI as a co-worker and a companion using pre-existing knowledge learned through experience. If you don't have that existing knowledge, sure you can make something, but if it grows beyond you, or you need someone else to maintain it, you are in for a challenge. That doesn't mean don't try. Actually the opposite, try even more. Just learn the development practices along the way.",[10,139,140],{},"AI is great at implementing the busy work, the validations, the tests, the small formatters and even some pieces of larger features. However, you need to tell it where these features should live and how it should continue to grow the application. Is your application modular? Even Driven? API Driven? Where do your objects live and are you following a MVC or Repository pattern? All these choices are up to you and should be followed throughout every feature. I also recommend thoroughly documenting where everything lives within your context. You are now an experienced product manager and senior level engineer guiding an entire team. Whatever information you think the team needs regarding architecture should be explained in the context.",[14,142,144],{"id":143},"wrapping-up","Wrapping up",[10,146,147],{},"As your app grows, the knowledge of architecture and when to bring in other services becomes more and more important. Your previous knowledge of security, user experience, and code clarity is highlighted in the age of AI. While the models keep getting better and better, the job of the developer keeps evolving. However, without previous knowledge and confidence to build an app by yourself, you will have less of the vocab, descriptive terms, and understanding that is necessary to design prompts to make the AI accomplish what you need it to. Prompt engineering is real, but it's rooted in experience and understanding.",[10,149,150,151,156,157,162],{},"I'd absolutely love to hear your thoughts on this. I think, as developers, it's extremely important to share perspective. Especially in the age of AI. Feel free to reach out on ",[68,152,155],{"href":153,"rel":154},"https:\u002F\u002Fx.com\u002Fdanpastori",[72],"X (Twitter)"," or ",[68,158,161],{"href":159,"rel":160},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdanpastori\u002F",[72],"LinkedIn",".",{"title":164,"searchDepth":165,"depth":165,"links":166},"",2,[167,168,169,177,178],{"id":16,"depth":165,"text":17},{"id":26,"depth":165,"text":27},{"id":36,"depth":165,"text":37,"children":170},[171,173,174,175,176],{"id":44,"depth":172,"text":45},3,{"id":54,"depth":172,"text":55},{"id":86,"depth":172,"text":87},{"id":108,"depth":172,"text":109},{"id":123,"depth":172,"text":124},{"id":133,"depth":165,"text":134},{"id":143,"depth":165,"text":144},"2026-04-08","Learning to develop software with an AI assistant has been, well, a whirlwind. Based on my experience you can create software way out of your league or spend time debugging over-engineered bugs for hours. It changes with every prompt.","md",{},true,"\u002Farticles\u002Fdevelopment-with-ai",{"title":5,"description":180},"articles\u002Fdevelopment-with-ai",[188,189],"software-engineering","ai","sh0Ec_oBTrmu3UxkOe2brzoz6imoY-y7F9wvV-ri3Qg",1775685426639]