Martin Fowler

Bliki: Say Your Writing

Here's one of the best tips I know for writers, which was told to me by Bruce ...

Interviewed by James Lewis at goto Copenhagen

At goto copenhagen last year, my friend James Lewis interviewed me and G...

Refresh of Agile Threat Modeling

Threat modeling is a systems engineering practice where teams examine ho...

Function calling using LLMs

While LLMs excel at generating cogent text based on their training data,...

Building Custom Tooling with LLMs

Tools that treat diagrams as code, such as PlantUML, are invaluable for...

Coding Assistants Threaten the Software Supply Chain

We have long recognized that developer environments represent a weak po...

Design Token-Based UI Architecture

Design tokens are fundamental design decisions represented as data. And...

Designing Data Products: next steps

Once we've designed our initial data products, Kiran Prakash finishes h...

Generalizing the design of data products

Having got an initial data product, Kiran Prakash leads us through the ...

Refactoring with Codemods to Automate API Changes

As a library developer, you may create a popular utility that hundreds o...

A more complex codemod

Juntao Qiu moves onto a more complex example of a codemod, one that extr...

My favorite musical discoveries of 2024

I've got into the habit of starting the New Year by sharing six favorite...

Fixing Common Pitfalls of Codemods

So far the codemods that Juntao Qiu has described are fascinating, but r...

Codemods in other languages

Juntao Qiu finishes his description of codemods by looking at some other...

Podcast with Luca Rossi

Luca Rossi hosts a podcast (and newsletter) called Refactoring, so it's ...

Emerging Patterns in Building GenAI Products

Everyone is fascinated about using generative AI these days, and my coll...

Bliki: Forest And Desert

The Forest and the Desert is a metaphor for thinking about software develo...

Embeddings in GenAI Products

GenAI systems, like many modern AI approaches, have to handle vast quant...

GenAI Patterns: Retrieval Augmented Generation (RAG)

A pre-trained GenAI model lacks recent and specific information about a ...

Panel at goto Copenhagen: "Where is SW development Going

was on a panel at goto Copenhagen last September with Holly Cummings, T...

GenAI Patterns: RAG Limitations and Hybrid Retriever

Today Bharani Subramaniam and I outline four limitations to the simple R...

The DeepSeek Series: A Technical Overview

The appearance of DeepSeek Large-Language Models has caused a lot of discu...

GenAI Patterns: Query Rewriting

Users often have difficulty writing the most effective queries. Bharani ...

GenAI Patterns: Guardrails and RAG overview

Gen AI systems are gullible, and can easily be tricked into responding i...

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies.