Profile avatar
martinfowler.com
Software Design Loudmouth. Works for Thoughtworks. Also hikes, watches theater, and plays modern board games. He/him. host of https://martinfowler.com
66 posts 10,731 followers 68 following
Prolific Poster
Conversation Starter

FINAL § While RAG is the most common way to expand a model outside its training set, Bharani Subramaniam and I now finish our current batch of patterns by examining our experience with Fine Tuning, where we learned to prioritize curating high-quality data. martinfowler.com/articles/gen...

I've been hearing a lot about different programming workflows to make full use of LLMs, but I want in-depth accounts of how it works. This blog by Harper Reed is exactly what I've been looking for. harper.blog/2025/02/16/m...

NEW § Gen AI systems are gullible, easily tricked into responding in ways contrary to policies or leak private information. Bharani Subramaniam and I describe how we can counter this by adding guardrails at the boundaries of the request/response flow. martinfowler.com/articles/gen...

I have thoughts and open questions about the role reasoning models might play or not play in coding assistance. A lot of stake is put into how reasoning models are a step change in coding assistance, but I don't see it - yet? martinfowler.com/articles/exp...

NEW § LLMs struggle with large amounts of context. Bharani Subramaniam and I explain how to mitigate this common RAG problem with a Reranker which takes the document fragments from the retriever, and ranks them according to their usefulness. martinfowler.com/articles/gen...

NEW § Users often have difficulty writing the most effective queries. Bharani Subramaniam and I explain Query Rewriting: getting an LLM to formulate alternative queries to send to a RAG's retriever. martinfowler.com/articles/gen...

It's a long post, but it's Charity at her best. She explains why diversity, despite it being flawed and lagging, is an important signal for an organization's values

NEW POST DeepSeek's LLMs made a big splash, but more interesting is their recent research papers. Shayan Mohanty writes an overview of them, outlining their three main arcs: efficiency, HPC Co-Design, and RL for emergent reasoning. martinfowler.com/articles/dee...

NEW § Today Bharani Subramaniam and I outline four limitations to the simple RAG from yesterday, and the pattern that addresses the first of these: Hybrid Retriever: tackling inefficiencies of embeddings-based search by combining it with other search techniques. martinfowler.com/articles/gen...

NEW § A pre-trained GenAI model lacks recent and specific information about a domain. Bharani Subramaniam and I continue our article on GenAI patterns to explain how Retrieval Augmented Generation (RAG) can fill that gap. martinfowler.com/articles/gen...

We finally have an effective method for keeping open source code out of the military-industrial complex! brb renaming methods to “changeGender”, “celebrateTransKids”, “leeWasATraitorousSlaverAndAlsoIncompetent”, “promoteWomen”, “accommodateFolksWithDisabilities” and “antiFascism”

My colleague Prasanna Pendse has written a deep dive into DeepSeek: first impressions of usage, highlights from their papers, and musings on what's next www.thoughtworks.com/insights/blo...

I've made a brief summary of @bethcodes.bsky.social and @kentbeck.com's metaphor of The Forest and The Desert. martinfowler.com/bliki/Forest...

NEW § GenAI systems have to manipulate vast quantities of data. Bharani and I describe a key tool to do this - Embeddings - transforming large data blocks into numeric vectors so that embeddings near each other represent related concepts martinfowler.com/articles/gen...

This was a fun panel. Always enjoy chatting with such a great bunch of people

NEW POST My colleague Bharani Subramaniam has started to write patterns from our recent work building production Gen AI applications. We begin with Evals - ways of assessing if they are working effectively. martinfowler.com/articles/gen...

"The leading AI models are now very good historians" - by Benjamin Breen, a history professor at UC Santa Cruz resobscura.substack.com/p/the-leadin...

I was interviewed by Luca Rossi for his Refactoring podcast. We talk about the impact of AI, technical debt, the current state of agile software, and the metaphor of The Forest and The Desert. refactoring.fm/p/growing-th...

FINAL § Juntao Qiu finishes his description of codemods by looking at some other approaches outside the JavaScript world such as JavaParser and OpenRewrite. martinfowler.com/articles/cod...

When I’m not working with software, one of my favorite activities is playing modern board games. Here’s my musing on 2024 on my favorite board game social media site boardgamegeek.com/blog/13064/b...

NEW § So far the codemods that Juntao Qiu has described are fascinating, but rather straightforward. Real codebases offer more challenges. Here he goes into how to tackle more complicated cases by composing codemods. martinfowler.com/articles/cod...

Sobering inside account of the current situation in L.A. www.404media.co/were-fine-lo...

NEW POST I continue my New Year habit by sharing favorite albums I discovered during the last year. This years set includes Celtic jazz, trip-hop neo-fado, jazz-fusion for the 2020's, playful harmonies, and a vibrant Indian classical plus string quartet. martinfowler.com/articles/202...

NEW § Juntao Qiu continues his explanation of how codemods can automate complex refactorings across a code base with a more complex example of extracting a responsibility from a JSX component martinfowler.com/articles/cod...

NEW POST Libraries often need to evolve APIs for new usage patterns, but risk breaking changes disrupting users' workflow. Juntao Qiu begins his explanation of how codemods - automated code transformations - can modify client codebases martinfowler.com/articles/cod...

After a blissfully disconnected long break back to my bursting email inbox this morning Amount of spam from LinkedIn huge! At the start of this year invested 15 mins disabling all the notifications they send to my email If I didn’t need it for work I’d block them

I expanded on my recent rant about defects being optional. Not saying "zero defects", I'm pointing out the difference between having a bug backlog & frequent hi-pri bugs in The Desert & bugs being an infrequent (monthly/quarterly) interruption in The Forest. tidyfirst.substack.com/p/bugs-optio...

Programming is both a means of learning & discovery & a medium for communication. It's inevitably at odds with itself--we're trying to both saying things clearly & concisely & at the same time learning new concepts that we can't possibly express clearly & concisely because we just learned them.

Excellent articles from Birgitta Böckeler on GenAI for software development #AI

NEW POST Design tokens are fundamental design decisions represented as data. Andreas Kutschmann explains how they work and how to organize them to balance scalability, maintainability and developer experience. martinfowler.com/articles/des...

FINAL § Once we've designed our initial data products, Kiran Prakash finishes his article by leading us through the next steps: identifying common patterns, improving the developer experience, and handling governance. martinfowler.com/articles/des...

New from me on what the rage and glee on public display after the killing of a healthcare CEO portends. I suspect the corporate world will respond with more security and retreating even more into their gated lives. They would be advised to read up on history. 🎁🔗 www.nytimes.com/2024/12/06/o...

Accountants--we account for *de*ppreciation for machines. Why don't we account for *a*ppreciation for people? Seems like it would give a clearer picture of the state of the business. (Also be subject to horrific abuse, but one thing at a time.)