top of page


A personal blog addressing software quality across all aspects of software development, testing, design, and people.
Search


The Architecture of LLM-Powered Applications: How It Differs from Conventional Software Architecture
As I’ve already explored in my previous articles, LLM-powered applications are having a big impact on the way we think about software development. With this rapid acceleration into AI adoption, many companies and teams are discovering that building applications powered by Large Language Models (LLMs) feels nothing like building traditional software. The patterns are different, the risks are different, and so are the architectural decisions. LLMs introduce new forms of compl
Craig Risi
Nov 217 min read


Preparing Your Data for LLM Applications
Large Language Models (LLMs) are only as good as the data that shapes them. Whether you’re fine-tuning a model for domain-specific use or building an LLM-powered application from scratch, data readiness is the single biggest factor influencing performance, reliability, and ethical outcomes. As the saying goes, “garbage in, garbage out” - but with LLMs, the cost of poor data goes beyond technical glitches; it can lead to bias, misinformation, and loss of trust. In this post,
Craig Risi
Oct 318 min read


Building Quality in LLM-powered applications
While I’ve written on AI many times, I do often resist writing on the topic because I fear it is often overplayed and somewhat of a potential tech bubble. It won’t be going away, though, and even if its impact wanes, we still need to learn how to test and build quality around it. Especially in the realm of LLMs, which have had the largest impact on software development, both in how we create software and the types of solutions we can solve. Large language models (LLMs) like G
Craig Risi
Oct 37 min read


Data-Centric Security: Protecting What Matters Most
In my previous post, we looked at the importance of focusing on access control and perimeter security. However, protecting the perimeter...
Craig Risi
Jun 273 min read


Modernizing Data: From Relational Databases to Polyglot Persistence
I’ve done several blog posts on modernization recently, with a big focus on transitioning older applications to be repurposed for the...
Craig Risi
Mar 304 min read


The Journey to Modernization – Part 5 – Considerations for transitioning to a serverless stack
At the end of 2024, I began exploring various steps toward modernization, and as we move into the new year, I will focus specifically on...
Craig Risi
Jan 107 min read


Securing Data in your code
In my last post , I looked at some tips on how to write more secure code. However, it’s not just code alone that developers need to...
Craig Risi
Oct 4, 20246 min read
bottom of page